diff --git a/cicecore/cicedynB/general/ice_init.F90 b/cicecore/cicedynB/general/ice_init.F90 index 289b70a9f..751d8c12e 100644 --- a/cicecore/cicedynB/general/ice_init.F90 +++ b/cicecore/cicedynB/general/ice_init.F90 @@ -134,7 +134,7 @@ subroutine input_data integer (kind=int_kind) :: rpcesm, rplvl, rptopo real (kind=dbl_kind) :: Cf, ksno, puny - integer :: abort_flag + character (len=char_len) :: abort_list character (len=64) :: tmpstr character(len=*), parameter :: subname='(input_data)' @@ -220,7 +220,7 @@ subroutine input_data ! default values !----------------------------------------------------------------- - abort_flag = 0 + abort_list = "" call icepack_query_parameters(puny_out=puny) ! nu_diag not yet defined @@ -257,7 +257,7 @@ subroutine input_data history_file = 'iceh' ! history file name prefix history_precision = 4 ! precision of history files write_ic = .false. ! write out initial condition - cpl_bgc = .false. ! history file name prefix + cpl_bgc = .false. ! couple bgc thru driver incond_dir = history_dir ! write to history dir for default incond_file = 'iceh_ic'! file prefix dumpfreq='y' ! restart frequency option @@ -302,6 +302,8 @@ subroutine input_data mu_rdg = 3 ! e-folding scale of ridged ice, krdg_partic=1 (m^0.5) Cf = 17.0_dbl_kind ! ratio of ridging work to PE change in ridging ksno = 0.3_dbl_kind ! snow thermal conductivity + dxrect = 0.0_dbl_kind ! user defined grid spacing in cm in x direction + dyrect = 0.0_dbl_kind ! user defined grid spacing in cm in y direction close_boundaries = .false. ! true = set land on edges of grid basalstress= .false. ! if true, basal stress for landfast is on k1 = 8.0_dbl_kind ! 1st free parameter for landfast parameterization @@ -762,7 +764,7 @@ subroutine input_data write(nu_diag,*) subname//' ERROR: runtype=',trim(runtype), 'restart=',restart, 'ice_ic=',trim(ice_ic) write(nu_diag,*) subname//' ERROR: Please review user guide' endif - abort_flag = 1 + abort_list = trim(abort_list)//":1" endif #ifndef ncdf @@ -771,13 +773,13 @@ subroutine input_data write(nu_diag,*) subname//' ERROR: ncdf CPP flag unset, data formats must be bin' write(nu_diag,*) subname//' ERROR: check grid_format, atm_data_format, ocn_data_format or set ncdf CPP' endif - abort_flag = 2 + abort_list = trim(abort_list)//":2" endif #endif if (advection /= 'remap' .and. advection /= 'upwind' .and. advection /= 'none') then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: invalid advection=',trim(advection) - abort_flag = 3 + abort_list = trim(abort_list)//":3" endif if (ncat == 1 .and. kitd == 1) then @@ -787,7 +789,7 @@ subroutine input_data write(nu_diag,*) subname//' ERROR: Use kitd = 0 (delta function ITD) with kcatbound = 0' write(nu_diag,*) subname//' ERROR: or for column configurations use kcatbound = -1' endif - abort_flag = 4 + abort_list = trim(abort_list)//":4" endif if (ncat /= 1 .and. kcatbound == -1) then @@ -796,7 +798,7 @@ subroutine input_data write(nu_diag,*) subname//' ERROR: ncat=',ncat,' kcatbound=',kcatbound write(nu_diag,*) subname//' ERROR: Please review user guide' endif - abort_flag = 5 + abort_list = trim(abort_list)//":5" endif if (kdyn == 2 .and. revised_evp) then @@ -821,14 +823,14 @@ subroutine input_data if (my_task == master_task) then write(nu_diag,*) subname//' ERROR: Must use only one melt pond scheme' endif - abort_flag = 6 + abort_list = trim(abort_list)//":6" endif if (tr_pond_lvl .and. .not. tr_lvl) then if (my_task == master_task) then write(nu_diag,*) subname//' ERROR: tr_pond_lvl=T but tr_lvl=F' endif - abort_flag = 30 + abort_list = trim(abort_list)//":30" endif ! tcraig - this was originally implemented by resetting hs0=0. EH says it might be OK @@ -839,7 +841,7 @@ subroutine input_data if (my_task == master_task) then write(nu_diag,*) subname//' ERROR: tr_pond_lvl=T and hs0 /= 0' endif - abort_flag = 7 + abort_list = trim(abort_list)//":7" endif if (trim(shortwave) /= 'dEdd' .and. tr_pond .and. calc_tsfc) then @@ -847,7 +849,7 @@ subroutine input_data write(nu_diag,*) subname//' ERROR: tr_pond=T, calc_tsfc=T, invalid shortwave' write(nu_diag,*) subname//' ERROR: Must use shortwave=dEdd' endif - abort_flag = 8 + abort_list = trim(abort_list)//":8" endif if (tr_iso .and. n_iso==0) then @@ -856,7 +858,7 @@ subroutine input_data write(nu_diag,*) subname//' ERROR: not allocated in tracer array.' write(nu_diag,*) subname//' ERROR: if tr_iso, n_iso must be > 0.' endif - abort_flag = 31 + abort_list = trim(abort_list)//":31" endif if (tr_aero .and. n_aero==0) then @@ -865,7 +867,36 @@ subroutine input_data write(nu_diag,*) subname//' ERROR: not allocated in tracer array.' write(nu_diag,*) subname//' ERROR: if tr_aero, n_aero must be > 0.' endif - abort_flag = 9 + abort_list = trim(abort_list)//":9" + endif + + if (ncat < 1) then + if (my_task == master_task) then + write(nu_diag,*) subname//' ERROR: ncat < 1' + endif + abort_list = trim(abort_list)//":32" + endif + + if (nilyr < 1) then + if (my_task == master_task) then + write(nu_diag,*) subname//' ERROR: nilyr < 1' + endif + abort_list = trim(abort_list)//":33" + endif + + if (nslyr < 1) then + if (my_task == master_task) then + write(nu_diag,*) subname//' ERROR: nslyr < 1' + endif + abort_list = trim(abort_list)//":34" + endif + + if (nblyr < 1) then + if (my_task == master_task) then + write(nu_diag,*) subname//' ERROR: nblyr < 1' + write(nu_diag,*) subname//' ERROR: not allowed due to history implementation.' + endif + abort_list = trim(abort_list)//":35" endif if (nfsd < 1) then @@ -873,7 +904,7 @@ subroutine input_data write(nu_diag,*) subname//' ERROR: nfsd < 1' write(nu_diag,*) subname//' ERROR: not allowed due to history implementation.' endif - abort_flag = 32 + abort_list = trim(abort_list)//":36" endif if (trim(shortwave) /= 'dEdd' .and. tr_aero) then @@ -881,7 +912,7 @@ subroutine input_data write(nu_diag,*) subname//' ERROR: tr_aero=T, invalid shortwave' write(nu_diag,*) subname//' ERROR: Must use shortwave=dEdd' endif - abort_flag = 10 + abort_list = trim(abort_list)//":10" endif if ((rfracmin < -puny .or. rfracmin > c1+puny) .or. & @@ -891,19 +922,19 @@ subroutine input_data write(nu_diag,*) subname//' ERROR: rfracmin, rfracmax must be between 0 and 1' write(nu_diag,*) subname//' ERROR: and rfracmax >= rfracmin' endif - abort_flag = 11 + abort_list = trim(abort_list)//":11" endif rfracmin = min(max(rfracmin,c0),c1) rfracmax = min(max(rfracmax,c0),c1) if (trim(atm_data_type) == 'monthly' .and. calc_strair) then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: atm_data_type=monthly and calc_strair=T' - abort_flag = 12 + abort_list = trim(abort_list)//":12" endif if (ktherm == 2 .and. .not. calc_Tsfc) then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: ktherm = 2 and calc_Tsfc=F' - abort_flag = 13 + abort_list = trim(abort_list)//":13" endif ! tcraig, is it really OK for users to run inconsistently? @@ -925,38 +956,38 @@ subroutine input_data if (formdrag) then if (trim(atmbndy) == 'constant') then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: formdrag=T and atmbndy=constant' - abort_flag = 14 + abort_list = trim(abort_list)//":14" endif if (.not. calc_strair) then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: formdrag=T and calc_strair=F' - abort_flag = 15 + abort_list = trim(abort_list)//":15" endif if (.not. tr_pond) then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: formdrag=T and tr_pond=F' - abort_flag = 16 + abort_list = trim(abort_list)//":16" endif if (tr_pond_cesm) then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: formdrag=T and frzpnd=cesm' - abort_flag = 17 + abort_list = trim(abort_list)//":17" endif if (.not. tr_lvl) then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: formdrag=T and tr_lvl=F' - abort_flag = 18 + abort_list = trim(abort_list)//":18" endif endif if (trim(fbot_xfer_type) == 'Cdn_ocn' .and. .not. formdrag) then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: formdrag=F and fbot_xfer_type=Cdn_ocn' - abort_flag = 19 + abort_list = trim(abort_list)//":19" endif if(history_precision .ne. 4 .and. history_precision .ne. 8) then write (nu_diag,*) 'ERROR: bad value for history_precision, allowed values: 4, 8' - abort_flag = 22 + abort_list = trim(abort_list)//":22" endif if (.not.(trim(dumpfreq) == 'y' .or. trim(dumpfreq) == 'Y' .or. & @@ -1280,7 +1311,7 @@ subroutine input_data grid_type /= 'regional' .and. & grid_type /= 'latlon' ) then if (my_task == master_task) write(nu_diag,*) subname//' ERROR: unknown grid_type=',trim(grid_type) - abort_flag = 20 + abort_list = trim(abort_list)//":20" endif ! check for valid kevp_kernel @@ -1294,16 +1325,16 @@ subroutine input_data if (kevp_kernel == 2) then if (my_task == master_task) write(nu_diag,*) subname//' kevp_kernel=2 not validated, use kevp_kernel=102 for testing until it is validated' endif - abort_flag = 21 + abort_list = trim(abort_list)//":21" endif endif - if (abort_flag /= 0) then + if (abort_list /= "") then call flush_fileunit(nu_diag) endif call ice_barrier() - if (abort_flag /= 0) then - write(nu_diag,*) subname,' ERROR: abort_flag=',abort_flag + if (abort_list /= "") then + write(nu_diag,*) subname,' ERROR: abort_list = ',trim(abort_list) call abort_ice (subname//' ABORTING on input ERRORS', & file=__FILE__, line=__LINE__) endif diff --git a/cicecore/version.txt b/cicecore/version.txt index 18921f221..43f856223 100644 --- a/cicecore/version.txt +++ b/cicecore/version.txt @@ -1 +1 @@ -CICE 6.1.1 +CICE 6.1.2 diff --git a/doc/source/conf.py b/doc/source/conf.py index 32cf67fc2..840ef4a44 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -62,9 +62,9 @@ # built documents. # # The short X.Y version. -version = u'6.1.1' +version = u'6.1.2' # The full version, including alpha/beta/rc tags. -version = u'6.1.1' +version = u'6.1.2' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/source/developer_guide/dg_about.rst b/doc/source/developer_guide/dg_about.rst index bd06d7a3f..37318b2c5 100644 --- a/doc/source/developer_guide/dg_about.rst +++ b/doc/source/developer_guide/dg_about.rst @@ -20,9 +20,7 @@ Guiding principles for the creation of CICE include the following: Git workflow and Pull Requests ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -There is extensive Information for Developers documentation available. -See https://github.com/CICE-Consortium/About-Us/wiki/Resource-Index#information-for-developers -for information on: +There is extensive Information for Developers documentation available. See https://github.com/CICE-Consortium/About-Us/wiki/Resource-Index#information-for-developers for information on: - Contributing to model development - Software development practices guide - git Workflow Guide - including extensive information about the Pull Request process and requirements diff --git a/doc/source/developer_guide/dg_dynamics.rst b/doc/source/developer_guide/dg_dynamics.rst index d9cc08841..0a48513dc 100644 --- a/doc/source/developer_guide/dg_dynamics.rst +++ b/doc/source/developer_guide/dg_dynamics.rst @@ -23,8 +23,7 @@ binary and netcdf files. **cicecore/drivers/** contains subdirectories that support stand-alone drivers and other high level coupling layers. -**cicecore/shared/** contains some basic methods related to grid decomposition, time managers, constants, -kinds, and restart capabilities. +**cicecore/shared/** contains some basic methods related to grid decomposition, time managers, constants, kinds, and restart capabilities. Dynamical Solvers @@ -72,7 +71,7 @@ Constants while others have internal defaults and can be set thru namelist. Dynamic Array Allocation ------------------- +------------------------------- CICE v5 and earlier was implemented using mainly static arrays and required several CPPs to be set to define grid size, blocks sizes, tracer numbers, and so forth. With CICE v6 and later, arrays are dynamically allocated and those diff --git a/doc/source/developer_guide/dg_other.rst b/doc/source/developer_guide/dg_other.rst index 7853cb66b..8d4f9716e 100644 --- a/doc/source/developer_guide/dg_other.rst +++ b/doc/source/developer_guide/dg_other.rst @@ -6,6 +6,27 @@ Other things ============= +.. _debugger: + +Running with a Debugger +------------------------- + +Availability and usage of interactive debuggers varies across machines. Contact your +system administrator for additional information about what’s available on your system. +To run with an interactive debugger, the following general steps should be taken. + +- Setup a case +- Modify the env file and Macros file to add appropriate modules and compiler/ linker flags +- Build the model +- Get interactive hardware resources as needed +- Open a csh shell +- Source the env.${machine} file +- Source cice.settings +- Change directories to the run directory +- Manually launch the executable thru the debugger + + + Reproducible Sums ---------------------- @@ -79,6 +100,7 @@ modified. Be careful not to have one command outside of a loop and the other command inside. Timers can be run for individual blocks, if desired, by including the block ID in the timer calls. + .. _addhist: Adding History fields @@ -155,14 +177,14 @@ the tracer dependencies (weights), which are tracked using the arrays ``trcr_base`` (a dependency mask), ``n_trcr_strata`` (the number of underlying tracer layers), and ``nt_strata`` (indices of underlying layers). Additional information about tracers can be found in the -`Icepack documentation `_. +`Icepack documentation `__. To add a tracer, follow these steps using one of the existing tracers as a pattern. 1) **icepack\_tracers.F90** and **icepack\_[tracer].F90**: declare tracers, add flags and indices, and create physics routines as described in the - `Icepack documentation `_ + `Icepack documentation `__ 2) **ice_arrays_column.F90**: declare arrays @@ -211,6 +233,6 @@ a pattern. configuration in **configuration/scripts/options**. 12) If strict conservation is necessary, add diagnostics as noted for - topo ponds in the `Icepack documentation `_. + topo ponds in the `Icepack documentation `__. 13) Update documentation, including **cice_index.rst** and **ug_case_settings.rst** diff --git a/doc/source/master_list.bib b/doc/source/master_list.bib index c2df631e5..caa93ec06 100644 --- a/doc/source/master_list.bib +++ b/doc/source/master_list.bib @@ -564,7 +564,7 @@ @Article{Wilchinsky04 pages = {2852-2856}, url = {http://dx.doi.org/10.1175/JPO2667.1} } -@Article{Lavoie05 +@Article{Lavoie05, author = "D. Lavoie and K. Denman and C. Michel", title = "{Modeling ice algal growth and decline in a seasonally ice- covered region of the Arctic (Resolute Passage, Canadian Archipelago)}", journal = JGRO, @@ -607,7 +607,7 @@ @Article{Hibler06 volume = {44}, url = {http://dx.doi.org/10.3189/172756406781811178} } -@Article{Jin06 +@Article{Jin06, author = "M. Jin and C. Deal and J. Wang and K.H. Shin and N. Tanaka and T.E. Whiteledge and S.H. Lee and R.R. Gradinger", title = "{Controls of the landfast ice-ocean ecosystem offshore Barrow, Alaska}", journal = AG, @@ -702,6 +702,15 @@ @Article{Large09 volume = {33}, url = {http://dx.doi.org/10.1007/s00382-008-0441-3} } +@Article{Tagliabue09, + author = "A. Tagliabue and L. Bopp and O. Aumont", + title = "{Evaluating the importance of atmospheric and sedimentary iron sources to Southern Ocean biogeochemistry}", + journal = GRL, + year = {2009}, + volume = {36}, + issue = {13}, + url = {http://dx.doi.org/10.1029/2009GL038914} +} @Article{Weiss09 author = "J. Weiss and E.M. Schulson", title = "{Coulombic faulting from the grain scale to the geophysical scale: lessons from ice}", diff --git a/doc/source/user_guide/ug_case_settings.rst b/doc/source/user_guide/ug_case_settings.rst index 9d6e6f906..39c846b2c 100644 --- a/doc/source/user_guide/ug_case_settings.rst +++ b/doc/source/user_guide/ug_case_settings.rst @@ -15,12 +15,14 @@ for CICE. Variables in both files are described below. Table of CICE Settings -------------------------- -The **cice.settings** file is reasonably well self documented. Several of -the variables defined in the file are not used in CICE. They exist -to support the CICE model. +The **cice.settings** file contains a number of environment variables that define +configuration, file system, run, and build settings. Several variables are set +by the **cice.setup** script. This file is created on a case by case basis and +can be modified as needed. -.. csv-table:: *CICE settings* - :header: "variable", "options/format", "description", "recommended value" + +.. csv-table:: **CICE settings** + :header: "variable", "options/format", "description", "default value" :widths: 15, 15, 25, 20 "ICE_CASENAME", "string", "case name", "set by cice.setup" @@ -78,353 +80,573 @@ to support the CICE model. Table of namelist options ------------------------------- -.. csv-table:: *Namelist options* - :header: "also in Icepack","variable", "options/format", "description", "recommended value" - :widths: 5, 15, 15, 30, 15 - - "","", "", "", "" - "","*setup_nml*", "", "", "" - "","", "", "**Time, Diagnostics**", "" - "\*","``days_per_year``", "``360`` or ``365``", "number of days in a model year", "365" - "\*","``use_leap_years``", "true/false", "if true, include leap days", "" - "\*","``year_init``", "yyyy", "the initial year, if not using restart", "" - "\*","``istep0``", "integer", "initial time step number", "0" - "\*","``dt``", "seconds", "thermodynamics time step length", "3600." - "\*","``npt``", "integer", "total number of time steps to take", "" - "\*","``ndtd``", "integer", "number of dynamics/advection/ridging/steps per thermo timestep", "1" - "","", "", "**Initialization/Restarting**", "" - "","``runtype``", "``initial``", "start from ``ice_ic``", "" - "","", "``continue``", "restart using ``pointer_file``", "" - "\*","``ice_ic``", "``default``", "latitude and sst dependent", "default" - "","", "``none``", "no ice", "" - "","", "path/file", "restart file name", "" - "","``restart``", "true/false", "initialize using restart file", "``.true.``" - "","``use_restart_time``", "true/false", "set initial date using restart file", "``.true.``" - "","``restart_format``", "string", "restart file format", "default" - "","", "default", "read/write restart files in default format", "" - "","", "pio_pnetcdf", "read/write restart files with pnetcdf in pio", "" - "","``lcdf64``", "true/false", "if true, use 64-bit  format", "" - "","``numin``", "integer", "minimum internal IO unit number", "11" - "","``numax``", "integer", "maximum internal IO unit number", "99" - "\*","``restart_dir``", "path/", "path to restart directory", "" - "","``restart_ext``", "true/false", "read/write halo cells in restart files", "" - "","``restart_file``", "filename prefix", "output file for restart dump", "‘iced’" - "","``pointer_file``", "pointer filename", "contains restart filename", "" - "\*","``dumpfreq``", "``y``", "write restart every ``dumpfreq_n`` years", "y" - "","", "``m``", "write restart every ``dumpfreq_n`` months", "" - "","", "``d``", "write restart every ``dumpfreq_n`` days", "" - "","", "``h``", "write restart every ``dumpfreq_n`` hours", "" - "","", "``1``", "write restart every ``dumpfreq_n`` time step", "" - "","``dumpfreq_n``", "integer", "frequency restart data is written", "1" - "\*","``dump_last``", "true/false", "if true, write restart on last time step of simulation", "" - "","", "", "**Model Output**", "" - "","``bfbflag``", "off/lsum4/lsum8/lsum16/ddpdd/reprosum", "global sum methods", "off" - "\*","``diagfreq``", "integer", "frequency of diagnostic output in ``dt``", "24" - "","", "*e.g.*, 10", "once every 10 time steps", "" - "\*","``diag_type``", "``stdout``", "write diagnostic output to stdout", "" - "","", "``file``", "write diagnostic output to file", "" - "","``diag_file``", "filename", "diagnostic output file (script may reset)", "" - "","``conserv_check``", "true/false", "check conservation", "``.false.``" - "","``print_global``", "true/false", "print diagnostic data, global sums", "``.false.``" - "","``print_points``", "true/false", "print diagnostic data for two grid points", "``.false.``" - "","``latpnt``", "real", "latitude of (2) diagnostic points", "" - "","``lonpnt``", "real", "longitude of (2) diagnostic points", "" - "","``dbug``", "true/false", "if true, write extra diagnostics", "``.false.``" - "","``histfreq``", "string array", "defines output frequencies", "" - "","", "``y``", "write history every ``histfreq_n`` years", "" - "","", "``m``", "write history every ``histfreq_n`` months", "" - "","", "``d``", "write history every ``histfreq_n`` days", "" - "","", "``h``", "write history every ``histfreq_n`` hours", "" - "","", "``1``", "write history every ``histfreq_n`` time step", "" - "","", "``x``", "unused frequency stream (not written)", "" - "","``histfreq_n``", "integer array", "frequency history output is written", "" - "","", "0", "do not write to history", "" - "","``hist_avg``", "true", "write time-averaged data", "``.true.``" - "","", "false", "write snapshots of data", "" - "","``history_dir``", "path/", "path to history output directory", "" - "","``history_file``", "filename prefix", "output file for history", "‘iceh’" - "","``history_precision``", "integer", "history file precision: 4 or 8 byte", "4" - "","``history_format``", "string", "history file format", "default" - "","", "default", "read/write restart files in default format", "" - "","", "pio_pnetcdf", "read/write restart files with pnetcdf in pio", "" - "","``write_ic``", "true/false", "write initial condition", "" - "","``incond_dir``", "path/", "path to initial condition directory", "" - "","``incond_file``", "filename prefix", "output file for initial condition", "‘iceh’" - "","``runid``", "string", "label for run (currently CESM only)", "" - "","", "", "", "" - "","*grid_nml*", "", "", "" - "","", "", "**Grid**", "" - "","``grid_format``", "``nc``", "read  grid and kmt files", "‘bin’" - "","", "``bin``", "read direct access, binary file", "" - "","``grid_type``", "``rectangular``", "defined in *rectgrid*", "" - "","", "``displaced_pole``", "read from file in *popgrid*", "" - "","", "``tripole``", "read from file in *popgrid*", "" - "","", "``regional``", "read from file in *popgrid*", "" - "","``grid_file``", "filename", "name of grid file to be read", "‘grid’" - "","``bathymetry_file``", "filename", "name of bathymetry file to be read", "‘grid’" - "","``use_bathymetry``", "true/false", "use read in bathymetry file for basalstress option", "" - "","``kmt_file``", "filename", "name of land mask file to be read", "‘kmt’" - "","``gridcpl_file``", "filename", "input file for coupling grid info", "" - "\*","``kcatbound``", "``0``", "original category boundary formula", "0" - "","", "``1``", "new formula with round numbers", "" - "","", "``2``", "WMO standard categories", "" - "","", "``-1``", "one category", "" - "","``dxrect``", "real", "x-direction grid spacing (cm) for rectangular grid", "" - "","``dyrect``", "real", "y-direction grid spacing (cm) for rectangular grid", "" - "","``ncat``", "integer", "number of ice thickness categories", "5" - "","``nfsd``", "integer", "number of floe size categories", "12 for prognostic FSD; 1 otherwise" - "","``nilyr``", "integer", "number of vertical layers in ice", "7" - "","``nslyr``", "integer", "number of vertical layers in snow", "1" - "","``nblyr``", "integer", "number of zbgc layers", "7" - "","", "", "", "" - "","*domain_nml*", "", "", "" - "","", "", "**Domain**", "" - "","``nprocs``", "integer", "number of processors to use", "" - "","``nx_global``", "integer", "global grid size in x direction", "" - "","``ny_global``", "integer", "global grid size in y direction", "" - "","``block_size_x``", "integer", "block size in x direction", "" - "","``block_size_y``", "integer", "block size in y direction", "" - "","``max_blocks``", "integer", "maximum number of blocks per MPI task for memory allocation", "" - "","``processor_shape``", "``slenderX1``", "1 processor in the y direction (tall, thin)", "" - "","", "``slenderX2``", "2 processors in the y direction (thin)", "" - "","", "``square-ice``", "more processors in x than y, :math:`\sim` square", "" - "","", "``square-pop``", "more processors in y than x, :math:`\sim` square", "" - "","``distribution_type``", "``cartesian``", "distribute blocks in 2D Cartesian array", "" - "","", "``roundrobin``", "1 block per proc until blocks are used", "" - "","", "``sectcart``", "blocks distributed to domain quadrants", "" - "","", "``sectrobin``", "several blocks per proc until used", "" - "","", "``rake``", "redistribute blocks among neighbors", "" - "","", "``spacecurve``", "distribute blocks via space-filling curves", "" - "","", "``spiralcenter``", "distribute blocks via roundrobin from center of grid outward in a spiral", "" - "","", "``wghtfile``", "distribute blocks based on weights specified in ``distribution_wght_file``", "" - "","``distribution_wght``", "``block``", "full block size sets ``work_per_block``", "" - "","", "``latitude``", "latitude/ocean sets ``work_per_block``", "" - "","``distribution_wght_file``", "filename", "distribution weight file when distribution_type is ``wghtfile``", "" - "","``ew_boundary_type``", "``cyclic``", "periodic boundary conditions in x-direction", "" - "","", "``open``", "Dirichlet boundary conditions in x", "" - "","``ns_boundary_type``", "``cyclic``", "periodic boundary conditions in y-direction", "" - "","", "``open``", "Dirichlet boundary conditions in y", "" - "","", "``tripole``", "U-fold tripole boundary conditions in y", "" - "","", "``tripoleT``", "T-fold tripole boundary conditions in y", "" - "","``maskhalo_dyn``", "true/false", "mask unused halo cells for dynamics", "" - "","``maskhalo_remap``", "true/false", "mask unused halo cells for transport", "" - "","``maskhalo_bound``", "true/false", "mask unused halo cells for boundary updates", "" - "","", "", "", "" - "","*tracer_nml*", "", "", "" - "","", "", "**Tracers**", "" - "","``n_aero``", "integer", "number of aerosol tracers", "1" - "","``n_iso``", "integer", "number of isotope tracers", "1" - "","``n_zaero``", "0,1,2,3,4,5,6", "number of z aerosol tracers in use", "0" - "","``n_algae``", "0,1,2,3", "number of algal tracers", "0" - "","``n_doc``", "0,1,2,3", "number of dissolved organic carbon", "0" - "","``n_dic``", "0,1", "number of dissolved inorganic carbon", "0" - "","``n_don``", "0,1", "number of dissolved organize nitrogen", "0" - "","``n_fed``", "0,1,2", "number of dissolved iron tracers", "0" - "","``n_fep``", "0,1,2", "number of particulate iron tracers", "0" - "\*","``tr_iage``", "true/false", "ice age", "" - "","``restart_age``", "true/false", "restart tracer values from file", "" - "\*","``tr_FY``", "true/false", "first-year ice area", "" - "","``restart_FY``", "true/false", "restart tracer values from file", "" - "\*","``tr_lvl``", "true/false", "level ice area and volume", "" - "","``restart_lvl``", "true/false", "restart tracer values from file", "" - "\*","``tr_pond_cesm``", "true/false", "CESM melt ponds", "" - "","``restart_pond_cesm``", "true/false", "restart tracer values from file", "" - "\*","``tr_pond_topo``", "true/false", "topo melt ponds", "" - "","``restart_pond_topo``", "true/false", "restart tracer values from file", "" - "\*","``tr_pond_lvl``", "true/false", "level-ice melt ponds", "" - "","``restart_pond_lvl``", "true/false", "restart tracer values from file", "" - "\*","``tr_aero``", "true/false", "aerosols", "" - "","``restart_aero``", "true/false", "restart tracer values from file", "" - "\*","``tr_iso``", "true/false", "isotopes", "" - "","``restart_iso``", "true/false", "restart tracer values from file", "" - "\*","``tr_fsd``", "true/false", "floe size distribution", "" - "","``restart_fsd``", "true/false", "restart floe size distribution values from file", "" - "","", "", "", "" - "","*thermo_nml*", "", "", "" - "","", "", "**Thermodynamics**", "" - "\*","``kitd``", "``0``", "delta function ITD approximation", "1" - "","", "``1``", "linear remapping ITD approximation", "" - "\*","``ktherm``", "``0``", "zero-layer thermodynamic model", "" - "","", "``1``", "Bitz and Lipscomb thermodynamic model", "" - "","", "``2``", "mushy-layer thermodynamic model", "" - "","", "``-1``", "thermodynamics disabled", "" - "\*","``conduct``", "``Maykut71``", "conductivity :cite:`Maykut71`", "" - "","", "``bubbly``", "conductivity :cite:`Pringle07`", "" - "\*","``ksno``", "real", "snow thermal conductivity", "0.3" - "\*","``a_rapid_mode``", "real", "brine channel diameter", "0.5x10 :math:`^{-3}` m" - "\*","``Rac_rapid_mode``", "real", "critical Rayleigh number", "10" - "\*","``aspect_rapid_mode``", "real", "brine convection aspect ratio", "1" - "\*","``dSdt_slow_mode``", "real", "drainage strength parameter", "-1.5x10 :math:`^{-7}` m/s/K" - "\*","``phi_c_slow_mode``", ":math:`0<\phi_c < 1`", "critical liquid fraction", "0.05" - "\*","``phi_i_mushy``", ":math:`0<\phi_i < 1`", "solid fraction at lower boundary", "0.85" - "","", "", "", "" - "","*dynamics_nml*", "", "", "" - "","", "", "**Dynamics**", "" - "","``kdyn``", "``-1``", "dynamics OFF", "1" - "","", "``0``", "dynamics OFF", "" - "","", "``1``", "EVP dynamics", "" - "","", "``2``", "EAP dynamics", "" - "","", "``1``", "dynamics ON", "" - "","``revised_evp``", "true/false", "use revised EVP formulation", "" - "","``ndte``", "integer", "number of EVP subcycles", "240" - "","``advection``", "``remap``", "linear remapping advection", "‘remap’" - "","", "``upwind``", "donor cell advection", "" - "\*","``kstrength``", "``0``", "ice strength formulation :cite:`Hibler79`", "1" - "","", "``1``", "ice strength formulation :cite:`Rothrock75`", "" - "\*","``krdg_partic``", "``0``", "old ridging participation function", "1" - "","", "``1``", "new ridging participation function", "" - "\*","``krdg_redist``", "``0``", "old ridging redistribution function", "1" - "","", "``1``", "new ridging redistribution function", "" - "\*","``mu_rdg``", "real", "e-folding scale of ridged ice", "" - "\*","``Cf``", "real", "ratio of ridging work to PE change in ridging", "17." - "","``coriolis``", "``latitude``", "Coriolis variable by latitude", "'latitude'" - "","", "``constant``", "Constant coriolis value = 1.46e-4", "" - "","", "``zero``", "Zero coriolis", "" - "","``kridge``", "``1``", "Ridging Enabled", "1" - "","", "``-1``", "Ridging Disabled", "" - "","``ktransport``", "``1``", "Transport Enabled", "1" - "","", "``-1``", "Transport Disabled", "" - "","``basalstress``", "true/false", "use basal stress parameterization for landfast ice", "" - "","``k1``", "real", "1st free parameter for landfast parameterization", "8." - "","``k2``", "real", "2nd free parameter (N/m^3) for landfast parameterization", "15." - "","``alphab``", "real", ":math:`\alpha_{b}` factor in :cite:`Lemieux16`", "20." - "","``threshold_hw``", "real", "Max water depth for grounding (see :cite:`Amundrud04`)", "30." - "","``e_ratio``", "real", "EVP ellipse aspect ratio", "2.0" - "","``Ktens``", "real", "Tensile strength factor (see :cite:`Konig10`)", "0.0" - "","", "", "", "" - "","*shortwave_nml*", "", "", "" - "","", "", "**Shortwave**", "" - "\*","``shortwave``", "``ccsm3``", "NCAR CCSM3 distribution method", "" - "","", "``dEdd``", "Delta-Eddington method", "" - "\*","``albedo_type``", "``ccsm3``", "NCAR CCSM3 albedos", "‘default’" - "","", "``constant``", "four constant albedos", "" - "\*","``albicev``", ":math:`0<\alpha <1`", "visible ice albedo for thicker ice", "" - "\*","``albicei``", ":math:`0<\alpha <1`", "near infrared ice albedo for thicker ice", "" - "\*","``albsnowv``", ":math:`0<\alpha <1`", "visible, cold snow albedo", "" - "\*","``albsnowi``", ":math:`0<\alpha <1`", "near infrared, cold snow albedo", "" - "\*","``ahmax``", "real", "albedo is constant above this thickness", "0.3 m" - "\*","``R_ice``", "real", "tuning parameter for sea ice albedo from Delta-Eddington shortwave", "" - "\*","``R_pnd``", "real", "... for ponded sea ice albedo …", "" - "\*","``R_snw``", "real", "... for snow (broadband albedo) …", "" - "\*","``dT_mlt``", "real", ":math:`\Delta` temperature per :math:`\Delta` snow grain radius", "" - "\*","``rsnw_mlt``", "real", "maximum melting snow grain radius", "" - "\*","``kalg``", "real", "absorption coefficient for algae", "" - "","", "", "", "" - "","*ponds_nml*", "", "", "" - "","", "", "**Melt Ponds**", "" - "\*","``hp1``", "real", "critical ice lid thickness for topo ponds", "0.01 m" - "\*","``hs0``", "real", "snow depth of transition to bare sea ice", "0.03 m" - "\*","``hs1``", "real", "snow depth of transition to pond ice", "0.03 m" - "\*","``dpscale``", "real", "time scale for flushing in permeable ice", ":math:`1\times 10^{-3}`" - "\*","``frzpnd``", "``hlid``", "Stefan refreezing with pond ice thickness", "‘hlid’" - "","", "``cesm``", "CESM refreezing empirical formula", "" - "\*","``rfracmin``", ":math:`0 \le r_{min} \le 1`", "minimum melt water added to ponds", "0.15" - "\*","``rfracmax``", ":math:`0 \le r_{max} \le 1`", "maximum melt water added to ponds", "1.0" - "\*","``pndaspect``", "real", "aspect ratio of pond changes (depth:area)", "0.8" - "","", "", "", "" - "","*forcing_nml*", "", "", "" - "","", "", "**Forcing**", "" - "\*","``formdrag``", "true/false", "calculate form drag", "" - "\*","``atmbndy``", "``default``", "stability-based boundary layer", "‘default’" - "","", "``constant``", "bulk transfer coefficients", "" - "\*","``fyear_init``", "yyyy", "first year of atmospheric forcing data", "" - "\*","``ycycle``", "integer", "number of years in forcing data cycle", "" - "\*","``calc_strair``", "true", "calculate wind stress and speed", "" - "","", "false", "read wind stress and speed from files", "" - "\*","``highfreq``", "true/false", "high-frequency atmo coupling", "" - "\*","``natmiter``", "integer", "number of atmo boundary layer iterations", "5" - "\*","``atmiter_conv``", "real", "convergence criteria for ustar", "0.0" - "\*","``calc_Tsfc``", "true/false", "calculate surface temperature", "``.true.``" - "\*","``default_season``","``winter``", "Sets initial values of forcing and is overwritten if forcing is read in.", "" - "\*","``precip_units``", "``mks``", "liquid precipitation data units", "" - "","", "``mm_per_month``", "", "" - "","", "``mm_per_sec``", "(same as MKS units)", "" - "","", "``m_per_sec``", "", "" - "\*","``tfrz_option``", "``minus1p8``", "constant ocean freezing temperature (:math:`-1.8^{\circ} C`)", "" - "","", "``linear_salt``", "linear function of salinity (ktherm=1)", "" - "","", "``mushy_layer``", "matches mushy-layer thermo (ktherm=2)", "" - "\*","``ustar_min``", "real", "minimum value of ocean friction velocity", "0.0005 m/s" - "\*","``emissivity``", "real", "emissivity of snow and ice", "0.95" - "\*","``fbot_xfer_type``", "``constant``", "constant ocean heat transfer coefficient", "" - "","", "``Cdn_ocn``", "variable ocean heat transfer coefficient", "" - "\*","``update_ocn_f``", "true", "include frazil water/salt fluxes in ocn fluxes", "" - "","", "false", "do not include (when coupling with POP)", "" - "\*","``l_mpond_fresh``", "true", "retain (topo) pond water until ponds drain", "" - "","", "false", "release (topo) pond water immediately to ocean", "" - "\*","``oceanmixed_ice``", "true/false", "active ocean mixed layer calculation", "``.true.`` (if uncoupled)" - "\*", "``wave_spec_type``", "``none``", "no wave data provided, no wave-ice interactions", "" - "", "", "``profile``", "no wave data file is provided, use fixed dummy wave spectrum, for testing", "" - "", "", "``constant``", "wave data file is provided, constant wave spectrum, for testing", "" - "", "", "``random``", "wave data file is provided, wave spectrum generated using random number", "" - "\*","``restore_ocn``", "true/false", "restore sst to data", "" - "\*","``trestore``", "integer", "sst restoring time scale (days)", "" - "","``restore_ice``", "true/false", "restore ice state along lateral boundaries", "" - "","``nfreq``", "25", "number of frequencies in ocean surface wave spectral forcing", "" - "\*","``atm_data_type``", "``default``", "constant values defined in the code", "" - "","", "``LYq``", "COREII Large-Yeager (AOMIP) forcing data", ":cite:`Large09`" - "","", "``JRA55_gx1``", "JRA55 forcing data for gx1 grid :cite:`Tsujino18`", "" - "","", "``JRA55_gx3``", "JRA55 forcing data for gx3 grid :cite:`Tsujino18`", "" - "","", "``JRA55_tx1``", "JRA55 forcing data for tx1 grid :cite:`Tsujino18`", "" - "","", "``monthly``", "monthly forcing data", "" - "","", "``ncar``", "NCAR bulk forcing data", "" - "","", "``box2001``", "forcing data for :cite:`Hunke01` box problem", "" - "","", "``oned``", "column forcing data", "" - "","", "``hycom``", "HYCOM atm forcing data in netcdf format", "" - "\*","``ocn_data_type``", "``default``", "constant values defined in the code", "" - "","", "``clim``", "climatological data", "" - "","", "``ncar``", "POP ocean forcing data", "" - "","", "``hycom``", "HYCOM ocean forcing data in netcdf format", "Constant initial forcing" - "","``bgc_data_type``", "``default``", "constant values defined in the code", "" - "","", "``clim``", "climatological data", "" - "","", "``ncar``", "POP ocean forcing data", "" - "","", "``hycom``", "HYCOM ocean forcing data in netcdf format", "Constant initial forcing" - "","``fe_data_type``", "``default``", "default forcing value for iron", "" - "","", "``clim``", "iron forcing from ocean climatology", "" - "","``ice_data_type``", "string", "ice initialization for special tests", "``default``" - "","", "``default``", "no special initialization", "" - "","", "``box2001``", "initialize ice concentration for :ref:`box2001` test (:cite:`Hunke01`)", "" - "","", "``boxslotcyl``", "initialize ice concentration and velocity for :ref:`boxslotcyl` test (:cite:`Zalesak79`)", "" - "","``atm_data_format``", "``nc``", "read  atmo forcing files", "" - "","", "``bin``", "read direct access, binary files", "" - "","``ocn_data_format``", "``nc``", "read  ocean forcing files", "" - "","", "``bin``", "read direct access, binary files", "" - "\*","``oceanmixed_file``", "filename", "data file containing ocean forcing data", "" - "\*","``wave_spec_file``", "filename", "data file containing wave spectrum forcing data", "" - "","``atm_data_dir``", "path/", "path to atmospheric forcing data directory", "" - "","``ocn_data_dir``", "path/", "path to oceanic forcing data directory", "" - "","``bgc_data_dir``", "path/", "path to oceanic forcing data directory", "" - "","", "", "", "" - "","*zbgc_nml*", "", "", "" - "","", "", "**Biogeochemistry**", "More information about the BGC tuning can be found in the `Icepack Documentation `_." - "\*","``tr_brine``", "true/false", "brine height tracer", "" - "\*","``tr_zaero``", "true/false", "vertical aerosol tracers", "" - "\*","``modal_aero``", "true/false", "modal aersols", "" - "","``restore_bgc``", "true/false", "restore bgc to data", "" - "","``solve_zsal``", "true/false", "update salinity tracer profile", "" - "\*","``skl_bgc``", "true/false", "biogeochemistry", "" - "","``bgc_flux_type``", "``Jin2006``", "ice–ocean flux velocity of :cite:`Jin06`", "" - "","", "``constant``", "constant ice–ocean flux velocity", "" - "","``restart_bgc``", "true/false", "restart tracer values from file", "" - "","``tr_bgc_C_sk``", "true/false", "algal carbon tracer", "" - "","``tr_bgc_chl_sk``", "true/false", "algal chlorophyll tracer", "" - "","``tr_bgc_Am_sk``", "true/false", "ammonium tracer", "" - "","``tr_bgc_Sil_sk``", "true/false", "silicate tracer", "" - "","``tr_bgc_DMSPp_sk``", "true/false", "particulate DMSP tracer", "" - "","``tr_bgc_DMSPd_sk``", "true/false", "dissolved DMSP tracer", "" - "","``tr_bgc_DMS_sk``", "true/false", "DMS tracer", "" - "","``phi_snow``", "real", "snow porosity for brine height tracer", "" - "","", "", "", "" - "","*icefields_nml*", "", "", "" - "","", "", "*History Fields*", "" - "","``f_``", "string", "frequency units for writing ```` to history", "" - "","", "``y``", "write history every ``histfreq_n`` years", "" - "","", "``m``", "write history every ``histfreq_n`` months", "" - "","", "``d``", "write history every ``histfreq_n`` days", "" - "","", "``h``", "write history every ``histfreq_n`` hours", "" - "","", "``1``", "write history every time step", "" - "","", "``x``", "do not write ```` to history", "" - "","", "``md``", "*e.g.,* write both monthly and daily files", "" - "","``f__ai``", "", "grid cell average of ```` (:math:`\times a_i`)", "" +CICE reads a namelist input file, **ice_in**, consisting of several namelist groups. The tables below +summarize the different groups and the variables in each group. The variables are organized alphabetically +and the default values listed are the values defined in the source code. Those values will be +used unless overridden by the CICE namelist file, **ice_in**. The source code default values as listed +in the table are not necessarily the recommended production values. + +setup_nml +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. csv-table:: **setup_nml namelist options** + :header: "variable", "options/format", "description", "default value" + :widths: 15, 15, 30, 15 + + "", "", "", "" + "``bfbflag``", "``off``", "local reduction then global scalar sum", "``off``" + "", "``lsum4``", "local reduction with real*4 then global scalar sum", "" + "", "``lsum8``", "local reduction with real*8 then global scalar sum", "" + "", "``lsum16``", "local reduction with real*16 then global scalar sum", "" + "", "``ddpdd``", "parallel double double algorithm", "" + "", "``reprosum``", "fixed point double integer sum", "" + "``conserv_check``", "logical", "check conservation", "``.false.``" + "``cpl_bgc``", "logical", "couple bgc thru driver", "``.false.``" + "``days_per_year``", "integer", "number of days in a model year", "365" + "``dbug``", "logical", "write extra diagnostics", "``.false.``" + "``diagfreq``", "integer", "frequency of diagnostic output in timesteps", "24" + "``diag_type``", "``stdout``", "write diagnostic output to stdout", "``stdout``" + "", "``file``", "write diagnostic output to file", "" + "``diag_file``", "string", "diagnostic output file", "'ice_diag.d'" + "``dt``", "real", "thermodynamics time step length in seconds", "3600." + "``dumpfreq``", "``d``", "write restart every ``dumpfreq_n`` days", "``y``" + "", "``h``", "write restart every ``dumpfreq_n`` hours", "" + "", "``m``", "write restart every ``dumpfreq_n`` months", "" + "", "``y``", "write restart every ``dumpfreq_n`` years", "" + "", "``1``", "write restart every ``dumpfreq_n`` time step", "" + "``dumpfreq_n``", "integer", "write restart frequency with ``dumpfreq``", "1" + "``dump_last``", "logical", "write restart on last time step of simulation", "``.false.``" + "``hist_avg``", "logical", "write time-averaged data", "``.true.``" + "``histfreq``", "``d``", "write history every ``histfreq_n`` days", "'1','h','d','m','y'" + "", "``h``", "write history every ``histfreq_n`` hours", "" + "", "``m``", "write history every ``histfreq_n`` months", "" + "", "``x``", "unused frequency stream (not written)", "" + "", "``y``", "write history every ``histfreq_n`` years", "" + "", "``1``", "write history every ``histfreq_n`` time step", "" + "``histfreq_n``", "integer array", "frequency history output is written with ``histfreq``", "1,1,1,1,1" + "``history_dir``", "string", "path to history output directory", "'./'" + "``history_file``", "string", "output file for history", "'iceh'" + "``history_format``", "``default``", "read/write restart files in default format", "``default``" + "", "``pio_pnetcdf``", "read/write restart files with pnetcdf in pio", "" + "``history_precision``", "integer", "history file precision: 4 or 8 byte", "4" + "``ice_ic``", "``default``", "latitude and sst dependent initial condition", "``default``" + "", "``none``", "no ice", "" + "", "'path/file'", "restart file name", "" + "``incond_dir``", "string", "path to initial condition directory", "'./'" + "``incond_file``", "string", "output file prefix for initial condition", "‘iceh_ic’" + "``istep0``", "integer", "initial time step number", "0" + "``latpnt``", "real", "latitude of (2) diagnostic points", "90.0,-65.0" + "``lcdf64``", "logical", "use 64-bit netcdf format", "``.false.``" + "``lonpnt``", "real", "longitude of (2) diagnostic points", "0.0,-45.0" + "``ndtd``", "integer", "number of dynamics/advection/ridging/steps per thermo timestep", "1" + "``npt``", "integer", "total number of time steps to take", "99999" + "``numin``", "integer", "minimum internal IO unit number", "11" + "``numax``", "integer", "maximum internal IO unit number", "99" + "``pointer_file``", "string", "restart pointer filename", "'ice.restart_file'" + "``print_global``", "logical", "print global sums diagnostic data", "``.true.``" + "``print_points``", "logical", "print diagnostic data for two grid points", "``.false.``" + "``restart``", "logical", "initialize using restart file", "``.false.``" + "``restart_dir``", "string", "path to restart directory", "'./'" + "``restart_ext``", "logical", "read/write halo cells in restart files", "``.false.``" + "``restart_file``", "string", "output file prefix for restart dump", "'iced'" + "``restart_format``", "``default``", "read/write restart file with default format", "``default``" + "", "``pio_pnetcdf``", "read/write restart files with pnetcdf in pio", "" + "``runid``", "string", "label for run (currently CESM only)", "'unknown'" + "``runtype``", "``continue``", "restart using ``pointer_file``", "``initial``" + "", "``initial``", "start from ``ice_ic``", "" + "``use_leap_years``", "logical", "include leap days", "``.false.``" + "``use_restart_time``", "logical", "set initial date using restart file", "``.true.``" + "``version_name``", "string", "model version", "'unknown_version_name'" + "``write_ic``", "logical", "write initial condition", "``.false.``" + "``year_init``", "integer", "the initial year if not using restart", "0" + "", "", "", "" + +grid_nml +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. csv-table:: **grid_nml namelist options** + :header: "variable", "options/format", "description", "default value" + :widths: 15, 15, 30, 15 + + "", "", "", "" + "``bathymetry_file``", "string", "name of bathymetry file to be read", "‘unknown_bathymetry_file’" + "``close_boundaries``", "logical", "set land on edges of grid", "``.false.``" + "``dxrect``", "real", "x-direction grid spacing for rectangular grid in cm", "0.0" + "``dyrect``", "real", "y-direction grid spacing for rectangular grid in cm", "0.0" + "``gridcpl_file``", "string", "input file for coupling grid info", "'unknown_gridcpl_file'" + "``grid_file``", "string", "name of grid file to be read", "'unknown_grid_file'" + "``grid_format``", "``bin``", "read direct access grid and kmt files", "``bin``" + "", "``nc``", "read grid and kmt files", "" + "``grid_type``", "``displaced_pole``", "read from file in *popgrid*", "``rectangular``" + "", "``rectangular``", "defined in *rectgrid*", "" + "", "``regional``", "read from file in *popgrid*", "" + "", "``tripole``", "read from file in *popgrid*", "" + "``kcatbound``", "``-1``", "single category formulation", "1" + "", "``0``", "old formulation", "" + "", "``1``", "new formulation with round numbers", "" + "", "``2``", "WMO standard categories", "" + "", "``3``", "asymptotic scheme", "" + "``kmt_file``", "string", "name of land mask file to be read", "'unknown_kmt_file'" + "``nblyr``", "integer", "number of zbgc layers", "0" + "``ncat``", "integer", "number of ice thickness categories", "0" + "``nfsd``", "integer", "number of floe size categories", "1" + "``nilyr``", "integer", "number of vertical layers in ice", "0" + "``nslyr``", "integer", "number of vertical layers in snow", "0" + "``use_bathymetry``", "logical", "use read in bathymetry file for basalstress option", "``.false.``" + "", "", "", "" + +domain_nml +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. csv-table:: **domain_nml namelist options** + :header: "variable", "options/format", "description", "default value" + :widths: 15, 15, 30, 15 + + "", "", "", "" + "``block_size_x``", "integer", "block size in x direction", "-1" + "``block_size_y``", "integer", "block size in y direction", "-1" + "``distribution_type``", "``cartesian``", "2D cartesian block distribution method", "``cartesian``" + "", "``rake``", "redistribute blocks among neighbors", "" + "", "``roundrobin``", "1 block per proc until blocks are used", "" + "", "``sectcart``", "blocks distributed to domain quadrants", "" + "", "``sectrobin``", "several blocks per proc until used", "" + "", "``spacecurve``", "distribute blocks via space-filling curves", "" + "", "``spiralcenter``", "distribute blocks via roundrobin from center of grid outward in a spiral", "" + "", "``wghtfile``", "distribute blocks based on weights specified in ``distribution_wght_file``", "" + "``distribution_wght``", "``block``", "full block size distribution weight method", "``latitude``" + "", "``latitude``", "latitude/ocean sets ``work_per_block``", "" + "``distribution_wght_file``", "string", "distribution weight file when distribution_type is ``wghtfile``", "'unknown'" + "``ew_boundary_type``", "``cyclic``", "periodic boundary conditions in x-direction", "``cyclic``" + "", "``open``", "Dirichlet boundary conditions in x", "" + "``maskhalo_dyn``", "logical", "mask unused halo cells for dynamics", "``.false.``" + "``maskhalo_remap``", "logical", "mask unused halo cells for transport", "``.false.``" + "``maskhalo_bound``", "logical", "mask unused halo cells for boundary updates", "``.false.``" + "``max_blocks``", "integer", "maximum number of blocks per MPI task for memory allocation", "-1" + "``nprocs``", "integer", "number of processors to use", "-1" + "``ns_boundary_type``", "``cyclic``", "periodic boundary conditions in y-direction", "``open``" + "", "``open``", "Dirichlet boundary conditions in y", "" + "", "``tripole``", "U-fold tripole boundary conditions in y", "" + "", "``tripoleT``", "T-fold tripole boundary conditions in y", "" + "``nx_global``", "integer", "global grid size in x direction", "-1" + "``ny_global``", "integer", "global grid size in y direction", "-1" + "``processor_shape``", "``slenderX1``", "1 processor in the y direction used with ``distribution_type=cartesian``", "``slenderX2``" + "", "``slenderX1``", "1 processor in the y direction (tall, thin)", "" + "", "``slenderX2``", "2 processors in the y direction (thin)", "" + "", "``square-ice``", "more processors in x than y, :math:`\sim` square", "" + "", "``square-pop``", "more processors in y than x, :math:`\sim` square", "" + "", "", "", "" + +tracer_nml +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. csv-table:: **tracer_nml namelist options** + :header: "variable", "options/format", "description", "default value" + :widths: 15, 15, 30, 15 + + "", "", "", "" + "``n_aero``", "integer", "number of aerosol tracers", "0" + "``n_algae``", "0,1,2,3", "number of algal tracers", "0" + "``n_dic``", "0,1", "number of dissolved inorganic carbon", "0" + "``n_doc``", "0,1,2,3", "number of dissolved organic carbon", "0" + "``n_don``", "0,1", "number of dissolved organize nitrogen", "0" + "``n_fed``", "0,1,2", "number of dissolved iron tracers", "0" + "``n_fep``", "0,1,2", "number of particulate iron tracers", "0" + "``n_iso``", "integer", "number of isotope tracers", "0" + "``n_zaero``", "0,1,2,3,4,5,6", "number of z aerosol tracers in use", "0" + "``tr_aero``", "logical", "aerosols", "``.false.``" + "``tr_fsd``", "logical", "floe size distribution", "``.false.``" + "``tr_FY``", "logical", "first-year ice area", "``.false.``" + "``tr_iage``", "logical", "ice age", "``.false.``" + "``tr_iso``", "logical", "isotopes", "``.false.``" + "``tr_lvl``", "logical", "level ice area and volume", "``.false.``" + "``tr_pond_cesm``", "logical", "CESM melt ponds", "``.false.``" + "``tr_pond_lvl``", "logical", "level-ice melt ponds", "``.false.``" + "``tr_pond_topo``", "logical", "topo melt ponds", "``.false.``" + "``restart_aero``", "logical", "restart tracer values from file", "``.false.``" + "``restart_age``", "logical", "restart tracer values from file", "``.false.``" + "``restart_fsd``", "logical", "restart floe size distribution values from file", "``.false.``" + "``restart_FY``", "logical", "restart tracer values from file", "``.false.``" + "``restart_iso``", "logical", "restart tracer values from file", "``.false.``" + "``restart_lvl``", "logical", "restart tracer values from file", "``.false.``" + "``restart_pond_cesm``", "logical", "restart tracer values from file", "``.false.``" + "``restart_pond_lvl``", "logical", "restart tracer values from file", "``.false.``" + "``restart_pond_topo``", "logical", "restart tracer values from file", "``.false.``" + "", "", "", "" + +thermo_nml +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. csv-table:: **thermo_nml namelist options** + :header: "variable", "options/format", "description", "default value" + :widths: 15, 15, 30, 15 + + "", "", "", "" + "``a_rapid_mode``", "real", "brine channel diameter in m", "0.5e-3" + "``aspect_rapid_mode``", "real", "brine convection aspect ratio", "1.0" + "``conduct``", "``bubbly``", "conductivity scheme :cite:`Pringle07`", "``bubbly``" + "", "``MU71``", "conductivity :cite:`Maykut71`", "" + "``dSdt_slow_mode``", "real", "slow drainage strength parameter m/s/K", "-1.5e-7" + "``kitd``", "``0``", "delta function ITD approximation", "1" + "", "``1``", "linear remapping ITD approximation", "" + "``ksno``", "real", "snow thermal conductivity", "0.3" + "``ktherm``", "``-1``", "thermodynamic model disabled", "1" + "", "``0``", "zero-layer thermodynamic model", "" + "", "``1``", "Bitz and Lipscomb thermodynamic model", "" + "", "``2``", "mushy-layer thermodynamic model", "" + "``phi_c_slow_mode``", ":math:`0<\phi_c < 1`", "critical liquid fraction", "0.05" + "``phi_i_mushy``", ":math:`0<\phi_i < 1`", "solid fraction at lower boundary", "0.85" + "``Rac_rapid_mode``", "real", "critical Rayleigh number", "10.0" + "", "", "", "" + +dynamics_nml +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. csv-table:: **dynamics_nml namelist options** + :header: "variable", "options/format", "description", "default value" + :widths: 15, 15, 30, 15 + + "", "", "", "" + "``advection``", "``remap``", "linear remapping advection scheme", "``remap``" + "", "``upwind``", "donor cell advection", "" + "``alphab``", "real", ":math:`\alpha_{b}` factor in :cite:`Lemieux16`", "20.0" + "``arlx``", "real", "revised_evp value", "300.0" + "``brlx``", "real", "revised_evp value", "300.0" + "``basalstress``", "logical", "use basal stress parameterization for landfast ice", "``.false.``" + "``Cf``", "real", "ratio of ridging work to PE change in ridging", "17.0" + "``coriolis``", "``constant``", "constant coriolis value = 1.46e-4", "``latitude``" + "", "``latitude``", "coriolis variable by latitude", "" + "", "``zero``", "zero coriolis", "" + "``e_ratio``", "real", "EVP ellipse aspect ratio", "2.0" + "``kdyn``", "``-1``", "dynamics algorithm OFF", "1" + "", "``0``", "dynamics OFF", "" + "", "``1``", "EVP dynamics", "" + "", "``2``", "EAP dynamics", "" + "``kevp_kernel``", "``0``", "standard 2D EVP memory parallel solver", "0" + "", "``2``", "1D shared memory solver (not fully validated)", "" + "``kstrength``", "``0``", "ice strength formulation :cite:`Hibler79`", "1" + "", "``1``", "ice strength formulation :cite:`Rothrock75`", "" + "``krdg_partic``", "``0``", "old ridging participation function", "1" + "", "``1``", "new ridging participation function", "" + "``krdg_redist``", "``0``", "old ridging redistribution function", "1" + "", "``1``", "new ridging redistribution function", "" + "``kridge``", "``-1``", "ridging disabled", "1" + "", "``1``", "ridging enabled", "" + "``ktransport``", "``-1``", "transport disabled", "1" + "", "``1``", "transport enabled", "" + "``Ktens``", "real", "Tensile strength factor (see :cite:`Konig10`)", "0.0" + "``k1``", "real", "1st free parameter for landfast parameterization", "8.0" + "``k2``", "real", "2nd free parameter (N/m^3) for landfast parameterization", "15.0" + "``mu_rdg``", "real", "e-folding scale of ridged ice for ``krdg_partic`` = 1 in m^0.5", "3.0" + "``ndte``", "integer", "number of EVP subcycles", "120" + "``revised_evp``", "logical", "use revised EVP formulation", "``.false.``" + "``threshold_hw``", "real", "Max water depth for grounding (see :cite:`Amundrud04`)", "30." + "``yield_curve``", "``ellipse``", "elliptical yield curve", "``ellipse``" + "", "", "", "" + +shortwave_nml +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. csv-table:: **shortwave_nml namelist options** + :header: "variable", "options/format", "description", "default value" + :widths: 15, 15, 30, 15 + + "", "", "", "" + "``ahmax``", "real", "albedo is constant above this thickness in meters", "0.3" + "``albedo_type``", "`ccsm3``", "NCAR CCSM3 albedo implementation", "``ccsm3``" + "", "``constant``", "four constant albedos", "" + "``albicei``", ":math:`0<\alpha <1`", "near infrared ice albedo for thicker ice", "0.36" + "``albicev``", ":math:`0<\alpha <1`", "visible ice albedo for thicker ice", "0.78" + "``albsnowi``", ":math:`0<\alpha <1`", "near infrared, cold snow albedo", "0.70" + "``albsnowv``", ":math:`0<\alpha <1`", "visible, cold snow albedo", "0.98" + "``dT_mlt``", "real", ":math:`\Delta` temperature per :math:`\Delta` snow grain radius", "1.5" + "``kalg``", "real", "absorption coefficient for algae", "0.6" + "``rsnw_mlt``", "real", "maximum melting snow grain radius", "1500." + "``R_ice``", "real", "tuning parameter for sea ice albedo from Delta-Eddington shortwave", "0.0" + "``R_pnd``", "real", "tuning parameter for ponded sea ice albedo from Delta-Eddington shortwave", "0.0" + "``R_snw``", "real", "tuning parameter for snow (broadband albedo) from Delta-Eddington shortwave", "1.5" + "``shortwave``", "``ccsm3``", "NCAR CCSM3 shortwave distribution method", "``ccsm3``" + "", "``dEdd``", "Delta-Eddington method", "" + "", "", "", "" + +ponds_nml +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. csv-table:: **ponds_nml namelist options** + :header: "variable", "options/format", "description", "default value" + :widths: 15, 15, 30, 15 + + "", "", "", "" + "``dpscale``", "real", "time scale for flushing in permeable ice", "1.0" + "``frzpnd``", "``cesm``", "CESM pond refreezing forumulation", "``cesm``" + "", "``hlid``", "Stefan refreezing with pond ice thickness", "" + "``hp1``", "real", "critical ice lid thickness for topo ponds in m", "0.01" + "``hs0``", "real", "snow depth of transition to bare sea ice in m", "0.03" + "``hs1``", "real", "snow depth of transition to pond ice in m", "0.03" + "``pndaspect``", "real", "aspect ratio of pond changes (depth:area)", "0.8" + "``rfracmax``", ":math:`0 \le r_{max} \le 1`", "maximum melt water added to ponds", "0.85" + "``rfracmin``", ":math:`0 \le r_{min} \le 1`", "minimum melt water added to ponds", "0.15" + "", "", "", "" + +forcing_nml +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. csv-table:: **forcing_nml namelist options** + :header: "variable", "options/format", "description", "default value" + :widths: 15, 15, 30, 15 + + "", "", "", "" + "``atmbndy``", "``constant``", "bulk transfer coefficients", "``default``" + "", "``default``", "stability-based boundary layer", "" + "``atmiter_conv``", "real", "convergence criteria for ustar", "0.0" + "``atm_data_dir``", "string", "path to atmospheric forcing data directory", "" + "``atm_data_format``", "``bin``", "read direct access binary atmo forcing file format", "``bin``" + "", "``nc``", "read netcdf atmo forcing files", "" + "``atm_data_type``", "``box2001``", "forcing data for :cite:`Hunke01` box problem", "``default``" + "", "``default``", "constant values defined in the code", "" + "", "``hycom``", "HYCOM atm forcing data in netcdf format", "" + "", "``JRA55_gx1``", "JRA55 forcing data for gx1 grid :cite:`Tsujino18`", "" + "", "``JRA55_gx3``", "JRA55 forcing data for gx3 grid :cite:`Tsujino18`", "" + "", "``JRA55_tx1``", "JRA55 forcing data for tx1 grid :cite:`Tsujino18`", "" + "", "``LYq``", "COREII Large-Yeager (AOMIP) forcing data :cite:`Large09`", "" + "", "``monthly``", "monthly forcing data", "" + "", "``ncar``", "NCAR bulk forcing data", "" + "", "``oned``", "column forcing data", "" + "``bgc_data_dir``", "string", "path to oceanic forcing data directory", "'unknown_bgc_data_dir'" + "``bgc_data_type``", "``clim``", "bgc climatological data", "``default``" + "", "``default``", "constant values defined in the code", "" + "", "``hycom``", "HYCOM ocean forcing data in netcdf format", "" + "", "``ncar``", "POP ocean forcing data", "" + "``calc_strair``", "``.false.``", "read wind stress and speed from files", "``.true.``" + "", "``.true.``", "calculate wind stress and speed", "" + "``calc_Tsfc``", "logical", "calculate surface temperature", "``.true.``" + "``default_season``", "``summer``", "forcing initial summer values", "``winter``" + "", "``winter``", "forcing initial winter values", "" + "``emissivity``", "real", "emissivity of snow and ice", "0.95" + "``fbot_xfer_type``", "``Cdn_ocn``", "variabler ocean heat transfer coefficient scheme", "``constant``" + "", "``constant``", "constant ocean heat transfer coefficient", "" + "``fe_data_type``", "``clim``", "ocean climatology forcing value for iron", "``default``" + "", "``default``", "default forcing value for iron", "" + "``formdrag``", "logical", "calculate form drag", "``.false.``" + "``fyear_init``", "integer", "first year of atmospheric forcing data", "1900" + "``highfreq``", "logical", "high-frequency atmo coupling", "``.false.``" + "``ice_data_type``", "``boxslotcyl``", "initialize ice concentration and velocity for :ref:`boxslotcyl` test (:cite:`Zalesak79`)", "``default``" + "", "``box2001``", "initialize ice concentration for :ref:`box2001` test (:cite:`Hunke01`)", "" + "", "``default``", "no special initialization", "" + "``l_mpond_fresh``", "``.false.``", "release pond water immediately to ocean", "``.false.``" + "", "``true``", "retain (topo) pond water until ponds drain", "" + "``natmiter``", "integer", "number of atmo boundary layer iterations", "5" + "``nfreq``", "integer", "number of frequencies in ocean surface wave spectral forcing", "25" + "``oceanmixed_file``", "string", "data file containing ocean forcing data", "'unknown_oceanmixed_file'" + "``oceanmixed_ice``", "logical", "active ocean mixed layer calculation", "``.false.``" + "``ocn_data_dir``", "string", "path to oceanic forcing data directory", "'unknown_ocn_data_dir'" + "``ocn_data_format``", "``bin``", "read direct access binary ocean forcing files", "``bin``" + "", "``nc``", "read netcdf ocean forcing files", "" + "``ocn_data_type``", "``clim``", "ocean climatological data formulation", "``default``" + "", "``default``", "constant values defined in the code", "" + "", "``hycom``", "HYCOM ocean forcing data in netcdf format", "" + "", "``ncar``", "POP ocean forcing data", "" + "``precip_units``", "``mks``", "liquid precipitation data units", "``mks``" + "", "``mm_per_month``", "", "" + "", "``mm_per_sec``", "(same as MKS units)", "" + "", "``m_per_sec``", "", "" + "``restore_ocn``", "logical", "restore sst to data", "``.false.``" + "``restore_ice``", "logical", "restore ice state along lateral boundaries", "``.false.``" + "``tfrz_option``", "``linear_salt``", "linear functino of salinity (ktherm=1)", "``mushy``" + "", "``minus1p8``", "constant ocean freezing temperature (:math:`-1.8^{\circ} C`)", "" + "", "``mushy``", "matches mushy-layer thermo (ktherm=2)", "" + "``trestore``", "integer", "sst restoring time scale (days)", "90" + "``ustar_min``", "real", "minimum value of ocean friction velocity", "0.0005 m/s" + "``update_ocn_f``", "``.false.``", "do not include frazil water/salt fluxes in ocn fluxes", "``.false.``" + "", "``true``", "include frazil water/salt fluxes in ocn fluxes", "" + "``wave_spec_file``", "string", "data file containing wave spectrum forcing data", "" + "``wave_spec_type``", "``constant``", "wave data file is provided, constant wave spectrum, for testing", "``none``" + "", "``none``", "no wave data provided, no wave-ice interactions", "" + "", "``profile``", "no wave data file is provided, use fixed dummy wave spectrum, for testing", "" + "", "``random``", "wave data file is provided, wave spectrum generated using random number", "" + "``ycycle``", "integer", "number of years in forcing data cycle", "1" + "", "", "", "" + +zbgc_nml +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. csv-table:: **zbgc_nml namelist options** + :header: "variable", "options/format", "description", "default value" + :widths: 15, 15, 30, 15 + + "", "", "", "" + "``algaltype_diatoms``", "real", "mobility type between stationary and mobile algal diatoms", "0.0" + "``algaltype_phaeo``", "real", "mobility type between stationary and mobile algal phaeocystis", "0.5" + "``algaltype_sp``", "real", "mobility type between stationary and mobile small plankton", "0.5" + "``algal_vel``", "real", ":cite:`Lavoie05`", "1.11e-8" + "``alpha2max_low_diatoms``", "real", "light limitation diatoms 1/(W/m^2)", "0.8" + "``alpha2max_low_phaeo``", "real", "light limitation phaeocystis 1/(W/m^2)", "0.67" + "``alpha2max_low_sp``", "real", "light limitation small plankton 1/(W/m^2)", "0.67" + "``ammoniumtype``", "real", "mobility type between stationary and mobile ammonium", "1.0" + "``beta2max_diatoms``", "real", "light inhibition diatoms 1/(W/m^2)", "0.18" + "``beta2max_phaeo``", "real", "light inhibition phaeocystis 1/(W/m^2)", "0.01" + "``beta2max_sp``", "real", "light inhibition small plankton 1/(W/m^2)", "0.0025" + "``bgc_flux_type``", "``constant``", "constant ice–ocean flux velocity", "``Jin2006``" + "", "``Jin2006``", "ice–ocean flux velocity of :cite:`Jin06`", "" + "``chlabs_diatoms``", "real", "chl absorbtion diatoms 1/m/(mg/m^3)", "0.03" + "``chlabs_phaeo``", "real", "chl absorbtion phaeocystis 1/m/(mg/m^3)", "0.05" + "``chlabs_sp``", "real", "chl absorbtion small plankton 1/m/(mg/m^3)", "0.01" + "``dEdd_algae``", "logical", "", "``.false.``" + "``dmspdtype``", "real", "mobility type between stationary and mobile dmspd", "-1.0" + "``dmspptype``", "real", "mobility type between stationary and mobile dmspp", "0.5" + "``doctype_l``", "real", "mobility type between stationary and mobile doc lipids", "0.5" + "``doctype_s``", "real", "mobility type between stationary and mobile doc saccharids", "0.5" + "``dontype_protein``", "real", "mobility type between stationary and mobile don proteins", "0.5" + "``dustFe_sol``", "real", "solubility fraction", "0.005" + "``fedtype_1``", "real", "mobility type between stationary and mobile fed lipids", "0.5" + "``feptype_1``", "real", "mobility type between stationary and mobile fep lipids", "0.5" + "``frazil_scav``", "real", "increase in initial bio bracer from ocean scavenging", "1.0" + "``fr_dFe``", "real", "fraction of remineralized nitrogen in units of algal iron", "0.3" + "``fr_graze_diatoms``", "real", "fraction grazed diatoms", "0.01" + "``fr_graze_e``", "real", "fraction of assimilation excreted", "0.5" + "``fr_graze_phaeo``", "real", "fraction grazed phaeocystis", "0.1" + "``fr_graze_s``", "real", "fraction of grazing spilled or slopped", "0.5" + "``fr_graze_sp``", "real", "fraction grazed small plankton", "0.1" + "``fr_mort2min``", "real", "fractionation of mortality to Am", "0.5" + "``fr_resp``", "real", "frac of algal growth lost due to respiration", "0.05" + "``fr_resp_s``", "real", "DMSPd fraction of respiration loss as DMSPd", "0.75" + "``fsal``", "real", "salinity limitation ppt", "1.0" + "``F_abs_chl_diatoms``", "real", "scales absorbed radiation for dEdd chl diatoms", "2.0" + "``F_abs_chl_phaeo``", "real", "scales absorbed radiation for dEdd chl phaeocystis", "5.0" + "``F_abs_chl_sp``", "real", "scales absorbed radiation for dEdd small plankton", "4.0" + "``f_doc_l``", "real", "fraction of mortality to DOC lipids", "0.4" + "``f_doc_s``", "real", "fraction of mortality to DOC saccharides", "0.4" + "``f_don_Am_protein``", "real", "fraction of remineralized DON to ammonium", "0.25" + "``f_don_protein``", "real", "fraction of spilled grazing to proteins", "0.6" + "``f_exude_l``", "real", "fraction of exudation to DOC lipids", "1.0" + "``f_exude_s``", "real", "fraction of exudation to DOC saccharids", "1.0" + "``grid_o``", "real", "z biology for bottom flux", "5.0" + "``grid_o_t``", "real", "z biology for top flux", "5.0" + "``grid_oS``", "real", "z salinity for bottom flux", "5.0" + "``grow_Tdep_diatoms``", "real", "temperature dependence growth diatoms per degC", "0.06" + "``grow_Tdep_phaeo``", "real", "temperature dependence growth phaeocystis per degC", "0.06" + "``grow_Tdep_sp``", "real", "temperature dependence growth small plankton per degC", "0.06" + "``humtype``", "real", "mobility type between stationary and mobile hum", "1.0" + "``initbio_frac``", "real", "fraction of ocean trcr concentration in bio tracers", "1.0" + "``K_Am_diatoms``", "real", "ammonium half saturation diatoms mmol/m^3", "0.3" + "``K_Am_phaeo``", "real", "ammonium half saturation phaeocystis mmol/m^3", "0.3" + "``K_Am_sp``", "real", "ammonium half saturation small plankton mmol/m^3", "0.3" + "``k_bac_l``", "real", "Bacterial degredation of DOC lipids per day", "0.03" + "``k_bac_s``", "real", "Bacterial degredation of DOC saccharids per day", "0.03" + "``k_exude_diatoms``", "real", "algal exudation diatoms per day", "0.0" + "``k_exude_phaeo``", "real", "algal exudation phaeocystis per day", "0.0" + "``k_exude_sp``", "real", "algal exudation small plankton per day", "0.0" + "``K_Fe_diatoms``", "real", "iron half saturation diatoms nM", "1.0" + "``K_Fe_phaeo``", "real", "iron half saturation phaeocystis nM", "0.1" + "``K_Fe_sp``", "real", "iron half saturation small plankton nM", "0.2" + "``k_nitrif``", "real", "nitrification rate per day", "0.0" + "``K_Nit_diatoms``", "real", "nitrate half saturation diatoms mmol/m^3", "1.0" + "``K_Nit_phaeo``", "real", "nitrate half saturation phaeocystis mmol/m^3", "1.0" + "``K_Nit_sp``", "real", "nitrate half saturation small plankton mmol/m^3", "1.0" + "``K_Sil_diatoms``", "real", "silicate half saturation diatoms mmol/m^3", "4.0" + "``K_Sil_phaeo``", "real", "silicate half saturation phaeocystis mmol/m^3", "0.0" + "``K_Sil_sp``", "real", "silicate half saturation small plankton mmol/m^3", "0.0" + "``kn_bac_protein``", "real", "bacterial degradation of DON per day", "0.03" + "``l_sk``", "real", "characteristic diffusive scale in m", "7.0" + "``l_skS``", "real", "z salinity characteristic diffusive scale in m", "7.0" + "``max_dfe_doc1``", "real", "max ratio of dFe to saccharides in the ice in nm Fe / muM C", "0.2" + "``max_loss``", "real", "restrict uptake to percent of remaining value", "0.9" + "``modal_aero``", "logical", "modal aersols", "``.false.``" + "``mort_pre_diatoms``", "real", "mortality diatoms", "0.007" + "``mort_pre_phaeo``", "real", "mortality phaeocystis", "0.007" + "``mort_pre_sp``", "real", "mortality small plankton", "0.007" + "``mort_Tdep_diatoms``", "real", "temperature dependence of mortality diatoms per degC", "0.03" + "``mort_Tdep_phaeo``", "real", "temperature dependence of mortality phaeocystis per degC", "0.03" + "``mort_Tdep_sp``", "real", "temperature dependence of mortality small plankton per degC", "0.03" + "``mu_max_diatoms``", "real", "maximum growth rate diatoms per day", "1.2" + "``mu_max_phaeo``", "real", "maximum growth rate phaeocystis per day", "0.851" + "``mu_max_sp``", "real", "maximum growth rate small plankton per day", "0.851" + "``nitratetype``", "real", "mobility type between stationary and mobile nitrate", "-1.0" + "``op_dep_min``", "real", "light attenuates for optical depths exceeding min", "0.1" + "``phi_snow``", "real", "snow porosity for brine height tracer", "0.5" + "``ratio_chl2N_diatoms``", "real", "algal chl to N in mg/mmol diatoms", "2.1" + "``ratio_chl2N_phaeo``", "real", "algal chl to N in mg/mmol phaeocystis", "0.84" + "``ratio_chl2N_sp``", "real", "algal chl to N in mg/mmol small plankton", "1.1" + "``ratio_C2N_diatoms``", "real", "algal C to N in mol/mol diatoms", "7.0" + "``ratio_C2N_phaeo``", "real", "algal C to N in mol/mol phaeocystis", "7.0" + "``ratio_C2N_proteins``", "real", "algal C to N in mol/mol proteins", "7.0" + "``ratio_C2N_sp``", "real", "algal C to N in mol/mol small plankton", "7.0" + "``ratio_Fe2C_diatoms``", "real", "algal Fe to C in umol/mol diatoms", "0.0033" + "``ratio_Fe2C_phaeo``", "real", "algal Fe to C in umol/mol phaeocystis", "1.0" + "``ratio_Fe2C_sp``", "real", "algal Fe to C in umol/mol small plankton", "0.0033" + "``ratio_Fe2N_diatoms``", "real", "algal Fe to N in umol/mol diatoms", "0.23" + "``ratio_Fe2N_phaeo``", "real", "algal Fe to N in umol/mol phaeocystis", "0.7" + "``ratio_Fe2N_sp``", "real", "algal Fe to N in umol/mol small plankton", "0.23" + "``ratio_Fe2DOC_s``", "real", "Fe to C of DON saccharids nmol/umol", "1.0" + "``ratio_Fe2DOC_l``", "real", "Fe to C of DOC lipids nmol/umol", "0.033" + "``ratio_Fe2DON``", "real", "Fe to C of DON nmol/umol", "0.023" + "``ratio_Si2N_diatoms``", "real", "algal Si to N in mol/mol diatoms", "1.8" + "``ratio_Si2N_phaeo``", "real", "algal Si to N in mol/mol phaeocystis", "0.0" + "``ratio_Si2N_sp``", "real", "algal Si to N in mol/mol small plankton", "0.0" + "``ratio_S2N_diatoms``", "real", "algal S to N in mol/mol diatoms", "0.03" + "``ratio_S2N_phaeo``", "real", "algal S to N in mol/mol phaeocystis", "0.03" + "``ratio_S2N_sp``", "real", "algal S to N in mol/mol small plankton", "0.03" + "``restart_bgc``", "logical", "restart tracer values from file", "``.false.``" + "``restart_hbrine``", "logical", "", "``.false.``" + "``restart_zsal``", "logical", "", "``.false.``" + "``restore_bgc``", "logical", "restore bgc to data", "``.false.``" + "``R_dFe2dust``", "real", "g/g :cite:`Tagliabue09`", "0.035" + "``scale_bgc``", "logical", "", "``.false.``" + "``silicatetype``", "real", "mobility type between stationary and mobile silicate", "-1.0" + "``skl_bgc``", "logical", "biogeochemistry", "``.false.``" + "``solve_zbgc``", "logical", "", "``.false.``" + "``solve_zsal``", "logical", "update salinity tracer profile", "``.false.``" + "``tau_max``", "real", "long time mobile to stationary exchanges", "1.73e-5" + "``tau_min``", "real", "rapid module to stationary exchanges", "5200." + "``tr_bgc_Am``", "logical", "ammonium tracer", "``.false.``" + "``tr_bgc_C``", "logical", "algal carbon tracer", "``.false.``" + "``tr_bgc_chl``", "logical", "algal chlorophyll tracer", "``.false.``" + "``tr_bgc_DMS``", "logical", "DMS tracer", "``.false.``" + "``tr_bgc_DON``", "logical", "DON tracer", "``.false.``" + "``tr_bgc_Fe``", "logical", "iron tracer", "``.false.``" + "``tr_bgc_hum``", "logical", "", "``.false.``" + "``tr_bgc_Nit``", "logical", "", "``.false.``" + "``tr_bgc_PON``", "logical", "PON tracer", "``.false.``" + "``tr_bgc_Sil``", "logical", "silicate tracer", "``.false.``" + "``tr_brine``", "logical", "brine height tracer", "``.false.``" + "``tr_zaero``", "logical", "vertical aerosol tracers", "``.false.``" + "``t_iron_conv``", "real", "desorption loss pFe to dFe in days", "3065." + "``t_sk_conv``", "real", "Stefels conversion time in days", "3.0" + "``t_sk_ox``", "real", "DMS oxidation time in days", "10.0" + "``T_max``", "real", "maximum temperature degC", "0.0" + "``y_sk_DMS``", "real", "fraction conversion given high yield", "0.5" + "``zaerotype_bc1``", "real", "mobility type between stationary and mobile zaero bc1", "1.0" + "``zaerotype_bc2``", "real", "mobility type between stationary and mobile zaero bc2", "1.0" + "``zaerotype_dust1``", "real", "mobility type between stationary and mobile zaero dust1", "1.0" + "``zaerotype_dust2``", "real", "mobility type between stationary and mobile zaero dust2", "1.0" + "``zaerotype_dust3``", "real", "mobility type between stationary and mobile zaero dust3", "1.0" + "``zaerotype_dust4``", "real", "mobility type between stationary and mobile zaero dust4", "1.0" + "``z_tracers``", "logical", "", "``.false.``" + "", "", "", "" + + +icefields_nml +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. csv-table:: **icefields_nml namelist options** + :header: "variable", "options/format", "description", "default value" + :widths: 15, 15, 30, 15 + + "", "", "", "" + "``f_``", "``d``", "write field var every ``histfreq_n`` days", "" + "", "``h``", "write field var every ``histfreq_n`` hours", "" + "", "``m``", "write field var every ``histfreq_n`` months", "" + "", "``x``", "do not write var to history", "" + "", "``y``", "write field var every ``histfreq_n`` years", "" + "", "``1``", "write field var every time step", "" + "", "``md``", "*e.g.,* write both monthly and daily files", "" + "``f__ai``", "``d``", "write field cell average var every ``histfreq_n`` days", "" + "", "``h``", "write field cell average var every ``histfreq_n`` hours", "" + "", "``m``", "write field cell average var every ``histfreq_n`` months", "" + "", "``x``", "do not write cell average var to history", "" + "", "``y``", "write field cell average var every ``histfreq_n`` years", "" + "", "``1``", "write field cell average var every time step", "" + "", "``md``", "*e.g.,* write both monthly and daily files", "" + "", "", "", "" diff --git a/doc/source/user_guide/ug_testing.rst b/doc/source/user_guide/ug_testing.rst index 04b82a401..60aa52800 100644 --- a/doc/source/user_guide/ug_testing.rst +++ b/doc/source/user_guide/ug_testing.rst @@ -929,6 +929,10 @@ In order to run the script, the following requirements must be met: * matplotlib Python package (optional) * basemap Python package (optional) +QC testing should be carried out using configurations (ie. namelist settings) that +exercise the active code modifications. Multiple configurations may need to be tested +in some cases. Developers can contact the Consortium for guidance or if there are questions. + In order to generate the files necessary for the compliance test, test cases should be created with the ``qc`` option (i.e., ``--set qc``) when running cice.setup. This option results in daily, non-averaged history files being written for a 5 year simulation. @@ -1010,6 +1014,7 @@ If the regression comparisons fail, then you may want to run the QC test, # Create a QC baseline # From the baseline sandbox + # Generate the test case(s) using options or namelist changes to activate new code modifications ./cice.setup -m onyx -e intel --test smoke -g gx1 -p 44x1 --testid qc_base -s qc,medium cd onyx_intel_smoke_gx1_44x1_medium_qc.qc_base @@ -1018,7 +1023,8 @@ If the regression comparisons fail, then you may want to run the QC test, ./cice.submit # Create the t-test testing data - # From the update sandbox + # From the updated sandbox + # Generate the same test case(s) as the baseline using options or namelist changes to activate new code modifications ./cice.setup -m onyx -e intel --test smoke -g gx1 -p 44x1 -testid qc_test -s qc,medium cd onyx_intel_smoke_gx1_44x1_medium_qc.qc_test