Published March 13, 2020
| Version 2020.01
Software
Open
NOAA-GFDL/FMS: Version 2020.01
Authors/Creators
- Seth Underwood
- Tom Robinson1
- Zhi Liang
- menzel-gfdl
- Ed Hartnett2
- uramirez8707
- bensonr
- gbw-gfdl
- Jess
- colingladueNOAA
- Robert Hallberg3
- Niki Zadeh
- fabienpaulot
- Marshall Ward4
- Christopher Dupuis
- Matthew Harrison5
- Nic Hannah
- Samuel Trahan (NOAA contractor)6
- Dusan Jovic7
- Tara McQueen
- Edward Hartnett8
- lwhorowitz
- Andrew Shao
- Dom Heinzeller9
- Ben Burke
- vnaik60
- Rahul Mahajan
- DomHeinzeller10
- 1. @NOAA-GFDL
- 2. CIRES, University of Colorado
- 3. NOAA/GFDL
- 4. @noaa-gfdl
- 5. USDOC/NOAA/GFDL
- 6. NOAA NCEP EMC (IM Systems Group)
- 7. NOAA NCEP EMC
- 8. NOAA GSD/CIRES
- 9. National Oceanic and Atmospheric Administration, Earth System Research Laboratory, Global Systems Division
- 10. NOAA/ESRL/GSD & CU/CIRES
Description
[2020.01] - 2020-03-13
Added:
- Adds the modules
axis_utils2,mosaic2, andtime_interp_external2that usefms2_io - Adds unit tests for thread affinity in test_fms/affinity
- Autotools unit tests are now run with
srun, mpirun, oraprun(whichever is present on your system) fms2_ioprovides three new derived types, which target the different I/O paradigms used in GFDL GCMs:- type(FmsNetcdfFile_t) - This type provides a thin wrapper over the netCDF4 library, but allows the user to assign a "pelist" to the file. If a pelist is assigned, only the first rank on the list directly interacts with the netCDF library, and performs broadcasts to relay the information to the rest of the ranks on the list. This derived type also allows the user to perform "compressed" reads/writes and restart variable "registration" (i.e. the ability to store pointers to user-defined/allocated buffers) and reads/writes in a manner similar to the existing calls in fms_io.
- type(FmsNetcdfUnstructuredDomainFile_t) - This type extends the FmsNetcdfFile_t type to support "domain-decomposed" reads/writes on a user defined mpp_domains unstructured grid. Users are required to inform the FMS2_io module which dimensions correspond to the unstructured grid using the appropriate
register_axiscall before any domain-decomposed reads/writes can be performed. - type(FmsNetcdfDomainFile_t) - This type extends the FmsNetcdfFile_t type to support "domain-decomposed" reads/writes on a user-defined
mpp_domainstwo-dimensional lon-lat or cubed-sphere grid. Users are required to inform thefms2_iomodule which dimensions ('x' or 'y') correspond to the two-dimensional grid using the appropriateregister_axiscalls before any domain-decomposed reads/writes can be performed.
fms2_iorequires the user to manage objects of the types described above. Calls toopen_file(close_file) act as constructors (destructors) for each of the objects, and must be explicitly made by the user. Each object must be constructed before any I/O can be performed. Examples describing how to use these new types are available in test_fms/fms2_iofms2_iotreats _FillValue attributes as valid_max or valid_min range specifiers if none of valid_range, valid_min, and valid_max are specified as described in these netcdf conventions
Changed:
- The
diag_managerIO is handled by fms2_io instead of mpp_io. Default behavior assumes that the mpp_io namelist variable is set to cf_compliant = .true. - The user must specify the diagnostic attributes that they want to write to the output files. Example: If there is no units attribute, then the variable metadata will not include units, and it will not automatically add units = "none".
- Calls to
register_diag_axisfor an X or Y axis that is shifted from the CENTER position need to include the optional argument domain_position and should be equal to EAST or NORTH based on the position relative to the domain. EAST and NORTH are exposed throughdiag_manager_mod. - Changed the handling of average_T and time_bnds variables so that they are set to values that are sent in and are not manipulated as was the case in mpp_io.
interpolator,xgrid,data_override, andamip_interpnow callfms2_ioroutines- Support for enabling/disabling quad-precision (used in certain calculations) has been changed to a hard on/off switch. Default behavior is quad-precision disabled. To enable, add the following CPP macro -DENABLE_QUAD_PRECISION. This change was necessary to remove guessing at the proper setting via a mix of compiler vendor and system-defined environment variables which resulted in different behaviors on machines unbeknownst to the user.
Deprecated:
- fms2_io does NOT use the scale_factor, add_offset, or other attributes to manipulate the data. The variable/data is returned to the caller as it appears in the file. All post-read data manipulations should be handled by the caller.
Removed:
- Removes the use of bats when running unit tests
Files
NOAA-GFDL/FMS-2020.01.zip
Files
(1.6 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:e479be1f7d1af10d7cfc8cf147b05332
|
1.6 MB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/NOAA-GFDL/FMS/tree/2020.01 (URL)