{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,8,8]],"date-time":"2024-08-08T03:40:04Z","timestamp":1723088404391},"reference-count":0,"publisher":"Wiley","issue":"3","license":[{"start":{"date-parts":[[2000,1,1]],"date-time":"2000-01-01T00:00:00Z","timestamp":946684800000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/3.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Scientific Programming"],"published-print":{"date-parts":[[2005,1]]},"abstract":"<jats:p>Abstract data types developed for computational science and engineering are frequently modeled after physical objects whose state variables must satisfy governing differential equations. Generalizing the associated algebraic and differential operators to operate on the abstract data types facilitates high\u2010level program constructs that mimic standard mathematical notation. For non\u2010trivial expressions, multiple object instantiations must occur to hold intermediate results during the expression\u2032s evaluation. When the dimension of each object\u2032s state space is not specified at compile\u2010time, the programmer becomes responsible for dynamically allocating and de\u2010allocating memory for each instantiation. With the advent of allocatable components in Fortran 2003 derived types, the potential exists for these intermediate results to occupy a substantial fraction of a program\u2032s footprint in memory. This issue becomes particularly acute at the highest levels of abstraction where coarse\u2010grained data structures predominate. This paper proposes a set of rules for de\u2010allocating memory that has been dynamically allocated for intermediate results in derived type calculus, while distinguishing that memory from more persistent objects. The new rules are applied to the design of a polymorphic time integrator for integrating evolution equations governing dynamical systems. Associated issues of efficiency and design robustness are discussed.<\/jats:p>","DOI":"10.1155\/2005\/702048","type":"journal-article","created":{"date-parts":[[2015,1,12]],"date-time":"2015-01-12T13:44:23Z","timestamp":1421070263000},"page":"189-203","source":"Crossref","is-referenced-by-count":3,"title":["Dynamic Memory De\u2010allocation in Fortran 95\/2003 Derived Type Calculus"],"prefix":"10.1155","volume":"13","author":[{"given":"Damian W.I.","family":"Rouson","sequence":"first","affiliation":[]},{"given":"Karla","family":"Morris","sequence":"additional","affiliation":[]},{"given":"Xiaofeng","family":"Xu","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2005,12,26]]},"container-title":["Scientific Programming"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/downloads.hindawi.com\/journals\/sp\/2005\/702048.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1155\/2005\/702048","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,8,8]],"date-time":"2024-08-08T02:48:04Z","timestamp":1723085284000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1155\/2005\/702048"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2005,1]]},"references-count":0,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2005,1]]}},"alternative-id":["10.1155\/2005\/702048"],"URL":"https:\/\/doi.org\/10.1155\/2005\/702048","archive":["Portico"],"relation":{},"ISSN":["1058-9244","1875-919X"],"issn-type":[{"type":"print","value":"1058-9244"},{"type":"electronic","value":"1875-919X"}],"subject":[],"published":{"date-parts":[[2005,1]]}}}