GFDL - Geophysical Fluid Dynamics Laboratory

Skip to main content

FMS - Frequently Asked Questions

General

Compilation Issues

Runtime Issues


General

Q: What is FMS?
FMS is the Flexible Modeling System, a software framework for supporting the efficient development, construction, execution, and scientific interpretation of atmospheric, oceanic, and climate system models. It was developed at the Geophysical Fluid Dynamics Laboratory. Please see What is FMS? for more information.
Q: How do I obtain FMS?
Our publicly released models are available on our GForge Server. You must register as a GForge user, then request access to specific models. When you are granted access, you will receive an email with further instructions.
Q: Where can I ask a question?
There are mailing lists associated with each of our publicly released models on the GForge Server. When you have access to a project, you may browse the archives of these lists, and they are searchable. In most cases, your questions should be posted to one of these lists. However, if you have not yet registered for a project, or you feel your question is inappropriate for the mailing lists, you may send an email to Flexible.Modeling.System@noaa.gov.
Q: What documentation is available?
You may browse the documentation associated with our publicly released packages by clicking on the links under "Public Releases" at left.
Q: How do models get dates, and which dates are used for what?
If the model starts from a restart file, it always takes its date from the restart file. If it does not read coupler.res or atmos_model.res, it takes its date from coupler_nml (coupled models) or main_nml (solo models). The date in the diagnostics table is used as a base date for calculating the axes in output netcdf files. It is usually set to the start of the model run. You will get an error if it is set to a date later than that in the restart files.
Q: What does T42L18 mean? N45L20? How does this translate to processor counts?
N45L20 is the bgrid model. N45 is the number of latitude rows between pole and equator (meridianal resolution). L20 is the number of levels. For a bgrid model, the number of processors must agree with the domain decomposition, which is set with the decomp variable in bgrid_core_driver_nml.
T42L18 is the spectral model. T stands for triangular truncation of spherical harmonics. T42 indicates the highest total wavenumber. (The model will include all total wavenumbers from 0 to 42.) R30 stands for rhomboidal truncation of spherical harmonics, and the highest total wavenumber. For a spectral model, the number of processors depends on the transform grid. The grid is chosen to avoid antialiasing and to be efficient for fourier transforms. The number of processors must divide half the latitude gridpoints. The parameters lon_max and lat_max are set in the spectral model spectral_dynamics_nml namelist.
Tn: grid_lon >= 3n + 1, grid_lat > (5n+1) / 2
Rn: grid_lon >= 3n + 1, grid_lat > (3n+1) / 2
Model: Typical Grid: Processors:
T42 128 x 64 must divide 32
T63 192 x 96 must divide 48
R30 96 x 80 must divide 40

Compilation Issues

Q: I get compilation or linker errors involving sgi_tick.Unresolved text symbol "sgi_tick_" -- 1st referenced by mpp.o
Make sure that you have the file nsclock.c, which is distributed with mpp. Make sure this file is referenced in your path_names when you create your makefile with mkmf.
Q: How do I use Cray Scientific Library (SCILIB) routines on the HPCS at GFDL?
  • You need to link the SCSL library explicitly (-lscs).
  • Some name changes to distinguish 4- and 8-byte arguments, e.g The calls SCFFTM and CSFFTM work with 4-byte reals. The calls DZFFTM and ZDFFTM work with 8-byte reals, same syntax.
  • Use 'man intro_scsl' on the HPCS for more details.
