Skip to content

Commit

Permalink
parent d0eeefd
Browse files Browse the repository at this point in the history
author Miguel R Zuniga <42479054+ngs333@users.noreply.github.com> 1597932481 -0400
committer wrongkindofdoctor <20195932+wrongkindofdoctor@users.noreply.github.com> 1608215117 -0500

Add mixed precision (#34)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

Add mixed precision (#34) (#40)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed debugging statements from mpp_transmit_mpi.h
removed namelist read procedure from test_mpp_update_domains
changed the mpp_init argument to mpp_init_test_requests_allocated
changed pe counts to 1,2 (if available), and 10 (if availables) in test_mpp_update_domains.sh

removed debugging statements in mpp_transmit_mpi.h

removed test_halo_update and test_subset_update from test_mpp_domains
added test_subset_update_r4 and test_subset_update_r8 to test_mpp_update_domains
changed the 10-pe test to 16 pes to accommodate the test_subset_update tests

expanded test_subset_update checksum comments in test_mpp_update_domains

remove the namelist creation in test_mpp_update_domains.sh

fixed spacing, enabled masked test_halo_update tests

Co-authored-by: Miguel R Zuniga <42479054+ngs333@users.noreply.github.com>

modifies fms_test/mpp/test_mpp_broadcast.F90 for mixed precision

Add mixed precision (#41)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

* Added test function for mpp_scatter. Extracted mpp_gather tests into their own file (test_mpp_gatscat.F90)
also has the test for mpp_scatter. Added comments to interface in mpp_scatter.h.

* Added mpp scatter 3D test.

* Add mixed precision (#34)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed debugging statements from mpp_transmit_mpi.h
removed namelist read procedure from test_mpp_update_domains
changed the mpp_init argument to mpp_init_test_requests_allocated
changed pe counts to 1,2 (if available), and 10 (if availables) in test_mpp_update_domains.sh

removed debugging statements in mpp_transmit_mpi.h

removed test_halo_update and test_subset_update from test_mpp_domains
added test_subset_update_r4 and test_subset_update_r8 to test_mpp_update_domains
changed the 10-pe test to 16 pes to accommodate the test_subset_update tests

expanded test_subset_update checksum comments in test_mpp_update_domains

remove the namelist creation in test_mpp_update_domains.sh

fixed spacing, enabled masked test_halo_update tests

* Fixing comment in mpp_scatter.h. Part of adding new scatter 3D unit test.

* Added test_scatter_3D with double kind. Updated documentation.

* Adding changes based on j.l. PR review.

* Deleting some lines that were already commented out. Mostly debug/print lines.

* Changed comments to doxygen style. Moved legacy test_mpp_gather2DV routine to
original form. Added two todo comments.

Co-authored-by: Jess <20195932+wrongkindofdoctor@users.noreply.github.com>

parent 140430d053f0c9ed967e50023bcc676b7b0fe9db
author laurenchilutti <60401591+laurenchilutti@users.noreply.github.com> 1599082523 -0400
committer wrongkindofdoctor <20195932+wrongkindofdoctor@users.noreply.github.com> 1602615798 -0400

Mixed Precision: Test mpp_sum (#43)

* adding test for mpp_sum

* Updated test_mpp_sum to no longer get error

* updated mpp_init call for test_mpp_sum

Co-authored-by: Jess <20195932+wrongkindofdoctor@users.noreply.github.com>

adds additional test for mpp_broadcast

updates base

removes misc file

cleanups trailing spaces

removed repeated line

added test_update_domains_performance fortran program and launch script that tests mpp_start_update_domains and mpp_complete_update_domains on real 32-bit and 64-bit arrays, and compares the results to the answer returned by mpp_update_domains. The test expands the routine that was originally in test_mpp_domains (#49)

added calls to mpp_domains_init and mpp_domains_exit to test_mpp_update_domains
updated the test_fms/mpp makefile

updated Makefile.am to include platform directory
add platform.mod definitions to compare_data_checksums.F90,fill_halo.F90,  test_mpp_update_domains.F90
, test_update_domains_performance.F90
added required subroutines to test_update_domains_performance.F90
changed write(outunit,) to call mpp_error

removed the four-tile mosaic test because it fails from messsage size problem, and was never used in the original test suite
added optional tile_count argument to mpp_update_domains, mpp_start_domains, and mpp_complete_domains calls and loops over npes_per_tile around the calls

removed update_domains_performance routine and test from test_mpp_domains.F90

testing mpp_alltoall

testing

write data

test_mpp_broadcast unit test for mixed precision  (#50)

* modifies fms_test/mpp/test_mpp_broadcast.F90 for mixed precision

* adds additional test for mpp_broadcast

* updates base

* removes misc file

* cleanups trailing spaces

Eric mp branch (#44)

* Removed OVERLOAD_R4, Separated minmax mpp test, waiting to rebase with Miguels changes

* Updated to only call test_level 0 of mpp_init

* out with platform.h, in with platform_mod

* Doxygen style comments and throwing errors when the result is not as expected

* Tests now pass when only selecting appropriate pes

* Refactored the tests and slimmed them down (no extraneous print statements)

Co-authored-by: Eric Stofferahn <Eric.Stofferahn@noaa.gov>

Add mixed precision (#52)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

* Added test function for mpp_scatter. Extracted mpp_gather tests into their own file (test_mpp_gatscat.F90)
also has the test for mpp_scatter. Added comments to interface in mpp_scatter.h.

* Added mpp scatter 3D test.

* Add mixed precision (#34)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed debugging statements from mpp_transmit_mpi.h
removed namelist read procedure from test_mpp_update_domains
changed the mpp_init argument to mpp_init_test_requests_allocated
changed pe counts to 1,2 (if available), and 10 (if availables) in test_mpp_update_domains.sh

removed debugging statements in mpp_transmit_mpi.h

removed test_halo_update and test_subset_update from test_mpp_domains
added test_subset_update_r4 and test_subset_update_r8 to test_mpp_update_domains
changed the 10-pe test to 16 pes to accommodate the test_subset_update tests

expanded test_subset_update checksum comments in test_mpp_update_domains

remove the namelist creation in test_mpp_update_domains.sh

fixed spacing, enabled masked test_halo_update tests

* Fixing comment in mpp_scatter.h. Part of adding new scatter 3D unit test.

* Added test_scatter_3D with double kind. Updated documentation.

* Adding changes based on j.l. PR review.

* Deleting some lines that were already commented out. Mostly debug/print lines.

* Changed comments to doxygen style. Moved legacy test_mpp_gather2DV routine to
original form. Added two todo comments.

* Adding inital version of test_mpp_sendrecv.F90. R4 version only!

* Adding inital version of test_mpp_sendrecv.F90. R4 version only!

* Switching to use platform_mod in test_mpp_gatscat.F90.

* Added R8 versions of tests. Changed to use platform_mod.

* Completed forst working version of test_mpp_sendrecv with R4 and R8 variables.

* Removed and improved comments in  test_mpp_sendrecv.F90.

Co-authored-by: Jess <20195932+wrongkindofdoctor@users.noreply.github.com>

add mpp_update_domains_ad unit test with mixed-precision support (#42)

* added test_mpp-update_domains_ad tests for 32-bit and 64-bit arrays on 1,2, and 16 pes

fixed permissions for ./test_fms/mpp/test_mpp_update_domains_ad.sh

removed test_halo_update_ad from test_mpp_domains.F90
change print to mpp_error(NOTE for messages about adjoint tests passing
added mpp_error(FATAL, calls if adjoint tests fail

add calls to mpp_domains_init and mpp_domains_exit

removed the 16-pe test
added debugging statements for sum values

added test_mpp-update_domains_ad tests for 32-bit and 64-bit arrays on 1,2, and 16 pes

fixed permissions for ./test_fms/mpp/test_mpp_update_domains_ad.sh

removed test_halo_update_ad from test_mpp_domains.F90
change print to mpp_error(NOTE for messages about adjoint tests passing
added mpp_error(FATAL, calls if adjoint tests fail

add calls to mpp_domains_init and mpp_domains_exit

removed the 16-pe test
added debugging statements for sum values

merged in add_mixed_precision updates
added mpp_sync() calls to test_mpp_update_domains_ad.F90

made the mpp_error message for test failure a warning in the R4 test. The differences in the sums are small (O(10^6)), but I don't think this threshold is sufficient to classify it as neglible. I added notes that the threshold test failure is expected for the R4 case in the comments

updated Makefile to match add_mixed_precision
changed the threshold for the r4 adjoint tests to 1E-6
added skip to the 16-pe mpp_update_domains_test with a note to resolve mpp_clock_begin error
in test_pe_subset

added more detailed comments about R4 threshold

* Removed the 16-pe test from test_mpp_update_domains.sh to avoid triggering the subset test
moved todo note to test_mpp_update_domains.F90

* fixed test name in Makefile.am

Co-authored-by: wrongkindofdoctor <Jessica.Liptak@lscsky50-d.gfdl.noaa.gov>

Unit test for mpp_io reads and writes (#51)

* Add mixed precision (#34)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

* Added unit test from other branch

* rm OVERLOAD_R8 ifdefs from mpp

* Made new file for test

* Cleaned up types

* Added r4 and r8 versions for mpp_read/write_compressed

* Set MPP_TYPE_ of default functions to default reals and added R4 versions to overload

* Added test to autotools, fixed compilation issues and split up test to just test non-mosaic r/w's

* Switched to platform_mod kinds and added appending write test and some comments

* Added R4 and R8 to output messages and took out platform.h

* Renamed test to be more concise

Co-authored-by: Jess <20195932+wrongkindofdoctor@users.noreply.github.com>
Co-authored-by: Miguel R Zuniga <42479054+ngs333@users.noreply.github.com>
Co-authored-by: rem1776 <Ryan.Mulhall@lscsky50-d.gfdl.noaa.gov>

Add test_io_mosaic_R4_R8 (#53)

* Add mixed precision (#34)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

* Added unit test from other branch

* rm OVERLOAD_R8 ifdefs from mpp

* Made new file for test

* Cleaned up types

* Added r4 and r8 versions for mpp_read/write_compressed

* Set MPP_TYPE_ of default functions to default reals and added R4 versions to overload

* Added test to autotools, fixed compilation issues and split up test to just test non-mosaic r/w's

* Switched to platform_mod kinds and added appending write test and some comments

* Added R4 and R8 to output messages and took out platform.h

* Renamed test to be more concise

* Added test for mosaic reads and writes

* Fixed test and also cleaned up and added comments

* Requested changes

Co-authored-by: Jess <20195932+wrongkindofdoctor@users.noreply.github.com>
Co-authored-by: Miguel R Zuniga <42479054+ngs333@users.noreply.github.com>
Co-authored-by: rem1776 <Ryan.Mulhall@lscsky50-d.gfdl.noaa.gov>

Platform swap (#54)

* monin_obukhov (no mod required)

* updated drifters

* updated time_manager

* updated block_control

Replaced platform.h with platform_mod in test_mpp_io and diag_integral (#55)

Co-authored-by: rem1776 <Ryan.Mulhall@lscsky50-d.gfdl.noaa.gov>

added integers to minmax tests

Replaced #include fms_platform.h to use platform_mod in fms_io, horiz_interp_conserve, and interpolator. (#60)

swapped #include <fms_platform.h> with use :: platform_mod, and updat… (#62)

* swapped #include <fms_platform.h> with use :: platform_mod, and updated type definitions,
in test_xgrid.F90, test_fms_io.F90, test_unstructured_fms_io.F90, and test_mpp.F90
test_fms_io.F90

changed platform.h defintions to platform_mode definitions in mpp_domains and mpp_efp
cleaned up documentation in mpp_domains and mpp_efp, and changed html to doxygen-style comments

doxygenized more interface comments in mpp_domains.F90
moved mpp_define_nest_domain and mpp_get_C2F_index interface information to
mpp_define_nest_domains where the routines are defined.

doxygenized more interface comments in mpp_domains
moved mpp_get_F2C_index_fine argument definitions from mpp_domains to mpp_define_nest_domains.inc
moved mpp_update_nest argument definitions to interace routines in mpp_update_nest_domains.h

added mpp_modify_domains argument definitions to routines in mpp_domains_define.inc
finished doxygenizing variable definitions to nest domain update and define routines

changed top_srcdir to top_builddir in the mpp makefile.am platform path
changed the platform.h variable kinds to platform_mod kinds in the mpp modules, include files, and in test_fms/mpp/test_system_clock.F90

removed #include fms_platform.h from mpp modules

swapped out more fms_plaform.h definitions in mpp modules

swapped out more fms_plaform.h definitions in mpp include files

added more missing platform_mod definitions to mpp files

added ptr_type to platform_mod
changed top_srcdir/ to top_blddir/platform in in test_fms/fms/makefile.am
added touch input_nml to mpp_io test launch scripts

changed top_srcdir to top_builddir in test_fms/fms/ Makefile.am platform path

Change mpirun to run_test in test_mpp_memutils.sh (#566) (#45)

Change mpirun to run_test in test_mpp_memutils.sh (#566)

Add mixed precision (#34)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

Add mixed precision (#34) (#40)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed debugging statements from mpp_transmit_mpi.h
removed namelist read procedure from test_mpp_update_domains
changed the mpp_init argument to mpp_init_test_requests_allocated
changed pe counts to 1,2 (if available), and 10 (if availables) in test_mpp_update_domains.sh

removed debugging statements in mpp_transmit_mpi.h

removed test_halo_update and test_subset_update from test_mpp_domains
added test_subset_update_r4 and test_subset_update_r8 to test_mpp_update_domains
changed the 10-pe test to 16 pes to accommodate the test_subset_update tests

expanded test_subset_update checksum comments in test_mpp_update_domains

remove the namelist creation in test_mpp_update_domains.sh

fixed spacing, enabled masked test_halo_update tests

Co-authored-by: Miguel R Zuniga <42479054+ngs333@users.noreply.github.com>

Add mixed precision (#41)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

* Added test function for mpp_scatter. Extracted mpp_gather tests into their own file (test_mpp_gatscat.F90)
also has the test for mpp_scatter. Added comments to interface in mpp_scatter.h.

* Added mpp scatter 3D test.

* Add mixed precision (#34)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed debugging statements from mpp_transmit_mpi.h
removed namelist read procedure from test_mpp_update_domains
changed the mpp_init argument to mpp_init_test_requests_allocated
changed pe counts to 1,2 (if available), and 10 (if availables) in test_mpp_update_domains.sh

removed debugging statements in mpp_transmit_mpi.h

removed test_halo_update and test_subset_update from test_mpp_domains
added test_subset_update_r4 and test_subset_update_r8 to test_mpp_update_domains
changed the 10-pe test to 16 pes to accommodate the test_subset_update tests

expanded test_subset_update checksum comments in test_mpp_update_domains

remove the namelist creation in test_mpp_update_domains.sh

fixed spacing, enabled masked test_halo_update tests

* Fixing comment in mpp_scatter.h. Part of adding new scatter 3D unit test.

* Added test_scatter_3D with double kind. Updated documentation.

* Adding changes based on j.l. PR review.

* Deleting some lines that were already commented out. Mostly debug/print lines.

* Changed comments to doxygen style. Moved legacy test_mpp_gather2DV routine to
original form. Added two todo comments.

Co-authored-by: Jess <20195932+wrongkindofdoctor@users.noreply.github.com>

Mixed Precision: Test mpp_sum (#43)

* adding test for mpp_sum

* Updated test_mpp_sum to no longer get error

* updated mpp_init call for test_mpp_sum

Co-authored-by: Jess <20195932+wrongkindofdoctor@users.noreply.github.com>

Adds test in test_mpp for mixed sized integer checksums

Adds test for distributed integer checksums

Took out remaining no_8byte_int ifdefs from mpp

Split test into its own file and updated autotools for it

Removed unintentional changes to test_mpp.F90

Changed init and exit calls

swapped #include <fms_platform.h> with use :: platform_mod, and updated type definitions,
in test_xgrid.F90, test_fms_io.F90, test_unstructured_fms_io.F90, and test_mpp.F90
test_fms_io.F90

changed platform.h defintions to platform_mode definitions in mpp_domains and mpp_efp
cleaned up documentation in mpp_domains and mpp_efp, and changed html to doxygen-style comments

doxygenized more interface comments in mpp_domains.F90
moved mpp_define_nest_domain and mpp_get_C2F_index interface information to
mpp_define_nest_domains where the routines are defined.

doxygenized more interface comments in mpp_domains
moved mpp_get_F2C_index_fine argument definitions from mpp_domains to mpp_define_nest_domains.inc
moved mpp_update_nest argument definitions to interace routines in mpp_update_nest_domains.h

added mpp_modify_domains argument definitions to routines in mpp_domains_define.inc
finished doxygenizing variable definitions to nest domain update and define routines

changed top_srcdir to top_builddir in the mpp makefile.am platform path
changed the platform.h variable kinds to platform_mod kinds in the mpp modules, include files, and in test_fms/mpp/test_system_clock.F90

removed #include fms_platform.h from mpp modules

swapped out more fms_plaform.h definitions in mpp modules

swapped out more fms_plaform.h definitions in mpp include files

added more missing platform_mod definitions to mpp files

added ptr_type to platform_mod
changed top_srcdir/ to top_blddir/platform in in test_fms/fms/makefile.am
added touch input_nml to mpp_io test launch scripts

changed top_srcdir to top_builddir in test_fms/fms/ Makefile.am platform path

swapped #include <fms_platform.h> with use :: platform_mod, and updated type definitions,
in test_xgrid.F90, test_fms_io.F90, test_unstructured_fms_io.F90, and test_mpp.F90
test_fms_io.F90

changed platform.h defintions to platform_mode definitions in mpp_domains and mpp_efp
cleaned up documentation in mpp_domains and mpp_efp, and changed html to doxygen-style comments

doxygenized more interface comments in mpp_domains.F90
moved mpp_define_nest_domain and mpp_get_C2F_index interface information to
mpp_define_nest_domains where the routines are defined.

doxygenized more interface comments in mpp_domains
moved mpp_get_F2C_index_fine argument definitions from mpp_domains to mpp_define_nest_domains.inc
moved mpp_update_nest argument definitions to interace routines in mpp_update_nest_domains.h

added mpp_modify_domains argument definitions to routines in mpp_domains_define.inc
finished doxygenizing variable definitions to nest domain update and define routines

changed top_srcdir to top_builddir in the mpp makefile.am platform path
changed the platform.h variable kinds to platform_mod kinds in the mpp modules, include files, and in test_fms/mpp/test_system_clock.F90

removed #include fms_platform.h from mpp modules

swapped out more fms_plaform.h definitions in mpp modules

swapped out more fms_plaform.h definitions in mpp include files

added more missing platform_mod definitions to mpp files

added ptr_type to platform_mod
changed top_srcdir/ to top_blddir/platform in in test_fms/fms/makefile.am
added touch input_nml to mpp_io test launch scripts

changed top_srcdir to top_builddir in test_fms/fms/ Makefile.am platform path

added ${topbuilddir}/platform to all makefile.am files in FMS
added platform_mod definitions to fms2_io array_utils.inc
added use platform_mod to fms2_io_utils.F90
added platform_mod definitions to FMS modules

added ${top_builddir}/platform to test_fms/field_manager and
test_fms/time_interp Makefile.am files

replaced iso_fortran kinds with platform_mod kinds in test_global_att.F90 and test_io_with_mask.F90

replaced iso fotran kinds with platform_mod kinds in test_fms/fms2_io/ocean_restart_file_test.inc
test_atmosphere_io.F90, and test_fms2_io.F90.

replaced iso_fortran definitions with platform_mod types in fms2_io repo and tests
initialized temperature arrays in fms2_io tests

* fixed typos and missing comments in mpp_domains.F90 and mpp_efp.F90

* fixed another typo

Co-authored-by: wrongkindofdoctor <Jessica.Liptak@lscsky50-d.gfdl.noaa.gov>

Update mpp_domains.F90

removed rogue domains_axis_spec

Revert "Update mpp_domains.F90"

This reverts commit 4498bc7f22aeab28476c83e7a186cd88540bbc36.

Revert "swapped #include <fms_platform.h> with use :: platform_mod, and updat… (#62)"

This reverts commit 79cd491013fbf23f9196cb84701bb77d6edd09f9.

Revert "Replaced #include fms_platform.h to use platform_mod in fms_io, horiz_interp_conserve, and interpolator. (#60)"

This reverts commit 92648a466e7dd7121bf4337d6ea64a82039b7610.

swapped #include <fms_platform.h> with use :: platform_mod, and updated type definitions,
in test_xgrid.F90, test_fms_io.F90, test_unstructured_fms_io.F90, and test_mpp.F90
test_fms_io.F90

changed platform.h defintions to platform_mode definitions in mpp_domains and mpp_efp
cleaned up documentation in mpp_domains and mpp_efp, and changed html to doxygen-style comments

doxygenized more interface comments in mpp_domains.F90
moved mpp_define_nest_domain and mpp_get_C2F_index interface information to
mpp_define_nest_domains where the routines are defined.

doxygenized more interface comments in mpp_domains
moved mpp_get_F2C_index_fine argument definitions from mpp_domains to mpp_define_nest_domains.inc
moved mpp_update_nest argument definitions to interace routines in mpp_update_nest_domains.h

added mpp_modify_domains argument definitions to routines in mpp_domains_define.inc
finished doxygenizing variable definitions to nest domain update and define routines

changed top_srcdir to top_builddir in the mpp makefile.am platform path
changed the platform.h variable kinds to platform_mod kinds in the mpp modules, include files, and in test_fms/mpp/test_system_clock.F90

removed #include fms_platform.h from mpp modules

swapped out more fms_plaform.h definitions in mpp modules

swapped out more fms_plaform.h definitions in mpp include files

added more missing platform_mod definitions to mpp files

added ptr_type to platform_mod
changed top_srcdir/ to top_blddir/platform in in test_fms/fms/makefile.am
added touch input_nml to mpp_io test launch scripts

changed top_srcdir to top_builddir in test_fms/fms/ Makefile.am platform path

Change mpirun to run_test in test_mpp_memutils.sh (#566) (#45)

Change mpirun to run_test in test_mpp_memutils.sh (#566)

Add mixed precision (#34)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

Add mixed precision (#34) (#40)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed debugging statements from mpp_transmit_mpi.h
removed namelist read procedure from test_mpp_update_domains
changed the mpp_init argument to mpp_init_test_requests_allocated
changed pe counts to 1,2 (if available), and 10 (if availables) in test_mpp_update_domains.sh

removed debugging statements in mpp_transmit_mpi.h

removed test_halo_update and test_subset_update from test_mpp_domains
added test_subset_update_r4 and test_subset_update_r8 to test_mpp_update_domains
changed the 10-pe test to 16 pes to accommodate the test_subset_update tests

expanded test_subset_update checksum comments in test_mpp_update_domains

remove the namelist creation in test_mpp_update_domains.sh

fixed spacing, enabled masked test_halo_update tests

Co-authored-by: Miguel R Zuniga <42479054+ngs333@users.noreply.github.com>

Add mixed precision (#41)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

* Added test function for mpp_scatter. Extracted mpp_gather tests into their own file (test_mpp_gatscat.F90)
also has the test for mpp_scatter. Added comments to interface in mpp_scatter.h.

* Added mpp scatter 3D test.

* Add mixed precision (#34)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed debugging statements from mpp_transmit_mpi.h
removed namelist read procedure from test_mpp_update_domains
changed the mpp_init argument to mpp_init_test_requests_allocated
changed pe counts to 1,2 (if available), and 10 (if availables) in test_mpp_update_domains.sh

removed debugging statements in mpp_transmit_mpi.h

removed test_halo_update and test_subset_update from test_mpp_domains
added test_subset_update_r4 and test_subset_update_r8 to test_mpp_update_domains
changed the 10-pe test to 16 pes to accommodate the test_subset_update tests

expanded test_subset_update checksum comments in test_mpp_update_domains

remove the namelist creation in test_mpp_update_domains.sh

fixed spacing, enabled masked test_halo_update tests

* Fixing comment in mpp_scatter.h. Part of adding new scatter 3D unit test.

* Added test_scatter_3D with double kind. Updated documentation.

* Adding changes based on j.l. PR review.

* Deleting some lines that were already commented out. Mostly debug/print lines.

* Changed comments to doxygen style. Moved legacy test_mpp_gather2DV routine to
original form. Added two todo comments.

Co-authored-by: Jess <20195932+wrongkindofdoctor@users.noreply.github.com>

Mixed Precision: Test mpp_sum (#43)

* adding test for mpp_sum

* Updated test_mpp_sum to no longer get error

* updated mpp_init call for test_mpp_sum

Co-authored-by: Jess <20195932+wrongkindofdoctor@users.noreply.github.com>

Adds test in test_mpp for mixed sized integer checksums

Adds test for distributed integer checksums

Took out remaining no_8byte_int ifdefs from mpp

Split test into its own file and updated autotools for it

Removed unintentional changes to test_mpp.F90

Changed init and exit calls

swapped #include <fms_platform.h> with use :: platform_mod, and updated type definitions,
in test_xgrid.F90, test_fms_io.F90, test_unstructured_fms_io.F90, and test_mpp.F90
test_fms_io.F90

changed platform.h defintions to platform_mode definitions in mpp_domains and mpp_efp
cleaned up documentation in mpp_domains and mpp_efp, and changed html to doxygen-style comments

doxygenized more interface comments in mpp_domains.F90
moved mpp_define_nest_domain and mpp_get_C2F_index interface information to
mpp_define_nest_domains where the routines are defined.

doxygenized more interface comments in mpp_domains
moved mpp_get_F2C_index_fine argument definitions from mpp_domains to mpp_define_nest_domains.inc
moved mpp_update_nest argument definitions to interace routines in mpp_update_nest_domains.h

added mpp_modify_domains argument definitions to routines in mpp_domains_define.inc
finished doxygenizing variable definitions to nest domain update and define routines

changed top_srcdir to top_builddir in the mpp makefile.am platform path
changed the platform.h variable kinds to platform_mod kinds in the mpp modules, include files, and in test_fms/mpp/test_system_clock.F90

removed #include fms_platform.h from mpp modules

swapped out more fms_plaform.h definitions in mpp modules

swapped out more fms_plaform.h definitions in mpp include files

added more missing platform_mod definitions to mpp files

added ptr_type to platform_mod
changed top_srcdir/ to top_blddir/platform in in test_fms/fms/makefile.am
added touch input_nml to mpp_io test launch scripts

changed top_srcdir to top_builddir in test_fms/fms/ Makefile.am platform path

swapped #include <fms_platform.h> with use :: platform_mod, and updated type definitions,
in test_xgrid.F90, test_fms_io.F90, test_unstructured_fms_io.F90, and test_mpp.F90
test_fms_io.F90

changed platform.h defintions to platform_mode definitions in mpp_domains and mpp_efp
cleaned up documentation in mpp_domains and mpp_efp, and changed html to doxygen-style comments

doxygenized more interface comments in mpp_domains.F90
moved mpp_define_nest_domain and mpp_get_C2F_index interface information to
mpp_define_nest_domains where the routines are defined.

doxygenized more interface comments in mpp_domains
moved mpp_get_F2C_index_fine argument definitions from mpp_domains to mpp_define_nest_domains.inc
moved mpp_update_nest argument definitions to interace routines in mpp_update_nest_domains.h

added mpp_modify_domains argument definitions to routines in mpp_domains_define.inc
finished doxygenizing variable definitions to nest domain update and define routines

changed top_srcdir to top_builddir in the mpp makefile.am platform path
changed the platform.h variable kinds to platform_mod kinds in the mpp modules, include files, and in test_fms/mpp/test_system_clock.F90

removed #include fms_platform.h from mpp modules

swapped out more fms_plaform.h definitions in mpp modules

swapped out more fms_plaform.h definitions in mpp include files

added more missing platform_mod definitions to mpp files

added ptr_type to platform_mod
changed top_srcdir/ to top_blddir/platform in in test_fms/fms/makefile.am
added touch input_nml to mpp_io test launch scripts

changed top_srcdir to top_builddir in test_fms/fms/ Makefile.am platform path

added ${topbuilddir}/platform to all makefile.am files in FMS
added platform_mod definitions to fms2_io array_utils.inc
added use platform_mod to fms2_io_utils.F90
added platform_mod definitions to FMS modules

added ${top_builddir}/platform to test_fms/field_manager and
test_fms/time_interp Makefile.am files

replaced iso_fortran kinds with platform_mod kinds in test_global_att.F90 and test_io_with_mask.F90

replaced iso fotran kinds with platform_mod kinds in test_fms/fms2_io/ocean_restart_file_test.inc
test_atmosphere_io.F90, and test_fms2_io.F90.

replaced iso_fortran definitions with platform_mod types in fms2_io repo and tests
initialized temperature arrays in fms2_io tests

fixed typos and missing comments in mpp_domains.F90 and mpp_efp.F90

fixed another typo

fixed typos
added missing code that got eating in a merge back to fill_halo.F90 and test_mpp_gatscat.F90

adds i4/i8 to test_mpp_broadcast

remove typos

removes not-ready alltoall test

fixes missing tests to Makefile.am

Global min and max test for ints and reals (#66)

* Initial commit, adds unit test for mpp_global_min/max

* Finished integer test and check

* Added tests for reals

* Clean up

* Bug fixes

* Took out error notes for printing out each max and min and rearranged checks

* Changed out some incorrect kinds

* Added casts to random assignments

* Added test level parameter for mpp_init

Co-authored-by: rem1776 <Ryan.Mulhall@lscsky50-d.gfdl.noaa.gov>
Co-authored-by: Jess <20195932+wrongkindofdoctor@users.noreply.github.com>

add ints to test_mpp_update_domains (#68)

* Revert "Replaced #include fms_platform.h to use platform_mod in fms_io, horiz_interp_conserve, and interpolator. (#60)"

This reverts commit 92648a466e7dd7121bf4337d6ea64a82039b7610.

* added i4 and i8 routines to fill_halo.F90, compare_data_checksums.F90, and test_mpp_update_domain
made two modules test_mpp_update_domains_int.F90 and test_mpp_update_domains_real.F90 for integer and real routines
made test_mpp_update_domains_main.F90 to initialize and finalize  mpp routines and call tests
updated makefile with new modules

* removed an i8 #ifdef from and openMP region in mpp_domains_misc.inc
made a separate interface for the integer checksum routines in test_mpp_update_domains_int.F90
so compiler can recognize them as unique routines
removed the vector tests from test_mpp_update_domains_int.F90 because the vector interfaces for mpp_update_domains are not defined for integer types
removed unused variables

Revert "Replaced #include fms_platform.h to use platform_mod in fms_io, horiz_interp_conserve, and interpolator. (#60)"

This reverts commit 92648a466e7dd7121bf4337d6ea64a82039b7610.

added i4 and i8 routines to fill_halo.F90, compare_data_checksums.F90, and test_mpp_update_domain
made two modules test_mpp_update_domains_int.F90 and test_mpp_update_domains_real.F90 for integer and real routines
made test_mpp_update_domains_main.F90 to initialize and finalize  mpp routines and call tests
updated makefile with new modules

removed an i8 #ifdef from and openMP region in mpp_domains_misc.inc
made a separate interface for the integer checksum routines in test_mpp_update_domains_int.F90
so compiler can recognize them as unique routines
removed the vector tests from test_mpp_update_domains_int.F90 because the vector interfaces for mpp_update_domains are not defined for integer types
removed unused variables

defined file dependencies for test_mpp_update_domains files in test_fms/mpp/Makefile.am
removed unused module use statement from test_mpp_update_domains_main.F90

specified i,j,k as r8_kind and r4_kind in test_mpp_update_domains.int
added the test_mpp_update_domains .mod files to the cleanup line in test_fms/mpp/Makefile.am

removed line in test_fms/mpp/Makefile.am left over from rebase

Global min and max test for ints and reals (#66)

* Initial commit, adds unit test for mpp_global_min/max

* Finished integer test and check

* Added tests for reals

* Clean up

* Bug fixes

* Took out error notes for printing out each max and min and rearranged checks

* Changed out some incorrect kinds

* Added casts to random assignments

* Added test level parameter for mpp_init

Co-authored-by: rem1776 <Ryan.Mulhall@lscsky50-d.gfdl.noaa.gov>
Co-authored-by: Jess <20195932+wrongkindofdoctor@users.noreply.github.com>

add ints to test_mpp_update_domains (#68)

* Revert "Replaced #include fms_platform.h to use platform_mod in fms_io, horiz_interp_conserve, and interpolator. (#60)"

This reverts commit 92648a466e7dd7121bf4337d6ea64a82039b7610.

* added i4 and i8 routines to fill_halo.F90, compare_data_checksums.F90, and test_mpp_update_domain
made two modules test_mpp_update_domains_int.F90 and test_mpp_update_domains_real.F90 for integer and real routines
made test_mpp_update_domains_main.F90 to initialize and finalize  mpp routines and call tests
updated makefile with new modules

* removed an i8 #ifdef from and openMP region in mpp_domains_misc.inc
made a separate interface for the integer checksum routines in test_mpp_update_domains_int.F90
so compiler can recognize them as unique routines
removed the vector tests from test_mpp_update_domains_int.F90 because the vector interfaces for mpp_update_domains are not defined for integer types
removed unused variables

Revert "Replaced #include fms_platform.h to use platform_mod in fms_io, horiz_interp_conserve, and interpolator. (#60)"

This reverts commit 92648a466e7dd7121bf4337d6ea64a82039b7610.

added i4 and i8 routines to fill_halo.F90, compare_data_checksums.F90, and test_mpp_update_domain
made two modules test_mpp_update_domains_int.F90 and test_mpp_update_domains_real.F90 for integer and real routines
made test_mpp_update_domains_main.F90 to initialize and finalize  mpp routines and call tests
updated makefile with new modules

removed an i8 #ifdef from and openMP region in mpp_domains_misc.inc
made a separate interface for the integer checksum routines in test_mpp_update_domains_int.F90
so compiler can recognize them as unique routines
removed the vector tests from test_mpp_update_domains_int.F90 because the vector interfaces for mpp_update_domains are not defined for integer types
removed unused variables

defined file dependencies for test_mpp_update_domains files in test_fms/mpp/Makefile.am
removed unused module use statement from test_mpp_update_domains_main.F90

specified i,j,k as r8_kind and r4_kind in test_mpp_update_domains.int
added the test_mpp_update_domains .mod files to the cleanup line in test_fms/mpp/Makefile.am

removed line in test_fms/mpp/Makefile.am left over from rebase

Switch to use compare_data_checksum.mod in test_mpp_domains. Changed use of _ALLOCATE in (#69)

data_override.F90. Added "use platform_mod" in xgrid.F90, line 5606.

added module with public interface for integer checksum routines. A separate module is required because the compiler cannot distinguish the checksum interfaces for the real and integer data arrays defined with the portable kinds when they are in the same module (#70)

changed test_mpp_update_domains_int.F90 to reference the integer checksum interface in compare_data_checksums_int.F90
extended the non-vector tests in test_update_domains_performance.F90 to work on 32-bit and 64-bit integer arrays. These tests verify functionality of mpp_start_update_domains and mpp_complete_update_domains with different data types.
updated test_mpp_update_domains and test_mpp_update_domains_performance in test_fms/mpp/makefile.am

re-inserted the platform directory in the AM_CPPFLAGS definitions in horiz_interp/Makefile.am

add integer subroutines to test_mpp_sendrecv.F90 (#72)

* added subroutines to test mpp_send/mpp_recv with 2D and 3D 32-bit and 64-bit integer arrays to test_mpp_sendrecv.F90

* added real-valued factors to data array population loops in the R4 and R8 tests for additional insurance that the data are stored as the correct types

* removed debugging print statements

Co-authored-by: wrongkindofdoctor <Jessica.Liptak@lscsky50-d.gfdl.noaa.gov>
Co-authored-by: wrongkindofdoctor <>

removed executables and namelist files that were accidentally included in a a previous merge

Add mixed precision (#73)

* Added R4 and R8 versions of function test_update_nest_domains in test_mpp_domains.F90. Also extracted
some utility functions to file test_domains_utility_mod.F90

* Added arguments nx, ny to function fill_nest_data.

* Added comment for posterity.

* Removed some comments in test_mpp_domains.F90

Add i4/i8 tests for mpp_redistribute (#74)

* Simplified test to use complete pe lists

* Adds test for overlapping pelists

* Finished up adding in tests and clean up

* Renamed test file

* More clean up

Co-authored-by: rem1776 <Ryan.Mulhall@lscamd50-d.gfdl.noaa.gov>

 replaced $(OBJEXT) with .lo in test_fms/fms2_io and test_fms/mpp Makefile.am (#76)

added $(MODFILES) definitions and appropriate autotools macros to build supplementary .mod files as headers and link them to the module files that use them
 replaced individual .mod files with *.mod in the test_fms/mpp Makefile.am cleanup section

Add test_mpp_transmit (#75)

* Add mixed precision (#34)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

* Add mixed precision (#34) (#40)

* Removing OVERLOAD_R4s in mpp and fms2_io

* Removing #ifdef OVERLOAD_R4 and associated #endif in severl Fortran F90 and inc files.

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed OVERLOAD_R4 ifdefs surrounding mpp_update_domains interfaces

added test_mpp_update_domains.F90

added module file compare_checksums with interface routines for 2d and 3d 32-bit and 64-bit real arrays
created two routines test_halo_update_r8 and test_halo_update_r4 to peform the tests for updating domains for 64-bit and 32-bit real arrays in test_mpp_update_domains.F90

removed #idef OVERLOAD_R4 blocks around routines that mpp_update_domains requires
renamed compare_checksums to compare_data_checksums
added missing variable definitions and modules to test files
updated test_fms mpp makefile with new test

commented out OVERLOAD_R4 ifdef blocks around mpp_chksum routines and definitions in mpp files
added module fill_halo with routines to fill halos for 32-bit and 64-bit arrays on different grids
updated makefile.am in test_fms/mpp with dependency defintions for test_mpp_update_domains

increased stack_max, decreased nx, ny, nz, add calls to mpp_pe, mpp_npes, and mpp_set_domains_stacksize to test_mpp_update_domains.F90, got rid of the single-pe test because og test requires more than 1 pe

added calls to read in the mpp_nml section from input.nml to change the request_multiply parameter

updated test runscript to read in mpp namelist parameter
added calls to initialize and read input namelist to main program
added debugging statements to mpp_transmit
increased hard-coded request_multiply value in mpp.F90

reverted some debugging changes, moved the #include fms_platform.h statement

removed spaces, added missing #endif back to mpp_domains_misc.inc

removed debugging statements from mpp_transmit_mpi.h
removed namelist read procedure from test_mpp_update_domains
changed the mpp_init argument to mpp_init_test_requests_allocated
changed pe counts to 1,2 (if available), and 10 (if availables) in test_mp…
  • Loading branch information
ngs333 authored and wrongkindofdoctor committed Jan 15, 2021
1 parent 983879e commit 857d9a0
Show file tree
Hide file tree
Showing 223 changed files with 30,349 additions and 7,038 deletions.
8 changes: 3 additions & 5 deletions .github/workflows/build_ubuntu_gnu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,11 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
distcheck-conf-flags: [--enable-openmp, --disable-openmp, --enable-mixed-mode, --disable-setting-flags]
fcflags: ["-I/usr/include", "-fdefault-real-8 -fdefault-double-8 -fcray-pointer -ffree-line-length-none -I/usr/include"]
exclude:
distcheck-conf-flags: [--enable-openmp, --disable-openmp, --disable-setting-flags]
fcflags: ["-I/usr/include -fcray-pointer", "-fdefault-real-8 -fdefault-double-8 -fcray-pointer -ffree-line-length-none -I/usr/include"]
exclude:
- distcheck-conf-flags: --disable-setting-flags
fcflags: -I/usr/include
- distcheck-conf-flags: --enable-mixed-mode
fcflags: "-fdefault-real-8 -fdefault-double-8 -fcray-pointer -ffree-line-length-none -I/usr/include"
container:
image: underwoo/ubuntu_libfms_gnu
env:
Expand Down
1 change: 1 addition & 0 deletions affinity/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

# Include .h and .mod files.
AM_CPPFLAGS = -I${top_builddir}/.mod -I${top_srcdir}/include
AM_CPPFLAGS += -I${top_builddir}/platform

# Build this uninstalled convenience library.
noinst_LTLIBRARIES = libfms_affinity.la libfms_affinity_c.la
Expand Down
1 change: 1 addition & 0 deletions astronomy/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

# Include .h and .mod files.
AM_CPPFLAGS = -I${top_builddir}/.mod -I${top_srcdir}/include
AM_CPPFLAGS += -I${top_builddir}/platform

# Build this uninstalled convenience library.
noinst_LTLIBRARIES = libastronomy.la
Expand Down
1 change: 1 addition & 0 deletions axis_utils/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

# Include .h and .mod files.
AM_CPPFLAGS = -I${top_builddir}/.mod -I${top_srcdir}/include
AM_CPPFLAGS += -I${top_builddir}/platform

# Build this uninstalled convenience library.
noinst_LTLIBRARIES = libaxis_utils.la libaxis_utils2.la
Expand Down
1 change: 1 addition & 0 deletions block_control/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

# Include .h and .mod files.
AM_CPPFLAGS = -I${top_builddir}/.mod -I${top_srcdir}/include
AM_CPPFLAGS += -I${top_builddir}/platform

# Build this uninstalled convenience library.
noinst_LTLIBRARIES = libblock_control.la
Expand Down
3 changes: 1 addition & 2 deletions block_control/block_control.F90
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,10 @@
!! @email gfdl.climate.model.info@noaa.gov

module block_control_mod
#include <fms_platform.h>

use mpp_mod, only: mpp_error, NOTE, WARNING, FATAL
use mpp_domains_mod, only: mpp_compute_extent

use platform_mod
implicit none

public block_control_type
Expand Down
1 change: 1 addition & 0 deletions column_diagnostics/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

# Include .h and .mod files.
AM_CPPFLAGS = -I${top_builddir}/.mod -I${top_srcdir}/include
AM_CPPFLAGS += -I${top_builddir}/platform

# Build this uninstalled convenience library.
noinst_LTLIBRARIES = libcolumn_diagnostics.la
Expand Down
1 change: 1 addition & 0 deletions diag_integral/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

# Include .h and .mod files.
AM_CPPFLAGS = -I${top_builddir}/.mod -I${top_srcdir}/include
AM_CPPFLAGS += -I${top_builddir}/platform

# Build this uninstalled convenience library.
noinst_LTLIBRARIES = libdiag_integral.la
Expand Down
4 changes: 2 additions & 2 deletions diag_integral/diag_integral.F90
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
!! @author Fei Liu
!! @email gfdl.climate.model.info@noaa.gov
module diag_integral_mod
#include <fms_platform.h>



Expand Down Expand Up @@ -97,6 +96,7 @@ module diag_integral_mod
!! - format_data_init
!!

use platform_mod, only: i8_kind
use time_manager_mod, only: time_type, get_time, set_time, &
time_manager_init, &
operator(+), operator(-), &
Expand Down Expand Up @@ -1203,7 +1203,7 @@ subroutine write_field_averages (Time)
real :: xtime, rcount
integer :: nn, ninc, nst, nend, fields_to_print
integer :: i, kount
integer(LONG_KIND) :: icount
integer(i8_kind) :: icount

!-------------------------------------------------------------------------------
! each header and data format may be different and must be generated
Expand Down
5 changes: 3 additions & 2 deletions drifters/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@
.NOTPARALLEL:

# Include .h and .mod files.
AM_CPPFLAGS = -I${top_builddir}/.mod -I${top_srcdir}/include

AM_CPPFLAGS = -I${top_srcdir}/include
AM_CPPFLAGS += -I${top_builddir}/platform
AM_CPPFLAGS += -I${top_builddir}/mpp

# Build these uninstalled convenience libraries.
noinst_LTLIBRARIES = libdrifters_core.la libdrifters_input.la \
Expand Down
2 changes: 1 addition & 1 deletion drifters/cloud_interpolator.F90
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
!! @author
!! @email gfdl.climate.model.info@noaa.gov
MODULE cloud_interpolator_mod
#include <fms_platform.h>
use platform_mod
implicit none
private

Expand Down
3 changes: 1 addition & 2 deletions drifters/drifters.F90
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@
!! on a per PE domain basis. There is no support for locally nested or unstrucured
!! meshes. Meshes need not be smooth and continuous across PE domains, however.
module drifters_mod
#include <fms_platform.h>
! <CONTACT EMAIL="Alexander.Pletzer@noaa.gov">
! Alexander Pletzer
! </CONTACT>
Expand Down Expand Up @@ -153,7 +152,7 @@ module drifters_mod
drifters_comm_set_domain, drifters_comm_gather, drifters_comm_update

use cloud_interpolator_mod, only: cld_ntrp_linear_cell_interp, cld_ntrp_locate_cell, cld_ntrp_get_cell_values

use platform_mod
implicit none
private

Expand Down
2 changes: 1 addition & 1 deletion drifters/drifters_comm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
!> @file
!! @email gfdl.climate.model.info@noaa.gov
module drifters_comm_mod
#include <fms_platform.h>

#ifdef _SERIAL

Expand All @@ -39,6 +38,7 @@ module drifters_comm_mod
use mpp_domains_mod, only : mpp_get_compute_domain, mpp_get_data_domain
use mpp_domains_mod, only : NORTH, SOUTH, EAST, WEST, CYCLIC_GLOBAL_DOMAIN
use mpp_domains_mod, only : NORTH_EAST, SOUTH_EAST, SOUTH_WEST, NORTH_WEST
use platform_mod

#define _TYPE_DOMAIN2D type(domain2d)
#define _NULL_PE NULL_PE
Expand Down
12 changes: 6 additions & 6 deletions drifters/drifters_core.F90
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
!> @file
!! @email gfdl.climate.model.info@noaa.gov
module drifters_core_mod
#include <fms_platform.h>
use platform_mod
implicit none
private

Expand All @@ -42,11 +42,11 @@ module drifters_core_mod
type drifters_core_type
! Be sure to update drifters_core_new, drifters_core_del and drifters_core_copy_new
! when adding members
integer*8 :: it !< time index
integer :: nd !< number of dimensions
integer :: np !< number of particles (drifters)
integer :: npdim !< max number of particles (drifters)
integer, allocatable :: ids(:)_NULL !< particle id number
integer(kind=i8_kind) :: it ! time index
integer :: nd ! number of dimensions
integer :: np ! number of particles (drifters)
integer :: npdim ! max number of particles (drifters)
integer, allocatable :: ids(:) ! particle id number
real , allocatable :: positions(:,:)
end type drifters_core_type

Expand Down
5 changes: 1 addition & 4 deletions drifters/drifters_input.F90
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
!> @file
!! @email gfdl.climate.model.info@noaa.gov
module drifters_input_mod
#include <fms_platform.h>
use :: platform_mod
implicit none
private

Expand Down Expand Up @@ -436,6 +436,3 @@ subroutine drifters_input_save(self, filename, geolon, geolat, ermesg)
end subroutine drifters_input_save

end module drifters_input_mod

!===============================================================================
!===============================================================================
3 changes: 0 additions & 3 deletions drifters/drifters_io.F90
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
!* You should have received a copy of the GNU Lesser General Public
!* License along with FMS. If not, see <http://www.gnu.org/licenses/>.
!***********************************************************************
!!#include <fms_platform.h>

!> @file
!! @email gfdl.climate.model.info@noaa.gov
Expand Down Expand Up @@ -304,5 +303,3 @@ subroutine drifters_io_write(self, time, np, nd, nf, ids, positions, fields, erm
end subroutine drifters_io_write

end module drifters_io_mod
!###############################################################################
!###############################################################################
2 changes: 1 addition & 1 deletion exchange/xgrid.F90
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
!***********************************************************************

!* GNU Lesser General Public License
!*
!* This file is part of the GFDL Flexible Modeling System (FMS).
Expand Down
1 change: 1 addition & 0 deletions field_manager/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

# Include .h and .mod files.
AM_CPPFLAGS = -I${top_builddir}/.mod -I${top_srcdir}/include
AM_CPPFLAGS += -I${top_builddir}/platform

# Build these uninstalled convenience libraries.
noinst_LTLIBRARIES = libfield_manager.la libfm_util.la
Expand Down
3 changes: 2 additions & 1 deletion fms2_io/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ include/register_variable_attribute.inc \
include/unstructured_domain_write.inc

# Include .h and .mod files.
AM_CPPFLAGS = -I${top_srcdir}/fms2_io/include -I${top_builddir}/.mod
AM_CPPFLAGS = -I${top_srcdir}/fms2_io/include -I${top_builddir}/.mod \
-I${top_builddir}/platform

# Build these uninstalled convenience libraries.
noinst_LTLIBRARIES = libfms2_io.la libfms_io_utils.la libnetcdf_io.la \
Expand Down
9 changes: 5 additions & 4 deletions fms2_io/blackboxio.F90
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ module blackboxio
use fms_netcdf_domain_io_mod
use fms_netcdf_unstructured_domain_io_mod
use mpp_mod, only: mpp_pe
use, intrinsic :: iso_fortran_env, only: error_unit, int32, int64, real32, real64
use, intrinsic :: iso_fortran_env, only: error_unit
use platform_mod
implicit none
private

Expand Down Expand Up @@ -178,9 +179,9 @@ subroutine copy_metadata(fileobj, new_fileobj)
integer :: i
integer :: j
integer :: k
integer(kind=int32), dimension(:), allocatable :: buf_int
real(kind=real32), dimension(:), allocatable :: buf_float
real(kind=real64), dimension(:), allocatable :: buf_double
integer(kind=i4_kind), dimension(:), allocatable :: buf_int
real(kind=r4_kind), dimension(:), allocatable :: buf_float
real(kind=r8_kind), dimension(:), allocatable :: buf_double

if (fileobj%is_root .and. .not. new_fileobj%is_readonly) then
!Copy global attributes to the new file.
Expand Down
2 changes: 2 additions & 0 deletions fms2_io/fms2_io.F90
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ module fms2_io_mod
use blackboxio
use mpp_mod, only: mpp_init, input_nml_file, mpp_error, FATAL
use mpp_domains_mod, only: mpp_domains_init
use platform_mod

implicit none
private

Expand Down
4 changes: 3 additions & 1 deletion fms2_io/fms_io_utils.F90
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,12 @@
!! @brief Utility routines.
!! @email gfdl.climate.model.info@noaa.gov
module fms_io_utils_mod
use, intrinsic :: iso_fortran_env, only: error_unit, int32, int64, real32, real64
use, intrinsic :: iso_fortran_env, only: error_unit
#ifdef _OPENMP
use omp_lib
#endif
use mpp_mod
use platform_mod
implicit none
private

Expand Down Expand Up @@ -463,3 +464,4 @@ end subroutine open_check


end module fms_io_utils_mod

1 change: 1 addition & 0 deletions fms2_io/fms_netcdf_domain_io.F90
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ module fms_netcdf_domain_io_mod
use mpp_domains_mod
use fms_io_utils_mod
use netcdf_io_mod
use platform_mod
implicit none
private

Expand Down
Loading

0 comments on commit 857d9a0

Please sign in to comment.