{"id":50400012,"url":"https://github.com/Goddard-Fortran-Ecosystem/pFUnit","last_synced_at":"2026-06-16T14:00:40.895Z","repository":{"id":37591769,"uuid":"131896917","full_name":"Goddard-Fortran-Ecosystem/pFUnit","owner":"Goddard-Fortran-Ecosystem","description":"Parallel Fortran Unit Testing Framework","archived":false,"fork":false,"pushed_at":"2026-05-28T16:23:23.000Z","size":12989,"stargazers_count":204,"open_issues_count":78,"forks_count":61,"subscribers_count":12,"default_branch":"main","last_synced_at":"2026-05-28T17:13:22.359Z","etag":null,"topics":["fortran","mpi","object-oriented","unit-testing-framework"],"latest_commit_sha":null,"homepage":null,"language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Goddard-Fortran-Ecosystem.png","metadata":{"files":{"readme":"README-INSTALL-DEPRECATED","changelog":"ChangeLog.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":"COPYRIGHT","agents":null,"dco":null,"cla":null}},"created_at":"2018-05-02T19:29:30.000Z","updated_at":"2026-05-28T16:22:07.000Z","dependencies_parsed_at":"2023-11-29T16:30:34.327Z","dependency_job_id":"4d611482-db72-42bc-a1a7-7d96aa4339b0","html_url":"https://github.com/Goddard-Fortran-Ecosystem/pFUnit","commit_stats":{"total_commits":1093,"total_committers":49,"mean_commits":"22.306122448979593","dds":0.788655077767612,"last_synced_commit":"49a83b1ff56a953a00468bb783aac31dad1895d1"},"previous_names":[],"tags_count":75,"template":false,"template_full_name":null,"purl":"pkg:github/Goddard-Fortran-Ecosystem/pFUnit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Goddard-Fortran-Ecosystem%2FpFUnit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Goddard-Fortran-Ecosystem%2FpFUnit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Goddard-Fortran-Ecosystem%2FpFUnit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Goddard-Fortran-Ecosystem%2FpFUnit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Goddard-Fortran-Ecosystem","download_url":"https://codeload.github.com/Goddard-Fortran-Ecosystem/pFUnit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Goddard-Fortran-Ecosystem%2FpFUnit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34408788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fortran","mpi","object-oriented","unit-testing-framework"],"created_at":"2026-05-30T23:00:23.257Z","updated_at":"2026-06-16T14:00:40.888Z","avatar_url":"https://github.com/Goddard-Fortran-Ecosystem.png","language":"Fortran","funding_links":[],"categories":["Testing, Debugging \u0026 Profiling"],"sub_categories":[],"readme":"\nPFUNIT VERSION 3.2.1 INSTALLATION AND BASIC USAGE GUIDE\n\nVERSION 2015-1210 M. Rilee mike@rilee.net\n\nTABLE OF CONTENTS\n\n1. PREREQUISITES\n2. OBTAINING PFUNIT\n3. WHAT'S IN THE DIRECTORY?\n4. CONFIGURATION\n5. BUILDING PFUNIT\n6. INSTALLATION\n7. USAGE\n8. DEVELOPMENT\n9. FEEDBACK \u0026 SUPPORT\n10. ACKNOWLEDGMENTS\n11. KNOWN INSTALLATIONS/VERSIONS\n12. NOTES\n13. TODO\n\n\n1. PREREQUISITES\n\nThe development work for pFUnit has mostly been carried out on a\nmixture of systems, including high-end computers, Apple Mac OSX, and\nlinux-based systems.  A preliminary Windows/CYGWIN port has been\ncontributed by a user. Full use of the system depends on the following\nbeing available.\n\nFortran 2003+\n   Tested with:\n       Intel 14+,\n       NAG 6.0,\n       GFortran 4.8.3, 4.9.+, 5.0+\n       IBM's XLF\n       PGI 15.7\nThe Message Passing Interface (MPI)\nOPENMP\nGNU Make\nPython 2.7+\nm4 (must be in default path)\n\nA CMake build process is also available.\n\nDoxygen is used to generate documentation (see http://www.doxygen.org).\n\nThe system is routinely undergoes regression testing, including with GNU,\nIntel, and NAG fortran compilers and OpenMPI.\n\npFUnit makes extensive use of leading edge Fortran language features,\nwhich are generally best supported with by the latest compiler\nversions.  The capacity to support older compilers is limited.\n\n2. OBTAINING PFUNIT\n\nThe best way to obtain pFUnit is to clone the git repository from\nSourceForge as follows.\n\n# Read Only Access\ngit clone git://git.code.sf.net/p/pfunit/code pFUnit\n\nThis will create the directory pFUnit in the current working\ndirectory.  \n\nYou may also visit the project page at SourceForge and\ndownload the source tarfile \"pFUnit.tar.gz\" there.\n\nhttp://sourceforge.net/projects/pfunit/\n\nor\n\nhttp://sourceforge.net/projects/pfunit/files/latest/download\n\nExtracting this tarfile via a command like\n\n$ tar zxf ./pFUnit.tar.gz\n\nwill place the pFUnit files into the current working directory.\n\nFor other ways to acquire the code visit\n\nhttps://sourceforge.net/p/pfunit/code/ci/master/tree/\n\nor contact the pFUnit team.\n\n3. WHAT'S IN THE DIRECTORY?\n\nIn the top level of the pFUnit distribution you will see the following\nfiles.\n\nCMakeLists.txt - Initial support for cmake-based builds.\n\nCOPYRIGHT - Contains information pertaining to the use and\ndistribution of pFUnit.\n\nExamples - Contains examples of how to use pFUnit once it is\ninstalled.\n\nGNUmakefile - The top level makefile for building and installing\npFUnit.\n\nbin - Executables used to construct and perform unit tests.\n\ndocumentation - Provides information about the pFUnit.\n\ninclude - Files to be included into makefiles or source, including use\ncode.\n\nLICENSE - The NASA Open Source Agreement for GSC-15,137-1 F-UNIT, also known as pFUnit.\n\nREADME-INSTALL - This file.\n\nsource - Source code and scripts of the pFUnit library and framework.\n\ntests - Source code for unit testing pFUnit itself.\n\ntools - Tools used to help develop, build, and install pFUnit.\n\nVERSION - Contains a string describing the current version of the framework.\n\n4. CONFIGURATION\n\nLittle needs to be done to configure pFUnit for the build, however\nthere are several environment variables on which the package depends.\n\nF90_VENDOR - is set to include the correct makefile in\n$(TOP_DIR)/include, i.e. GNU, Intel, NAG, or PGI.  Case insensitive\nfile systems may cause some confusion from time-to-time.\n\nF90 - is set to the Fortran compiler being used: e.g. ifort for Intel, gfortran for GNU.\n\nCOMPILER - is set according to F90_VENDOR and is automatically set in\nthe top level makefile.\n\nFor MPI-based unit testing, your setup may require the following as well.\n\nMPIF90\n$ # e.g.\n$ export MPIF90=mpif90\n\nAs a convenience for working with multiple MPI configurations, you may\nalso set the following.\n\nMPIRUN\n$ # e.g.\n$ export MPIRUN=/some.path/mpirun\n\nPFUNIT_MAX_ARRAY_RANK - controls the maximum number of (Fortran) dimensions\nof the arrays asserts are defined over.  If PFUNIT_MAX_ARRAY_RANK is not\nset, the default is 5 and pFUnit's assertions will be able to handle\narrays up to rank 5, i.e. A(:,:,:,:,:).  PFUNIT_MAX_ARRAY_RANK and MAX_RANK\ndo not refer to MPI ranks (process id within a group). Example:\n\n$ export PFUNIT_MAX_ARRAY_RANK=8\n\nPFUNIT_MAX_RANK is a deprecated way to set maximum rank and is to be removed\nin version 4.\n\nDOXYGEN - To generate documentation, set DOXYGEN to the desired\nexecutable.  NOTE: Doxygen Version 1.8.5 does not respect CamelCase\nnames from Fortran source code by currently converting all to\nlowercase.  It does this to get HTML links correct for references in\nthe source code that also do not respect the CamelCase convention.\nThe Fortran standard specifies case insensitivity.  Doxygen 1.7.x\nseems to better respect CamelCase.\n$ #.e.g.\n$ export DOXYGEN=/opt/local/share/doxygen/doxygen-1.7.6/bin/doxygen\n\n5.1 BUILDING PFUNIT FOR TESTING SERIAL CODES (Non-MPI)\n\n1. Change to the directory into which pFUnit has been placed.\n2. Set these environment variables (bash example):\n$ export F90=gfortran-mp-4.8\n$ export F90_VENDOR=GNU\n3. To build pFUnit for unit testing of serial codes, execute make.\nThe unit tests for pFUnit itself will run automatically.\n$ make tests\n3.1 Occasionally on the first run through, one will get a spurious\n(runtime) error, for example in the unix process component.\nRe-execute \"make tests\" to check again.\n4. At this point the pFUnit object library is in the source directory,\nalong with a large number of Fortran module files.\n\n5.2 BUILDING PFUNIT FOR TESTING PARALLEL CODES (MPI)\n\nTo build pFUnit for unit testing MPI-based codes, be sure that the\nenvironment is properly set up for the MPI implementation you are\nusing. Depending on your local environment, you may need execute the\nbuild within a batch or other job queing system, e.g. an interactive\nbatch job under PBS. The steps for building pFUnit start out the same\nas for the serial case above, but add MPI=YES to the environment to\nswitch on MPI support.  The MPI-based unit tests for pFUnit itself\nwill run automatically.  Again, occasionally a spurious (runtime)\nerror may appear on the first execution.\n\n3. Execute make as follows.\n$ make tests MPI=YES \n\n4. At this point an MPI-enabled pFUnit object library is in the source\ndirectory, along with a large number of Fortran module files.\n\nAlso, one may get some harmless \"no symbols\" warnings when the pFUnit library is constructed.\n\n5.3 BUILDING PFUNIT FOR TESTING PARALLEL CODES (OPENMP)\n\nInitial (limited) support for OPENMP has been implemented.  At this\nwriting, a basic functionality is available.\n\nThe process for building pFUnit for testing OPENMP-based codes is\nsimilar to that for other paradigms.\n\n3. To compile for OPENMP support execute make as follows.\n$ make tests OPENMP=YES \n\n4. At this point the OPENMP-enabled pFUnit is ready to be installed.\n\n5.4 CLEANING\n\nTo clean the pFUnit build directory for the space or to rebuild there\nare two options.\n\n1. Make clean to remove object files and other intermediate products.\n$ make clean\n\n2. Make distclean to remove libraries and other more final products.\n$ make distclean\n\n3. Some directories support a \"make src_clean\" to remove intermediate\nproducts in subdirectories.\n\n5.5 BUILDING THE DOCUMENTATION\n\nA start at documentation for pFUnit is in the documentation directory.\nDoxygen is our primary documentation tool.  To make the documentation,\nwhich will be generated in the documentation directory, please invoke\nthe following from the top level of the PFUNIT distribution.\n\n$ make documentation\n\nOr to make a reference manual:\n\n$ make documentation/pFUnit2-ReferenceManual.pdf\n\nTo select a specific version of Doxygen, please set the DOXYGEN\nenvironment variable as in the Configuration section above.  You \nmay wish to do this if your code uses CamelCase names as current\nversions of Doxygen (1.8.5) do not respect this convention for\nFortran.\n\n5.6 BUILDING PFUNIT USING CMAKE\n\nInitial support for CMAKE has been implemented.  At this\nwriting, a basic functionality is available.\n\n3. The process for building pFUnit using cmake is as follows.  In the\ntop directory of the distribution make a new directory to support the\nbuild, then change to that directory and run cmake (pointing back to\nthe source) to generate the required makefiles.\n\n$ mkdir build\n$ cd build\n$ # e.g. cmake -DMPI=YES -DOPENMP=NO \u003cpath to source\u003e\n$ cmake -DMPI=NO ..\n$ make tests\n\nDon't forget you can use the standard -DCMAKE_INSTALL_PREFIX to define where\nthe resulting tool will be installed.\n\nIf your MPI installation does not provide mpirun, you may try to set\n-DMPI_USE_MPIEXEC=YES to tell CMake to use its FindMPI function to\nfind out how to execute the tests.\n\n4. If the build is successful, then at this point make install should work.\n\n6. INSTALLATION\n\nInstallations 6.1-6.5 are based on GNU make and the project makefiles. If you\nuse CMake then \"make install\" will install to the expected place. That is, to\n/usr/local if you specify nothing, otherwise to wherever CMAKE_INSTALL_PREFIX\npoints.\n\n6.1 INSTALLATION - SERIAL\n\nTo install pFUnit for regular use, set INSTALL_DIR to the location in\nwhich to place pFUnit.  This can be done on the make command line.\nFor example, after compiling pFUnit for serial use (MPI absent or\nMPI=NO), please try.\n\n$ # In the top of the pFUnit build directory.\n$ make install INSTALL_DIR=/opt/pfunit/pfunit-serial\n\nNote: you may need special priveleges to install in some locations,\ne.g. via sudo.\n\nTo test the installation set PFUNIT to INSTALL_DIR, then change the\nworking directory to Examples in pFUnit distribution and execute\n\"make,\" which will run a number of examples.  These include some\nexpected (intentional) failures.  \n\n$ # In the top pFUnit build directory...\n$ export PFUNIT=/opt/pfunit/pfunit-serial\n$ cd Examples\n$ make\n\n6.2 INSTALLATION - MPI\n\nFor installing an MPI-enabled pFUnit library, change to the top of the\ndistribution and execute make with MPI=YES.  You may need to \"make\ndistclean\" first.  After compilation and pFUnit passes its self-tests,\nthen installation proceeds as for the serial case above.\n\n$ make install INSTALL_DIR=/opt/pfunit/pfunit-parallel\n\nTo test, set PFUNIT and go into Examples/MPI_Halo directory.\n\n$ # In the top pFUnit build directory...\n$ export PFUNIT=/opt/pfunit/pfunit-parallel\n$ # The variable MPIF90 must be set to the appropriate build script.\n$ export MPIF90=mpif90\n$ cd Examples/MPI_Halo/\n$ make\n\nThis will compile and run a set of parallel examples that includes\nintentional failures.  To run all of the examples try executing\n\"make MPI=YES\" in the Examples directory.\n\n6.3 INSTALLATION - OPENMP\n\nAt this time the OPENMP version of pFUnit can be installed in the same\nway as for the serial or MPI-parallel codes.  OPENMP support, tests,\nand examples are limited as of this writing.\n\n6.4 INSTALLATION - DEFAULT DIRECTORY\n\nIf INSTALL_DIR is not set, \"make install\" will attempt to install\npFUnit into the top build directory.  This will create directories\nsuch as lib and mod in the top level of the build directory and will\noverwrite the include/base.mk with include/base-install.mk.  If this\nis not desired, then \"make develop\" will put back the original\nbase.mk, which is the file to be used for development and building\npFUnit.  In general, we recommend installing to a directory that is\nnot also the build directory.\n\n7.1 USAGE - CONFIGURATION\n\nFor regular use, after installation, the same compiler/MPI development\nconfiguration that was used to build pFUnit should be used.  Once the\nenvironment variables and paths associated with the environment are\nset, to configure pFUnit, please set the following.\n\nPFUNIT - set to the directory into which pFUnit was installed.\nF90_VENDOR - set to Intel, GNU, NAG, or PGI accordingly.\n\n7.2 USAGE - PREPROCESSOR - HELLO WORLD\n\nAn example of how to use the preprocessor can be found in\nExamples/Simple.  The GNU makefile shows how to construct an F90 file\nfrom a preprocessor input file.  For example, the GNU make rule can be:\n\n# GNU makefile rule\n%.F90: %.pf\n       $(PFUNIT)/bin/funitproc $\u003c $@\n\nThe file testSuites.inc is included in the include/driver.F90 file\nduring the build process.  To include tests, one must add the test\nsuite module to testSuites.inc, as follows.\n\n! Add a test suite to the build.\nADD_TESTS_SUITE(helloWorld_suite)\n\nA preprocessor input file contains tests and is a \nFortran free-format file with directives, for example:\n\n! helloWorld.pf - with a successful test...\n@test\nsubroutine testHelloWorld()\n   use pfunit_mod\n   implicit none\n   @assertEqual(\"Hello World!\",\"Hello World!\")\nend subroutine testHelloWorld\n\n7.3 USAGE - Compiling and Executing the Tests (SERIAL)\n\nAn example of a GNU make rule for for the final step of compiling a test follows.\n\n# This step presumes \"include $(PFUNIT)/include/base.mk\" earlier in the makefile.\ntests.x: testSuites.inc myTests.pf\n         $(F90) -o $@ -I$(PFUNIT)/mod -I$(PFUNIT)/include \\\n                $(PFUNIT)/include/driver.F90 \\\n                ./*$(OBJ_EXT) $(LIBS) $(FFLAGS)\n\nTo execute the tests, one invokes \"./tests.x\" with the appropriate command line options (see below).\n\nIn some cases, since include/driver.F90 is \"implicit none,\" it may be\nnecessary to insert a \"use\" clause to identify external suite-wide\nfixture code to the compiler.  As a convenience, the CPP macro\nPFUNIT_EXTRA_USAGE can be set to a module of fixture code via a\ncompiler command line argument turning on a \"use PFUNIT_EXTRA_USAGE\"\nline at the beginning of include/driver.F90.\n\n7.3.1 USAGE - Compiling and Executing the Tests (MPI PARALLEL)\n\nOne invokes MPI-based parallel tests according to the MPI framework being used.  For example:\n\n$ mpirun -np 4 tests.x\n\n\n7.4 USAGE - Command Line Options\n\nThe executable test program provides several command line options,\nwhen \"include/driver.F90\" is used, as it is automatically when using\nthe PFUNIT preprocessor.\n\n-v or -verbose                  Verbose execution.\n-d or -debug                    Provide debugging information.\n-h                              Print help message.\n-o \u003coutputfile\u003e                 Direct pFUnit messages to a file.\n-robust                         Use the robust runner. Runs tests as processes so failures do not halt testing.\n-max-timeout-duration \u003cduration\u003e Limit detection time for robust runner.\n-max-launch-duration  \u003cduration\u003e Limit detection time for robust runner.\n-skip \u003cnumber of tests to skip\u003e Use the subset runner, which runs a subset of the tests in a suite.\n\nAn example from Examples/Robust:\n\n$ ./tests.x -robust\n\n8. DEVELOPMENT\n\nGenerally pFUnit development is performed in the build directory\nstructure.  Care should be taken to make clean or distclean in between\nconfiguration changes.  As stated above, it is best to set INSTALL_DIR\nand \"make install\" pFUnit to another directory that can be placed in a\nuser's paths.  \n\n9.1 FEEDBACK AND BUGS\n\n9.2 SUPPORT\n\n9.3 TIPS\n\n1. Environment Modules - Though not strictly required, the Environment\nModules package can be a convenient way to package, maintain, and\nswitch between environments.  This can be particularly important for\npFUnit, which must be built using the same tool suite being used for\ndevelopment, e.g. compilers, linkers, etc. [To do:  A sample pFUnit\nmodulefile is provided in the OTHER directory.] Environment Modules\n\n2. Compile time errors like '\"include [...]include/.mk\" not found'\nlikely signify that you not executing make in the top level\ndirectory during a build.  Alternatively, during regular usage after\ninstallation, PFUNIT has not been set.\n\nDuring building, if you wish to compile in a subdirectory of within the\npFUnit heriarchy, please try setting the COMPILER environment variable\non the make command line.  For example:\n\n$ make all COMPILER=Intel\n\n3. If you wish to see the intermediate files, use the target .PRECIOUS\nin the makefile to keep them from being deleted. For example:\n\n# In GNUmakefile\n.PRECIOUS: %_cpp.F90\n\n9.4 PLATFORM SPECIFIC NOTES\n\n9.4.1 Mac OSX\n\nThe MacPorts package management system is a convenient way to install\nand maintain many packages, including gcc which includes gfortran.\n\n9.4.2 Windows/CYGWIN\n\nUser contributed code for Windows/CYGWIN has been added, but is\ncurrently not tested and supported by the pFUnit team. At this\nwriting, 2013-1031, serial Examples and MPI are not known to be\nsupported.  Please contact us if you wish to either contribute or\notherwise discuss this port.\n\n9.4.3 Intel Fortran Version 13:  -DINTEL_13\n\nUsing version 13 is deprecated. We have encountered problems using\nversion 13, which we believe may be due to subtle compiler bugs.  We\nstrongly recommend upgrading to the latest version possible.\n\nTo make pFUnit work with Intel Fortran Version 13, please ensure that\n\"-DINTEL_13\" is passed to the compiler when building or using\npFUnit. In the build process for pFUnit, this is added to the make\nvariables CPPFLAGS and FPPFLAGS.  \n\n10. ACKNOWLEDGMENTS\n\nThanks to the follwing for their review and comments: B. Van Aartsen, T. Clune.\n\nWindows/CYGWIN contributions from E. Lezar.\n\nPGI port contributions from M. Leair (PG Group).\n\nOther acknowledgments: S.P. Santos (NCAR), M. Hambley (UK Met Office),\n      J. Krishna (ANL), J. Ebo David.\n\n11. KNOWN INSTALLATIONS/VERSIONS (git cognizant from \"sourceforge.net/projects/pfunit\")\n\nmaster - The current release.\n\ndevelopment - The cutting edge of pFUnit development.\n\nmock_services - Experimental support for mocking.\n\npfunit_2.1.0 - A feature freeze prior to a major upgrade of the preprocessor.\n\ncray - An intermediate port to Cray CCE.\n\n12. NOTES\n\n* For modifications and feature requests please see \"sourceforge.net/projects/pfunit\".\n\nTBD\n\n13. --TODO--\n\n- Make other directory.\n- Make Environment Modules example in other directory.\n- Other build systems, e.g. CMake.\n\n\n14. REVISIONS TO THIS DOCUMENT\n\nf2015-1210 Minor changes to documentation. MLR\n2015-0608 Added note about PFUNIT_EXTRA_USAGE (from MH). MLR\n2015-0508 Some PGI workarounds removed for PGI 15.4. MLR\n2015-0420 Clarified PFUNIT_MAX_ARRAY_RANK note. MLR\n2015-0320 PGI port workarounds, including examples. 3.1. MLR\n2014-1211 Minor updates for 3.0.2. MLR\n2014-1110, 2014-1031 Minor edits. MLR\n2014-0915 Minor updates for 3.0.1. MLR\n2014-0404 Updated for release of 3.0. TLC\n2014-0131, 2014-0205. Updated. MLR\n2013-1107. Minor edits. MLR\n2013-1031. Added user contributed code for Windows/CYGWIN \u0026 IBM's XLF. MLR\n2013-0830-1359. Minor corrections and added MPIF90 to 6.2. MLR\n2013-0806-1345. Corrected git reference. Was using old URL.  MLR\n2013-0805. Initial draft. MLR\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGoddard-Fortran-Ecosystem%2FpFUnit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGoddard-Fortran-Ecosystem%2FpFUnit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGoddard-Fortran-Ecosystem%2FpFUnit/lists"}