Q: I get a compile error on fpe_mod.use FTN_IEEE_DEFINITIONS
^
f90-1181 f90: ERROR FPE_MOD, File =
/net/klf/MixedLayer/havana/AM2p9_SSTover/shared/fpe/fpe.F90, Line = 34,
Column = 7
Module file "/usr/lib/f90modules/FTN_IEEE_DEFINITIONS.mod" must be
recompiled. Its format is unsupported.
status = TEST_IEEE_EXCEPTION( (/IEEE_XPTN_DIV_BY_ZERO,
This error first occurred when GFDL installed a new version of the compiler. To get around the problem, do not compile and use fpe.F90, or use /home/fms/bin/mkmf.template.inchon.sgi as your compilation template, or add -I/opt/MIPSpro/7312m/usr/lib/f90modules to the FFLAGS in your mkmf compilation template or makefile.

Runtime Issues

Q: I get a time-divide error on coupled models. FATAL from PE 0: time_manager:
time_divide quotient error :: notify developer
A: Check that dt_cpld is set in coupler_nml.
Q: I get an mpp domains stack size error, often with a small number of processors. FATAL from PE 0: MPP_UPDATE_DOMAINS user stack overflow:
call mpp_domains_set_stack_size( 81920) from all PEs.
A: Increase domains_stack_size in fms_nml to the number printed in the error message or larger.
Q: The program crashes immediately while trying to open a file. sys-2 : UNRECOVERABLE error on system request
No such file or directory
A: Make sure that you have a sub-directory called RESTART.
Q: I get a runtime error when running a bgrid atmospheric core with an older initial conditions file. FATAL from PE 13: bgrid_cold_start_mod: resolution not specified
A: Your initial conditions file may have an outdated restart file name. Bgrid's restart file dynamics.res was renamed to bgrid_prog_var.res. After you expand the initial conditions cpio archive in your runscript, add this: if (-e dynamics.res) mv dynamics.res bgrid_prog_var.res
Q: Spectral models crash immediately after initialization when using version 1.4.1.2 of the SGI Scientific Computing Software Library (scsl). FATAL: shallow_dynamics: meridional wind out of valid range
FATAL: spectral_dynamics: temperatures out of valid range
A: The FMS spectral transforms code will not run correctly when using version 1.4.1.2 of the SGI Scientific Computing Software Library (scsl). Apparently, this version has a bug in the FFT.
The spectral transforms code does run under versions 1.3, 1.4, and 1.4.1.3, which were all that were available for testing on our machine.
Q: What are the two vertical velocities "wg" and "wg_full" in the spectral dynamics code?
A: wg(k) is defined as a downward mass flux per unit area across the k+1/2 interface.
wg_full is the pressure velocity at the model kth(full) level in generalized coordinate. wg_full = d(P)/d(t) = d(Psurf*sigma)/d(t)
Note that wg_full is NOT only one of the Psurf*d(sigma)/d(t) or sigma*d(Psurf)/d(t) terms.
Q: I'm getting an error about mix_snapshot_average_fields from the diag_manager.
A: Setting mix_snapshot_average_fields = true will give you a message like this: WARNING from PE 0: Namelist mix_snapshot_average_fields = true will
cause ERROR in time coordinates of all time_averaged fields. Strongly
recommend mix_snapshot_average_fields = false
Here's what happens with this namelist:
With mix_snapshot_average_fields = false, time values in time axis are at the MIDDLE of averaging period, which is more correct. Users can NOT, however, mix snapshot and averaged fields in one file. This is the default.
With mix_snapshot_average_fields = true, time values in time axis are at the END of averaging period, so January monthly means will have time value equal Jan. 31. Users can have snapshot and averaged fields in one file. The frepp postprocessing utility will operate on data with time values at the end of the averaging period, however, resulting postprocessing files will also have the time axis at the end of the averaging period rather than the middle. However, the postprocessing program is unable to create time averages for files containing mixed instantaneous and averaged fields. Also, many existing ferret scripts will produce unexpected or wrong results since they are expecting the time axis in the middle of the averaging period.
The default value is false, and unless you really want to have snapshot and averaged fields in one file, please stick with the default.
Q: The namelist entry "time_varying_cover_type" in land_properties_nml no longer exists in the new codes.
A: As of the Khartoum release, the format of land_properties_nml has changed with regards to reading the input cover type dataset. The time_varying_cover_type was renamed to dynamic_cover_type, and the default is true. This option implies that the cover type forcing data set in netCDF format will vary with time. The new parameter read_old_ascii_cover provides backwards compatibility to read the old style ascii cover type forcing data, and the default is false. If both read_old_ascii_cover and dynamic_cover_type are false, the static netCDF cover type forcing data set will be used, and the year will be read based on cover_dataset_entry and cover_dataset_init_year.
The new parameter cover_dataset_init_year specifies the initial year of the cover type forcing data. The parameter cover_dataset_entry is included for data mapping and specifies the beginning time for reading the data, and changes during the integration. When using the netCDF dynamic or static options, both of these namelist variables must be specified. Following are some examples of how to set up land_properties_nml.
  • Specify the following variables to read a static netcdf file, setting the dates appropriately: dynamic_cover_type = .false.
    read_old_ascii_cover = .false.
    cover_dataset_init_year = 1860
    cover_dataset_entry = 1990, 1, 1, 0, 0, 0,
  • Specify the following variables to read a dynamic netcdf file, setting the dates appropriately: dynamic_cover_type = .true.
    read_old_ascii_cover = .false.
    cover_dataset_init_year = 1860
    cover_dataset_entry = 1861, 1, 1, 0, 0, 0,
  • Specify the following variables to read an ascii file, setting the dates appropriately: dynamic_cover_type = .false.
    read_old_ascii_cover = .true.
    cover_dataset_init_year = 1860
    cover_dataset_entry = 1990, 1, 1, 0, 0, 0,