{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:35:42Z","timestamp":1750307742656,"version":"3.41.0"},"reference-count":37,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2008,1,1]],"date-time":"2008-01-01T00:00:00Z","timestamp":1199145600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000006","name":"Office of Naval Research","doi-asserted-by":"publisher","award":["61-8804065","N00173-05-G020"],"award-info":[{"award-number":["61-8804065","N00173-05-G020"]}],"id":[{"id":"10.13039\/100000006","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100004965","name":"Sixth Framework Programme","doi-asserted-by":"publisher","award":["MTKD-CT-2004-014199"],"award-info":[{"award-number":["MTKD-CT-2004-014199"]}],"id":[{"id":"10.13039\/501100004965","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2008,1]]},"abstract":"<jats:p>Computational complexity theory inspires a grid-free abstraction of the Navier-Stokes equations in Fortran 95\/2003. A novel complexity analysis estimates that structured programming time grows at least quadratically with the number of program lines. Further analysis demonstrates how an object-oriented strategy focused on mathematical objects renders the quadratic estimate scale-invariant, so the time required for the limiting factor in program development (debugging) no longer grows as the code grows. Compared to the coordinate-free C++ programming of Grant et al. [2000], grid-free Fortran programming eliminates a layer of procedure calls, eliminates a related need for the C++ template construct, and offers a shorter migration path for Fortran programmers. The grid-free strategy is demonstrated by constructing a physical-space driver for a Fourier-space Navier-Stokes solver. Separating the expression of the continuous mathematical model from the discrete numerics clarifies issues that are otherwise easily conflated. A run-time profile suggests that grid-free design substantially reduces the fraction of the procedures that significantly impact runtime, freeing more code to be structured in ways that reduce development time. Applying Amdahl's law to the total solution time (development time plus run time) leads to a strategy that negligibly impacts development time but achieves 58% of the maximum possible speedup.<\/jats:p>","DOI":"10.1145\/1322436.1322438","type":"journal-article","created":{"date-parts":[[2008,2,8]],"date-time":"2008-02-08T15:32:16Z","timestamp":1202484736000},"page":"1-33","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["A grid-free abstraction of the Navier-Stokes equations in Fortran 95\/2003"],"prefix":"10.1145","volume":"34","author":[{"given":"Damian W. I.","family":"Rouson","sequence":"first","affiliation":[{"name":"U.S. Naval Research Laboratory, Washington, DC"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Robert","family":"Rosenberg","sequence":"additional","affiliation":[{"name":"U.S. Naval Research Laboratory, Washington, DC"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Xiaofeng","family":"Xu","sequence":"additional","affiliation":[{"name":"University of Maryland, College Park, Nova, MI"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Irene","family":"Moulitsas","sequence":"additional","affiliation":[{"name":"University of Cyprus, Nicosia, Cyprus"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Stavros C.","family":"Kassinos","sequence":"additional","affiliation":[{"name":"University of Cyprus, Nicosia, Cyprus"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2008,1,19]]},"reference":[{"volume-title":"Object-Oriented Programming via Fortran 90\/95","author":"Akin E.","key":"e_1_2_1_1_1","unstructured":"Akin , E. 2003. Object-Oriented Programming via Fortran 90\/95 . Cambridge University Press , Cambridge, UK . Akin, E. 2003. Object-Oriented Programming via Fortran 90\/95. Cambridge University Press, Cambridge, UK."},{"key":"e_1_2_1_2_1","unstructured":"Barton J. J. and Nackman L. R. 1994. Scientific and Engineering C&plus;&plus;: An Introduction with Advanced Examples. Addison-Wesley. Boston MA. Barton J. J. and Nackman L. R. 1994. Scientific and Engineering C&plus;&plus;: An Introduction with Advanced Examples. Addison-Wesley. Boston MA."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1177\/1094342006064488"},{"volume-title":"Computational Recipes at a Higher Level","author":"Berryhill J. R.","key":"e_1_2_1_4_1","unstructured":"Berryhill , J. R. 2001. C&plus;&plus; Scientific Programming : Computational Recipes at a Higher Level . Wiley-Interscience , Hoboken, NJ . Berryhill, J. R. 2001. C&plus;&plus; Scientific Programming: Computational Recipes at a Higher Level. Wiley-Interscience, Hoboken, NJ."},{"edition":"2","volume-title":"Bronson, G. J. 2006. C&plus;&plus; for Engineers and Scientists","key":"e_1_2_1_5_1","unstructured":"Bronson, G. J. 2006. C&plus;&plus; for Engineers and Scientists 2 nd Ed. Thomson Learning , Stamford, CT . Bronson, G. J. 2006. C&plus;&plus; for Engineers and Scientists 2nd Ed. Thomson Learning, Stamford, CT."},{"volume-title":"Scientific C&plus;&plus;","author":"Buzzi-Ferraris G.","key":"e_1_2_1_6_1","unstructured":"Buzzi-Ferraris , G. 1998. Scientific C&plus;&plus; . Addison-Wesley , Boston, MA . Buzzi-Ferraris, G. 1998. Scientific C&plus;&plus;. Addison-Wesley, Boston, MA."},{"key":"e_1_2_1_7_1","doi-asserted-by":"crossref","unstructured":"Canuto C. Hussaini M. Y. Quarteroni A. and Zang T. A. 1988. Spectral Methods in Fluid Dynamics. Springer-Verlag Berlin Germany. Canuto C. Hussaini M. Y. Quarteroni A. and Zang T. A. 1988. Spectral Methods in Fluid Dynamics. Springer-Verlag Berlin Germany.","DOI":"10.1007\/978-3-642-84108-8"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.21236\/ADA610086"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/263877.263880"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1155\/1997\/570746"},{"volume-title":"Proceedings of the 8th SIAM Conference On Parallel Processing for Scientific Computing. M. Heath et al., Eds","author":"Decyk V. K.","key":"e_1_2_1_11_1","unstructured":"Decyk , V. K. , Norton , C. D. , and Szymanski , B. K . 1997. High performance object-oriented programming in Fortran 90 . In Proceedings of the 8th SIAM Conference On Parallel Processing for Scientific Computing. M. Heath et al., Eds . Minneapolis, MN. Decyk, V. K., Norton, C. D., and Szymanski, B. K. 1997. High performance object-oriented programming in Fortran 90. In Proceedings of the 8th SIAM Conference On Parallel Processing for Scientific Computing. M. Heath et al., Eds. Minneapolis, MN."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0010-4655(98)00101-5"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1155\/2000\/494281"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.879815"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1155\/2000\/419840"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/99.609829"},{"volume-title":"Proceedings Norsk Informatikk Konferanse, A. Maus et al., Eds. 55--68","author":"Haveraaen M.","key":"e_1_2_1_17_1","unstructured":"Haveraaen , M. Madsen , V. , and Munthe-Kaas , M . 1992. Algebraic programming technology for partial differential equations . In Proceedings Norsk Informatikk Konferanse, A. Maus et al., Eds. 55--68 . Haveraaen, M. Madsen, V., and Munthe-Kaas, M. 1992. Algebraic programming technology for partial differential equations. In Proceedings Norsk Informatikk Konferanse, A. Maus et al., Eds. 55--68."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0022112087000892"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1504\/PCFD.2005.007063"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/244768.244774"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/941558.941559"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2005.290"},{"key":"e_1_2_1_23_1","unstructured":"McInnes L. C. Allan B. A. Armstrong R. Benson S. J. Bernholdt D. E. Dahlgren T. L. Diachin L. F. Krishnan M. Kohl J. A. Larson J. W. Lefantzi S. Nieplocha J. Norris B. Parker S. G. Ray J. and Zhou S. 2005. Parallel PDE-based simulations using the Common Component Architecture. In Numerical Solution of Partial Differential Equations on Parallel computers A.M. Bruaset and A. Tveito Eds. Springer Berlin Germany. McInnes L. C. Allan B. A. Armstrong R. Benson S. J. Bernholdt D. E. Dahlgren T. L. Diachin L. F. Krishnan M. Kohl J. A. Larson J. W. Lefantzi S. Nieplocha J. Norris B. Parker S. G. Ray J. and Zhou S. 2005. Parallel PDE-based simulations using the Common Component Architecture. In Numerical Solution of Partial Differential Equations on Parallel computers A.M. Bruaset and A. Tveito Eds. Springer Berlin Germany."},{"key":"e_1_2_1_24_1","doi-asserted-by":"crossref","unstructured":"Metcalf M. Reid J. and Cohen M. 2004. Fortran 95\/2003 Explained. Oxford University Press Oxford UK. Metcalf M. Reid J. and Cohen M. 2004. Fortran 95\/2003 Explained. Oxford University Press Oxford UK.","DOI":"10.1093\/oso\/9780198526926.001.0001"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1146\/annurev.fluid.37.061903.175743"},{"volume-title":"Fundamentals of Engineering Numerical Analysis","author":"Moin P.","key":"e_1_2_1_26_1","unstructured":"Moin , P. 2001. Fundamentals of Engineering Numerical Analysis . Cambridge University Press , Cambridge, UK . Moin, P. 2001. Fundamentals of Engineering Numerical Analysis. Cambridge University Press, Cambridge, UK."},{"key":"e_1_2_1_27_1","doi-asserted-by":"crossref","unstructured":"Oliveira S. and Stewart D. 2006. Writing Scientific Software: A Guide to Good Style. Cambridge University Press Cambridge UK. Oliveira S. and Stewart D. 2006. Writing Scientific Software: A Guide to Good Style. Cambridge University Press Cambridge UK.","DOI":"10.1017\/CBO9780511617973"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1103\/PhysRevLett.28.76"},{"volume-title":"Proceedings of the CTR Summer Program. Center for Turbulence Research","author":"Rouson D. W. I.","key":"e_1_2_1_29_1","unstructured":"Rouson , D. W. I. , Kassinos , S. C. , Sarris , I. , and Toschi , F . 2006b. Particle dispersion in magnetohydrodynamic turbulence at low magnetic Reynolds number . In Proceedings of the CTR Summer Program. Center for Turbulence Research , Stanford University, Stanford, CA. Rouson, D. W. I., Kassinos, S. C., Sarris, I., and Toschi, F. 2006b. Particle dispersion in magnetohydrodynamic turbulence at low magnetic Reynolds number. In Proceedings of the CTR Summer Program. Center for Turbulence Research, Stanford University, Stanford, CA."},{"key":"e_1_2_1_30_1","first-page":"189","article-title":"Dynamic memory de-allocation in Fortran 95\/2003 derived type calculus.Scien","volume":"13","author":"Rouson D. W. I.","year":"2005","unstructured":"Rouson , D. W. I. , Morris , K. , and Xu , X. 2005 . Dynamic memory de-allocation in Fortran 95\/2003 derived type calculus.Scien . Program. 13 , 189 -- 203 . Rouson, D. W. I., Morris, K., and Xu, X. 2005. Dynamic memory de-allocation in Fortran 95\/2003 derived type calculus.Scien. Program. 13, 189--203.","journal-title":"Program."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1155\/2004\/910505"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1155\/2006\/731428"},{"key":"e_1_2_1_33_1","unstructured":"Shalloway A. and Trott J. R. 2002. Design Patterns Explained: A New Perspective on Object-Oriented Design. Addison-Wesley. Shalloway A. and Trott J. R. 2002. Design Patterns Explained: A New Perspective on Object-Oriented Design. Addison-Wesley."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1016\/0021-9991(91)90238-G"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/962180.962183"},{"key":"e_1_2_1_36_1","doi-asserted-by":"crossref","unstructured":"Yang D. 2000. C&plus;&plus; and Object-Oriented Numeric Computing for Scientists and Engineers. Springer Berlin Germany. Yang D. 2000. C&plus;&plus; and Object-Oriented Numeric Computing for Scientists and Engineers. Springer Berlin Germany.","DOI":"10.1007\/978-1-4613-0189-9"},{"volume-title":"9th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS'04)","author":"Zhang K.","key":"e_1_2_1_37_1","unstructured":"Zhang , K. , Damevski , K. , Venkatachalapathy , V. , and Parker , S.G . 2004. SCIRun2: A CCA framework for high performance computing . In 9th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS'04) . Rasmussen, C., Workshop Chair, Santa Fe, NM, 72--79. Zhang, K., Damevski, K., Venkatachalapathy, V., and Parker, S.G. 2004. SCIRun2: A CCA framework for high performance computing. In 9th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS'04). Rasmussen, C., Workshop Chair, Santa Fe, NM, 72--79."}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1322436.1322438","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1322436.1322438","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T13:39:00Z","timestamp":1750253940000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1322436.1322438"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2008,1]]},"references-count":37,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2008,1]]}},"alternative-id":["10.1145\/1322436.1322438"],"URL":"https:\/\/doi.org\/10.1145\/1322436.1322438","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"type":"print","value":"0098-3500"},{"type":"electronic","value":"1557-7295"}],"subject":[],"published":{"date-parts":[[2008,1]]},"assertion":[{"value":"2006-03-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2007-03-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2008-01-19","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}