Skip to content

Commit

Permalink
Add test_mpp_transmit (#75)
Browse files Browse the repository at this point in the history
* 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>

* Rebase onto master (#46)

* 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>

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

* Added missing \'s

* 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

* 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>

* Created test_mpp_transmit and removed the test from test_mpp.F90.  Updates test_mpp_sum to replace include platform.h and replace mpp_exit.

* 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 8f654ff6a27ef2833a7832e29ce117ea51c9d684 [formerly b2d3914f2db411834bb0d381a00691293d0ea9ba].

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

This reverts commit d849cf61f966321bdb2a19076ab3d917fa82b97a [formerly 35d617011a6b123d21f6320d2c990ab43c2325f9].

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

This reverts commit 2da93f30ab218d5c54058b667a14b117b87bf7fe [formerly 6a8d70cba1bc5c2a2d4521cc85950935ed4a3c10].

* 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

* correcting merge on test_fms/mpp/Makefile.am

* correcting one more error in merge

* updating test_mpp_transmit to include integer testing, null_pe testing, and all_pes testing.

* updating integer definitions as per comments on PR

* updating mpp_init call

* changed dimensions of test variables, initilizing the b variable when used, updated everything to account for the new dimensions

Co-authored-by: Miguel R Zuniga <42479054+ngs333@users.noreply.github.com>
Co-authored-by: Jess <20195932+wrongkindofdoctor@users.noreply.github.com>
Co-authored-by: MiKyung Lee <58964324+mlee03@users.noreply.github.com>
Co-authored-by: Eric <7784797+GFDL-Eric@users.noreply.github.com>
Co-authored-by: Eric Stofferahn <Eric.Stofferahn@noaa.gov>
Co-authored-by: wrongkindofdoctor <Jessica.Liptak@lscsky50-d.gfdl.noaa.gov>
Co-authored-by: rem1776 <35538242+rem1776@users.noreply.github.com>
Co-authored-by: rem1776 <Ryan.Mulhall@lscsky50-d.gfdl.noaa.gov>
Former-commit-id: 697ade9dfeb29f613183dcdb0d1ed8e443ac0dc3
  • Loading branch information
9 people authored Nov 4, 2020
1 parent d03ded2 commit 859867f
Show file tree
Hide file tree
Showing 5 changed files with 634 additions and 49 deletions.
11 changes: 8 additions & 3 deletions test_fms/mpp/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ check_PROGRAMS = test_mpp \
test_mpp_sendrecv \
test_global_minmax \
test_chksum_int \
test_mpp_update_domains_ad
test_mpp_update_domains_ad \
test_mpp_transmit

# These are the sources for the tests.
test_mpp_SOURCES = test_mpp.F90
Expand Down Expand Up @@ -104,6 +105,8 @@ test_mpp_update_domains_ad_SOURCES=test_mpp_update_domains_ad.F90 compare_data_c
test_global_minmax_SOURCES=test_global_minmax.F90
test_chksum_int_SOURCES=test_chksum_int.F90
test_redistribute_int_SOURCES=test_redistribute_int.F90
test_mpp_transmit_SOURCES=test_mpp_transmit.F90


# Run the test programs.
TESTS = test_mpp_domains2.sh \
Expand Down Expand Up @@ -133,7 +136,8 @@ TESTS = test_mpp_domains2.sh \
test_minmax.sh \
test_mpp_sendrecv.sh \
test_chksum_int.sh \
test_mpp_update_domains_ad.sh
test_mpp_update_domains_ad.sh \
test_mpp_transmit.sh

# These files will also be included in the distribution.
EXTRA_DIST = input_base.nml \
Expand Down Expand Up @@ -167,7 +171,8 @@ EXTRA_DIST = input_base.nml \
test_global_minmax.sh \
test_chksum_int.sh \
test_redistribute_int.sh \
test_mpp_update_domains_ad.sh
test_mpp_update_domains_ad.sh \
test_mpp_transmit.sh

# Each mod file depends on the .lo (library object) file.
compare_data_checksums.mod : compare_data_checksums.lo
Expand Down
35 changes: 1 addition & 34 deletions test_fms/mpp/test_mpp.F90
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,6 @@ program test !test various aspects of mpp_mod
out_unit = stdout()

call SYSTEM_CLOCK( count_rate=ticks_per_sec )
if( pe.EQ.root ) print *, '------------------> Calling test_time_transmit <------------------'
call test_time_transmit()
if( pe.EQ.root ) print *, '------------------> Finished test_time_transmit <------------------'

if( pe.EQ.root ) print *, '------------------> Calling test_mpp_max <------------------'
call test_mpp_max()
Expand Down Expand Up @@ -103,39 +100,9 @@ program test !test various aspects of mpp_mod

contains

subroutine test_time_transmit()

allocate( a(n), b(n) )
id = mpp_clock_id( 'Random number' )
call mpp_clock_begin(id)
call random_number(a)
call mpp_clock_end (id)

id = mpp_clock_id( 'mpp_transmit' )
call mpp_clock_begin(id)
!timing is done for cyclical pass (more useful than ping-pong etc)
l = n
do while( l.GT.0 )
!--- mpp_transmit -------------------------------------------------
call mpp_sync()
call SYSTEM_CLOCK(tick0)
do i = 1,npes
call mpp_transmit( put_data=a(1), plen=l, to_pe=modulo(pe+npes-i,npes), &
get_data=b(1), glen=l, from_pe=modulo(pe+i,npes) )
call mpp_sync_self()
end do
call mpp_sync()
call SYSTEM_CLOCK(tick)
dt = real(tick-tick0)/(npes*ticks_per_sec)
dt = max( dt, epsilon(dt) )
if( pe.EQ.root ) print *, 'MPP_TRANSMIT length, time, bw(Mb/s)=', l, dt, l*8e-6/dt
l = l/2
end do

end subroutine test_time_transmit

subroutine test_mpp_max

allocate( a(n), b(n) )
a = real(pe+1)
print *, 'pe, pe+1 =', pe, a(1)
call mpp_max( a(1) )
Expand Down
24 changes: 12 additions & 12 deletions test_fms/mpp/test_mpp_sum.F90
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,21 @@
!! @description This test program is for testing the mpp_sum interface.

program test_mpp_sum
#include <fms_platform.h>

use mpp_mod, only : mpp_init, mpp_pe, mpp_npes, mpp_root_pe
use mpp_mod, only : mpp_sync
use mpp_mod, only : mpp_set_stack_size, mpp_init_test_requests_allocated
use mpp_mod, only : mpp_sum, mpp_exit
use mpp_mod, only : mpp_sum
use mpp_mod, only : mpp_error, FATAL
use platform_mod

implicit none

integer :: n
real(FLOAT_KIND), allocatable, dimension(:) :: a4, b4, c4
real(DOUBLE_KIND), allocatable, dimension(:) :: a8, b8, c8
integer :: i, pe, npes, root
integer, allocatable, dimension(:) :: pelist
integer :: n, ierr
real(kind=r4_kind), allocatable, dimension(:) :: a4, b4, c4
real(kind=r8_kind), allocatable, dimension(:) :: a8, b8, c8
integer :: i, pe, npes, root
integer, allocatable, dimension(:) :: pelist

call mpp_init(mpp_init_test_requests_allocated)
call mpp_set_stack_size(3145746)
Expand All @@ -52,7 +52,7 @@ program test_mpp_sum
call test_mpp_sum_large()
if( pe.EQ.root ) print *, '------------------> Finished test_mpp_sum <------------------'

call mpp_exit()
call MPI_FINALIZE(ierr)

contains

Expand All @@ -62,8 +62,8 @@ subroutine test_mpp_sum_dim1()
n=1
allocate( a4(n), a8(n), b4(npes), b8(npes), c4(n), c8(n))

a4 = real(pe+1, kind=FLOAT_KIND)
a8 = real(pe+1, kind=DOUBLE_KIND)
a4 = real(pe+1, kind=r4_kind)
a8 = real(pe+1, kind=r8_kind)
call mpp_sync()
call mpp_sum(a4(1:n),n)
call mpp_sum(a8(1:n),n)
Expand All @@ -86,8 +86,8 @@ subroutine test_mpp_sum_pelist()
allocate( a4(n), a8(n), b4(npes), b8(npes), c4(n), c8(n))
allocate( pelist(0:npes-1) )

a4 = real(pe+1, kind=FLOAT_KIND)
a8 = real(pe+1, kind=DOUBLE_KIND)
a4 = real(pe+1, kind=r4_kind)
a8 = real(pe+1, kind=r8_kind)
call mpp_sync()
if (pe .LE. npes-2) then
pelist = (/(i,i=0,npes-2)/)
Expand Down
Loading

0 comments on commit 859867f

Please sign in to comment.