FMS Coupler  2022.03
Coupler Configuration

coupler_main is configured via the coupler_nml namelist in the input.nml file. The following table contains the available namelist variables.

Variable Name Type Default Value Description
current_date integer, dimension(6) (/0,0,0,0,0,0/) The date that the current integration starts with.
force_date_from_namelist logical .FALSE. Flag that determines whether the namelist variable current_date should override the date in the restart file INPUT/coupler.res. If the restart file does not exist then force_date_from_namelist has not effect, the value of current_date will be used.
calendar character(len=17) '' The calendar type used by the current integration. Valid values are consistent with the time_manager module: 'gregorian', 'julian', 'noleap', or 'thirty_day'. The value 'no_calendar' can not be used because the time_manager's date function are used. All values must be lowercase.
months integer 0 The number of months that the current integration will be run for.
days integer 0 The number of days that the current integration will be run for.
hours integer 0 The number of hours that the current integration will be run for.
minutes integer 0 The number of minutes that the current integration will be run for.
seconds integer 0 The number of seconds that the current integration will be run for.
dt_atmos integer 0 Atmospheric model time step in seconds, including the fast coupling with land and sea ice.
dt_cpld integer 0 Time step in seconds for coupling between ocean and atmospheric models: must be an integral multiple of dt_atmos and dt_ocean. This is the "slow" timestep.
do_atmos, do_ocean, do_ice, do_land, do_flux logical .TRUE. If true (default), that particular model component (atmos, etc.) is run. If false, the execution of that component is skipped. This is used when ALL the output fields sent by that component to the coupler have been overridden using the data_override feature. For advanced users only: if you're not sure, you should leave these values at TRUE.
concurrent logical .FALSE. If true, the ocean executes concurrently with the atmosphere-land-ocean on a separate set of PEs. If false (default), the execution is serial: call atmos... followed by call ocean... If using concurrent execution, you must set one of atmos_npes and ocean_npes, see below.
do_concurrent_radiation logical .FALSE. If true then radiation is done concurrently.
atmos_npes, ocean_npes integer none If concurrent is set to true, we use these to set the list of PEs on which each component runs. At least one of them must be set to a number between 0 and NPES. If exactly one of these two is set non-zero, the other is set to the remainder from NPES. If both are set non-zero they must add up to NPES.
atmos_nthreads, ocean_nthreads integer 1 We set here the number of OpenMP threads to use separately for each component.
radiation_nthreads integer 1 Number of threads to use for the concurrent radiation when do_concurrent_radiation = .true., otherwise is equal to atmos_nthreads
use_lag_fluxes logical .TRUE. If true, the ocean is forced with SBCs from one coupling timestep ago. If false, the ocean is forced with most recent SBCs. For an old leapfrog MOM4 coupling with dt_cpld=dt_ocean, lag fluxes can be shown to be stable and current fluxes to be unconditionally unstable. For dt_cpld>dt_ocean there is probably sufficient damping for MOM4. For more modern ocean models (such as MOM5, GOLD or MOM6) that do not use leapfrog timestepping, use_lag_fluxes=.False. should be much more stable.
concurrent_ice logical .FALSE. If true, the slow sea-ice is forced with the fluxes that were used for the fast ice processes one timestep before. When used in conjuction with setting slow_ice_with_ocean=true, this approach allows the atmosphere and ocean to run concurrently even if use_lag_fluxes=.FALSE., and it can be shown to ameliorate or eliminate several ice-ocean coupled instabilities.
slow_ice_with_ocean logical .FALSE. If true, the slow sea-ice is advanced on the ocean processors. Otherwise the slow sea-ice processes are on the same PEs as the fast sea-ice.
restart_interval integer, dimension(6) (/0,0,0,0,0,0/) The time interval that write out intermediate restart file. The format is (yr,mo,day,hr,min,sec). When restart_interval is all zero, no intermediate restart file will be written out.
do_debug logical .FALSE. If .TRUE. print additional debugging messages.
do_chksum logical .FALSE. Turns on/off checksum of certain variables.
do_endpoint_chksum logical .TRUE. Report checksums of the start and end states of certain variables.
Note
  1. If no value is set for current_date, start_date, or calendar (or default value specified) then the value from restart file "INPUT/coupler.res" will be used. If neither a namelist value or restart file value exist the program will fail.
  2. The actual run length will be the sum of months, days, hours, minutes, and seconds. A run length of zero is not a valid option.
  3. The run length must be an intergal multiple of the coupling timestep dt_cpld.