forked from nick-klingaman/mckpp
-
Notifications
You must be signed in to change notification settings - Fork 0
NamelistOptions
aosprey edited this page Oct 20, 2023
·
2 revisions
This page describes the available MC-KPP namelist options. The namelist is called 3D_ocn.nml. Namelist options are organised into groups. The following tables show, for each group, the available options, possible settings and a brief explanation of each.
Most options that users will want to change are in the NAME_TIMES, NAME_FORCING, NAME_COUPLE and NAME_OUTPUT groups. Those changing the model horizontal domain will need to alter the options in NAME_DOMAIN.
Use these links to jump quickly to a particular namelist group:
- NAME_TIMES - Controls simulation start and end time, as well as the model timestep
- NAME_COUPLE - Controls coupling to an atmospheric model
- NAME_ADVEC - Controls advection, including temperature and salinity corrections
- NAME_FORCING - Controls forcing data, including reference SSTs and sea ice
- NAME_OUTPUT - Controls diagnostic output
- NAME_DOMAIN - Controls the horizontal and vertical domain (but not the number of gridpoints, which much be specified at compile time)
- NAME_START - Controls the initial conditions and checkpointing
- NAME_PARAS - Controls optical properties of seawater
- NAME_LANDSEA - Controls land/sea fraction and bathymetry
- NAME_CONSTANTS - Controls physical constants
- NAME_PROCSWIT - Controls physical processes in the model
| Namelist Option | Type | *Default value * | Description |
|---|---|---|---|
dtsec |
Real | Undefined | Time (in seconds) between updates to the surface forcing data. In coupled mode, this is the coupling frequency. In forced mode, this is the frequency at which the surface forcing is updated from the netCDF file. |
startt |
Real | Undefined | Time (in days) at which the integration begins. Normally, zero refers to 1 January of the first year of the simulation. The convention must agree with the time convention in the ancillary files. |
finalt |
Real | Undefined | Time (in days) at which the integration ends. Normally, zero refers to 1 January of the first year of the simulation. The convention must agree with the time convention in the ancillary files. |
ndtocn |
Integer | 1 | The number of model timesteps per dtsec. The timestep is dtsec divided by ndtocn. |
| Namelist Option | Type | *Default value * | Description |
|---|---|---|---|
L_COUPLE |
Logical | None | Run the model in coupled mode. If compiled in coupled mode, default is TRUE; otherwise, default is FALSE. |
ifirst |
Integer | Undefined | The position (in gridpoints, not degrees) of the first coupled longitude point on the grid of the atmospheric model to which MC-KPP is coupled. |
ilast |
Integer | Undefined | The position (in gridpoints, not degrees) of the last coupled longitude point on the grid of the atmospheric model. |
jfirst |
Integer | Undefined | The position (in gridpoints, not degrees) of the first coupled latitude point on the grid of the atmospheric model. |
jlast |
Integer | Undefined | The position (in gridpoints, not degrees) of the last coupled latitude point on the grid of the atmospheric model. |
L_CPLWGHT |
Logical | False | Use a netCDF file to define coupling weight (the weight applied to the MC-KPP SST). If FALSE, the coupling weight is set to 1.0 at every coupled gridpoint. |
cplwght_file |
String | Undefined | Local path to the netCDF file containing the coupling weights |
L_OUTKELVIN |
Logical | False | Return SST to atmospheric model in Kelvin (TRUE) rather than degrees Celsius (FALSE) |
L_UPDCLIM |
Logical | False | Deprecated |
L_CLIMSST |
Logical | False | Use a netCDF file to specify a reference SST. Reference SSTs are applied outside the coupling region, everywhere that the coupling weight is less than 1.0. They are also used when relaxing only the SST to climatology (L_RELAX). |
sstin_file |
String | Undefined | Local path to the netCDF file containing the reference SSTs |
L_UPD_CLIMSST |
Logical | False | Update the reference SSTs during the simulation (i.e., use time-varying reference SSTs). |
ndtupdsst |
Integer | Undefined | Number of ocean model timesteps between updates to the reference SSTs |
L_PERIODIC_CLIMSST |
Logical | False | Reference SSTs are periodic in time (period specified by climsst_period below) |
climsst_period |
Integer | Undefined | Period (in days) at which to cycle the reference SST |
L_CLIMICE |
Logical | False | Use a netCDF file to specify sea-ice concentrations. MC-KPP does not modify this reference concentration; it merely returns it to the atmosphere. If you want to have any sea ice in your coupled model, regardless of the coupling domain, you must specify TRUE and see the options below. |
icein_file |
String | Undefined | Local path to the netCDF file containing the sea-ice concentrations |
L_UPD_CLIMICE |
Logical | False | Update the sea-ice concentrations during the simulation (i.e., use time-varying sea-ice concentrations). |
ndtupdice |
Integer | Undefined | Number of ocean model timesteps between updates to the sea-ice concentrations |
L_PERIODIC_CLIMICE |
Logical | False | Sea-ice concentrations are periodic in time (period specified by climice_period below) |
climice_period |
Integer | False | Period (in days) at which to cycle the sea-ice concentrations |
L_CLIM_ICE_DEPTH |
Logical | False | Use a netCDF file to specify sea-ice depths. If FALSE, the sea-ice depth will be set to two metres everywhere there is sea ice. Ice depths will be read from the same file, and updated with the same frequency, as the sea-ice concentrations. |
L_CLIM_SNOW_ON_ICE |
Logical | False | Use a netCDF file to specify the amount of snow on sea ice. If FALSE, MC-KPP assumes there is no snow on the sea ice. The amount of snow will be read from the same file, and updated with the same frequency, as the sea-ice concentrations. |
L_COUPLE_CURRENTS |
Logical | False | Return the MC-KPP surface currents to the atmospheric model. If FALSE, MC-KPP returns zero currents. The currents are modified by the same coupling weights as the SSTs, blended with either climatological values (if specified) or zero if the coupling weight is less than 1.0. |
L_CLIMCURR |
Logical | False | Use a netCDF file to specify reference surface currents. If FALSE, the reference current is set to zero. |
currin_file |
String | Undefined | Local path to the netCDF file containing reference zonal and meridional surface currents |
L_UPD_CLIMCURR |
Logical | False | Update the reference surface currents during the simulation (i.e., use time-varying reference surface currents) |
ndtupdcurr |
Integer | Undefined | Number of ocean model timesteps between updates to the reference surface currents |
L_DIST_RUNOFF |
Logical | False | Enables distribution of river runoff to coupled gridpoints. River runoff passed from the atmosphere is accumulated over the coupled domain, then returned to all coupled ocean gridpoints equally as an increment to the freshwater flux. |
| Namelist Option | Type | *Default value * | Description |
|---|---|---|---|
L_ADVECT |
Logical | False | Use a netCDF file to specify horizontal advection terms |
advect_file |
String | Undefined | Local path to the netCDF file containing horizontal advection terms |
L_RELAX_SST |
Logical | False | Linearly relax MC-KPP SSTs towards a reference SST, specified by sstin_file in NAME_COUPLE. The relaxation corrects the entire model-diagnosed mixed-layer depth by the bias in the SST. |
relax_sst_in |
Integer(NY) | 0 | Timescale (in days) for the linear relaxation of the MC-KPP SST towards a reference SST. You must specify one value per latitude band in MC-KPP. Use Fortran namelist syntax (e.g., 520,1030 would give the first five bands a 20 day timescale and the next 10 a 30-day timescale). Specify 0 for no relaxation in that latitude band. |
L_RELAX_CALCONLY |
Logical | False | Calculate the SST relaxation terms, but do not apply them. Warning: This will allow the model to drift; the output values will not be same as if L_RELAX_SST and L_RELAX_SST is specified and interactive relaxation is applied. |
L_RELAX_OCNT |
Logical | False | Linearly relax the full MC-KPP temperature profile towards a reference profile, specified by ocnt_file in NAME_FORCING
|
relax_ocnt_in |
Integer(NY) | 0 | Timescale (in days) for the linear relaxation of the MC-KPP temperature profile towards a reference profile. You must specify one value per latitude band in MC-KPP. |
L_RELAX_SAL |
Logical | False | Linearly relax the full MC-KPP salinity profile towards a reference profile, specified by sal_file in NAME_FORCING
|
relax_sal_in |
Integer(NY) | 0 | Timescale (in days) for the linear relaxation of the MC-KPP salinity profile towards a reference profile. You must specify one value per latitude band in MC-KPP. |
| Namelist Option | Type | *Default value * | Description |
|---|---|---|---|
L_FLUXDATA |
Logical | False | Use a netCDF file for surface forcing data. You must set this to TRUE if you are performing a forced-ocean simulation. |
forcing_file |
String | Undefined | Local path to the netCDF file containing surface forcing data. Forcing data will be updated every dtsec seconds during the simulation. |
ocnt_file |
String | Undefined | Local path to the netCDF file containing reference temperature profiles for computing 4D (x,y,z,t) temperature corrections. For use with L_RELAX_OCNT in NAME_ADVEC. |
L_UPD_OCNT |
Logical | False | Update the reference temperature profiles during the simulation. |
ndtupdocnt |
Integer | Undefined | The frequency (in timesteps) with which to update the reference temperature profiles |
L_PERIODIC_OCNT |
Logical | False | Reference temperature profiles are periodic in time (period specified by ocnt_period below). |
ocnt_period |
Integer | Undefined | The period (in days) at which to cycle the reference temperature profiles. |
sal_file |
String | Undefined | Local path to the netCDF file containing reference salinity profiles for computing 4D (x,y,z,t) salinity corrections. For use with L_RELAX_SAL in NAME_ADVEC. |
L_UPD_SAL |
Logical | False | Update the reference salinity profiles during the simulation. |
ndtupdsal |
Integer | Undefined | The frequency (in timesteps) with which to update the reference salinity profiles |
L_PERIODIC_SAL |
Logical | False | Reference salinity profiles are periodic in time (period specified by sal_period below). |
sal_period |
Integer | Undefined | The period (in days) at which to cycle the reference salinity profiles. |
L_FCORR |
Logical | False | Use a netCDF file containing 3D (x,y,t) temperature corrections, used to constrain the mixed-layer temperature only (i.e., from L_RELAX_SST in NAME_ADVEC) |
L_FCORR_WITHZ |
Logical | False | Use a netCDF file containing 4D (x,y,z,t) temperature corrections, used to constrain the entire temperature profile (i.e., from L_RELAX_OCNT in NAME_ADVEC) |
fcorrin_file |
String | Undefined | Local path to the netCDF file containing either 3D or 4D temperature corrections. Only one method (i.e., 3D or 4D) may be applied in any given simulation. |
L_UPD_FCORR |
Logical | False | Update the temperature corrections (3D or 4D) during the simulation. |
ndtupdfcorr |
Integer | Undefined | The frequency (in timesteps) with which to update the temperature corrections (3D or 4D) |
L_PERIODIC_FCORR |
Logical | False | The temperature corrections (3D or 4D) are periodic in time (period specified by fcorr_period below) |
fcorr_period |
Integer | Undefined | The period (in days) at which to cycle the temperature corrections (3D or 4D) |
L_SFCORR_WITHZ |
Logical | False | Use a netCDF file containing 4D (x,y,z,t) salinity corrections, used to constrain the entire salinity profile (i.e., from L_RELAX_SAL in NAME_ADVEC). |
sfcorrin_file |
String | Undefined | Local path to the netCDF file containing 4D salinity corrections. |
L_UPD_SFCORR |
Logical | False | Update the 4D salinity corrections during the simulation. |
ndtupdsfcorr |
Integer | Undefined | The frequency (in timesteps) with which to update the 4D salinity corrections |
L_PERIODIC_SFCORR |
Logical | False | The 4D salinity corrections are periodic in time (period specified by sfcorr_period below) |
sfcorr_period |
Integer | Undefined | The period (in days) at which to cycle the 4D salinity corrections |
L_VARY_BOTTOM_TEMP |
Logical | False | Use a netCDF file to specify the temperature of the bottom-most point in MC-KPP, equivalent to a no-flux boundary condition. |
bottomin_file |
String | Undefined | Local path to the netCDF file containing the bottom-point temperatures |
L_UPD_BOTTOM_TEMP |
Logical | False | Update the bottom-point temperatures during the simulation. |
ndtupdbottom |
Integer | Undefined | The frequency (in timesteps) with which to update the bottom-point temperatures |
L_PERIODIC_BOTTOM_TEMP |
Logical | False | The bottom-point temperature are periodic in time (period specified by bottom_temp_period below) |
bottom_temp_period |
Integer | Undefined | The period (in days) at which to cycle the bottom-point temperatures |
L_DAMP_CURR |
Logical | False | Damp the MC-KPP currents at all levels to zero, using a non-linear relaxation. Recommended for climate-length simulations. |
dtuvdamp |
Integer | Undefined | Timescale for the non-linear current damping. A value of 360 days is recommended for climate-length simulations. |
L_NO_FREEZE |
Logical | False | Prevent MC-KPP temperatures from dropping below -1.8C. Any temperature anywhere in any profile below -1.8C is automatically set to -1.8C. If triggered, the amount of heat added to raise the temperature to -1.8C is included in the temperature-increment diagnostic output (see DiagnosticList). |
L_NO_ISOTHERM |
Logical | False | Prevent isothermal layers from developing over a specified range of vertical gridpoints (see below). This is an advanced option for debugging and testing that is not normally required. If triggered, the point is reset to climatology (if available through ocnt_file and sal_file) or to the initial conditions. |
isotherm_bottom |
Integer | Undefined | The number of the bottom point to use for the isothermal-layer detection routine. The top point is always the first vertical point. |
isotherm_threshold |
Real | Undefined | The threshold difference (in degrees Celsius) between the top and bottom point to use for the isothermal-detection routine. |
L_FCORR_NSOL |
Logical | False | Relax the model SST toward the target SST climatology (specified by sstin_file in NAME_COUPLE) by adjusting the non-solar heat flux into the ocean, using a relaxation coefficient specified either as a global constant through a namelist option (fcorr_nsol_coeff below) or as a spatially varying field using a netCDF file (fcorr_nsol_file). Implemented for DCPP simulations. |
fcorr_nsol_coeff |
Real | 0.0 | Relaxation coefficient for non-solar heat flux correction above, in units of W m^-2^ K^-1^. |
L_FCORR_NSOL_FILE |
Logical | False | Switch to specify the non-solar heat flux correction coefficient using a netCDF file. |
fcorr_nsol_file |
String | Undefined | Location of the netCDF file containing a spatially varying relaxation coefficient for the non-solar heat flux correction. |
| Namelist Option | Type | *Default value * | Description |
|---|---|---|---|
L_OUTPUT_INST |
Logical | True | Output instantaneous diagnostics to netCDF files called KPPocean_[time].nc, where [time] is the day of the last output time in the file. |
ndt_varout_inst |
Integer(N_VAROUTS) | 0 | Frequency (in timesteps) at which to output instantaneous four-dimensional (x,y,z,t) diagnostics. You must specify one value for each diagnostic; specify 0 for any diagnostics you do not wish to output. See the DiagnosticList for the list of diagnostics. |
ndt_singout_inst |
Integer(N_SINGOUTS) | 0 | Frequency (in timesteps) at which to output instantaneous three-dimensional (x,y,t) diagnostics. You must specify one value for each diagnostic; specify 0 for any diagnostics you do not wish to output. See the DiagnosticList for the list of diagnostics. |
L_OUTPUT_MEAN |
Logical | False | Output time-mean diagnostics for netCDF files called KPPocean_[time]_means.nc, where [time] is the day of the last output time in the file. |
ndt_varout_mean |
Integer(N_VAROUTS) | 0 | As ndt_varout_inst, but for time-mean diagnostics. The output and meaning frequencies are identical. |
ndt_singout_mean |
Integer(N_SINGOUTS) | 0 | As ndt_singout_inst, but for time-mean diagnostics. The output and meaning frequencies are identical. |
L_OUTPUT_RANGE |
Logical | False | Output minima and maxima of diagnostics over a specified window to netCDF files called KPPocean_[time]min.nc and KPPocean[time]_max.nc, respectively. You must specify one value for each diagnostic; specify 0 for any diagnostics you do not wish to output. See the DiagnosticList for the list of diagnostics. |
ndt_varout_range |
Integer(N_VAROUTS) | 0 | As ndt_varout_inst, but for minima and maxima. The windows for minima and maxima are identical. |
ndt_singout_range |
Integer(N_SINGOUTS) | 0 | As ndt_singout_inst, but for minima and maxima. The windows for minima and maxima are identical. |
zprofs |
Integer(NZP1,N_ZPROFS_MAX) | 0 | Up to 5 lists of MC-KPP vertical levels on which output is desired. This allows the user to specify a reduced set of vertical levels for diagnostic output. Each list must be NZP1 (number of vertical points in the model) long. The items in the list must be integer numbers of the levels desired. After the last level desired, specify zeros for the remainder of the list. This can be shortened with Fortran notation (e.g., 60*0 is 60 zeroes). |
zprofs_varout_inst |
Integer(N_VAROUTS) | 1 | The number of the vertical profile (zprofs) used to define the output vertical grid for each instantaneous diagnostic, as defined using the lists above. You must specify one value for each diagnostic; any diagnostics that are not being output (for which ndt_varout_inst is 0) are ignored, but must still be included in the list. A value of 0 specifies all vertical levels. |
zprofs_varout_mean |
Integer(N_VAROUTS) | 1 | As zprofs_varout_inst, but for each time-mean diagnostic. |
zprofs_varout_range |
Integer(N_VAROUTS) | 1 | As zprofs_varout_range, but for the minima and maxima of each diagnostic. |
ndt_per_file |
Integer | 120 | The number of ocean timesteps after which the output files are rotated (i.e., the current set of files are closed and a new set are opened.). All types of output file use the same rotation period. |
L_RESTARTW |
Logical | True | Write a restart file at the end of the simulation that can be used to reinitialize the model. |
restart_outfile |
String | KPP.restart.[time] | Filename for the restart outfile. [time] is replaced with the day number of the time at which the restart file is written. |
ndt_per_restart |
Integer | The length of the simulation | The frequency (in timesteps) at which restart files are written. |
| Namelist Option | Type | *Default value * | Description |
|---|---|---|---|
dmax |
Real | 0.0 m | Depth of the ocean column (positive only) |
L_STRETCHGRID |
Logical | False | Use a stretched vertical grid, defined by dscale
|
dscale |
Real | 0.0 | Exponent for the vertical stretched grid, higher values are more stacked towards the surface (positive only) |
L_VGRID_FILE |
Logical | False | Define the vertical grid using a netCDF file. Overrides L_STRETCHGRID and dscale. |
vgrid_file |
String | Undefined | Local path to the netCDF file containing the vertical grid |
alat |
Real | 0.0 | Latitude of the bottom-left corner of the horizontal domain. Must be defined regardless of L_REGGRID setting. |
alon |
Real | 0.0 | Longitude of the bottom-left corner of the horizontal domain. Must be defined regardless of L_REGRRID setting. |
L_REGGRID |
Logical | True | Use a regularly spaced horizontal domain, defined by delta_lat and delta_lon. If FALSE, grid is read from land/sea mask file. |
delta_lat |
Real | 2.50 | Spacing in latitude between grid points |
delta_lon |
Real | 3.75 | Spacing in longitude between grid points |
L_SLAB |
Logical | False | Run as a slab ocean (single layer) |
slab_depth |
Real | 30 | Depth of slab ocean (in metres) |
| Namelist Option | Type | *Default value * | Description |
|---|---|---|---|
L_INITDATA |
Logical | True | Read initial conditions from netCDF file. Must be TRUE unless performing a restart run with L_RESTART. |
initdata_file |
String | None | Local path to the netCDF file containing the initial conditions |
L_INTERPINIT |
Logical | True | Interpolate initial conditions onto the KPP vertical grid |
L_RESTART |
Logical | False | Restart the simulation from a previous integration |
restart_infile |
String | fort.30 | Local path to the Fortran output file containing the restart dump |
| Namelist Option | Type | *Default value * | Description |
|---|---|---|---|
L_JERLOV |
Logical | True | Use a netCDF file containing Jerlov water types (optical properties of sea water). If FALSE, then all gridpoints use a Jerlov water type of IB. |
paras_file |
String | 3D_ocnparas.nc | Local path to the netCDF file containing the Jerlov water types at each KPP horizontal gridpoint. |
max_ekman_depth |
Real | 0.0 | Maximum depth (positive down) of Ekman layer allowed for vertical Ekman pumping. Ekman depths deeper than this depth will have zero Ekman pumping. Suggested value 500 metres. |
max_ekadv_depth |
Real | 0.0 | Maximum depth for imposed vertical Ekman pumping. Profile of Ekman advection is a sinusoidal decay from the diagnosed Ekman depth, to zero at the surface and to zero at this maximum depth. Suggested value 750 metres. |
| Namelist Option | Type | *Default value * | Description |
|---|---|---|---|
L_LANDSEA |
Logical | False | Use a netCDF file to specify the land/sea fraction and the ocean bathymetry. If FALSE, all points are assumed to be entirely ocean; the bathymetry is assumed to be equal to the depth of the MC-KPP water column. |
landsea_file |
String | Undefined | Local path to the netCDF file containing the land/sea fraction and the ocean bathymetry. |
| Namelist Option | Type | Default value | Description |
|---|---|---|---|
grav |
Real | 9.816 m s^-2^ | Acceleration due to gravity |
vonk |
Real | 0.4 | Von Karman's constant |
sbc |
Real | 5.67x10^-8^ W m^-2^ K^-4^ | Stefan-Boltsmann constant |
twopi |
Real | 8 [tan^-1^(1.0)] | Twice the value of Pi to machine precision |
onepi |
Real |
twopi/2.0 |
The value of Pi to machine precision |
TK0 |
Real | 273.15K | The value of 0^o^C in Kelvin |
spd |
Real | 86400.0 s | The number of seconds per day |
dpy |
Real | 360.0 days | The number of days per year (not currently used) |
epsw |
Real | 1.0 | Correction factor for the departure of water from a black body |
albocn |
Real | 0.06 | Albedo of sea water |
EL |
Real | 2.5x10^6^ J kg^-1^ | Latent heat of evaporation for water |
SL |
Real | 2.5122x10^6^ J kg^-1^ | Latent heat of evaporation for ice |
FL |
Real | 3.34x10^5^ J kg^-1^ | Latent heat of fusion for ice |
FLSN |
Real | 3.34x10^5^ J kg^-1^ | Latent heat of fusion for snow |
| Namelist Option | Type | Default value | Description |
|---|---|---|---|
LKPP |
Logical | True | Enables KPP boundary-layer mixing scheme |
LRI |
Logical | True | Enables Richardson-number mixing scheme below the diagnosed mixing depth |
LDD |
Logical | False | Enables double-diffusion calculations (greatly increases run time) |
LICE |
Logical | False | Enables simple sea-ice submodel (not implemented) |
LNBFLX |
Logical | False | Enables a no-flux boundary condition (no diffusion or viscosity) for the bottom of the column |
L_SSref |
Logical | True | Calculate the surface salinity as an offset from a reference value, taken from the initial condition |
L_EKMAN_PUMP |
Logical | False | Enables vertical Ekman advection (pumping) by the curl of the surface wind stress. Advection can be tuned by adjusting max_ekman_depth and max_ekadv_depth in NAME_PARAS. |