From 636fcbff93a87923327e0121fbea5e542aa38703 Mon Sep 17 00:00:00 2001 From: apcraig Date: Wed, 27 Sep 2023 12:07:28 -0600 Subject: [PATCH 1/2] Update documentation --- columnphysics/icepack_mushy_physics.F90 | 6 + columnphysics/icepack_therm_shared.F90 | 2 +- columnphysics/icepack_warnings.F90 | 4 + doc/source/user_guide/interfaces.include | 241 +++++++++++++++-------- doc/source/user_guide/ug_testing.rst | 2 + 5 files changed, 167 insertions(+), 88 deletions(-) diff --git a/columnphysics/icepack_mushy_physics.F90 b/columnphysics/icepack_mushy_physics.F90 index 03700d56c..8ab819768 100644 --- a/columnphysics/icepack_mushy_physics.F90 +++ b/columnphysics/icepack_mushy_physics.F90 @@ -141,6 +141,7 @@ subroutine conductivity_snow_array(ks) end subroutine conductivity_snow_array !======================================================================= +!autodocument_start icepack_enthalpy_snow ! Enthalpy of snow from snow temperature function icepack_enthalpy_snow(zTsn) result(zqsn) @@ -151,6 +152,8 @@ function icepack_enthalpy_snow(zTsn) result(zqsn) real(kind=dbl_kind) :: & zqsn ! snow layer enthalpy (J m-3) +!autodocument_end + character(len=*),parameter :: subname='(icepack_enthalpy_snow)' zqsn = -rhos * (-cp_ice * zTsn + Lfresh) @@ -260,6 +263,7 @@ function liquidus_temperature_mush(Sbr) result(zTin) end function liquidus_temperature_mush !======================================================================= +!autodocument_start icepack_enthalpy_mush ! Enthalpy of mush from mush temperature and bulk salinity function icepack_enthalpy_mush(zTin, zSin) result(zqin) @@ -271,6 +275,8 @@ function icepack_enthalpy_mush(zTin, zSin) result(zqin) real(kind=dbl_kind) :: & zqin ! ice layer enthalpy (J m-3) +!autodocument_end + real(kind=dbl_kind) :: & phi ! ice liquid fraction diff --git a/columnphysics/icepack_therm_shared.F90 b/columnphysics/icepack_therm_shared.F90 index b3a752f1b..32fa2ae96 100644 --- a/columnphysics/icepack_therm_shared.F90 +++ b/columnphysics/icepack_therm_shared.F90 @@ -278,7 +278,7 @@ function icepack_salinity_profile(zn) result(salinity) real(kind=dbl_kind) :: & salinity ! initial salinity profile -!autodocument end +!autodocument_end real (kind=dbl_kind), parameter :: & nsal = 0.407_dbl_kind, & diff --git a/columnphysics/icepack_warnings.F90 b/columnphysics/icepack_warnings.F90 index 36adb6721..459f2dc80 100644 --- a/columnphysics/icepack_warnings.F90 +++ b/columnphysics/icepack_warnings.F90 @@ -92,12 +92,16 @@ subroutine icepack_warnings_clear() end subroutine icepack_warnings_clear !======================================================================= +!autodocument_start icepack_warnings_clear +! return an array of all the current warning messages subroutine icepack_warnings_getall(warningsOut) character(len=char_len_long), dimension(:), allocatable, intent(out) :: & warningsOut +!autodocument_end + integer :: iWarning character(len=*),parameter :: subname='(icepack_warnings_getall)' diff --git a/doc/source/user_guide/interfaces.include b/doc/source/user_guide/interfaces.include index 7c8d3589d..e4bbb7d37 100644 --- a/doc/source/user_guide/interfaces.include +++ b/doc/source/user_guide/interfaces.include @@ -89,7 +89,7 @@ icepack_init_hbrine nblyr ! number of bio layers real (kind=dbl_kind), intent(inout) :: & - phi_snow !porosity at the ice-snow interface + phi_snow ! porosity at the ice-snow interface real (kind=dbl_kind), dimension (nblyr+2), intent(out) :: & bgrid ! biology nondimensional vertical grid points @@ -98,9 +98,9 @@ icepack_init_hbrine igrid ! biology vertical interface points real (kind=dbl_kind), dimension (nilyr+1), intent(out) :: & - cgrid , & ! CICE vertical coordinate - icgrid , & ! interface grid for CICE (shortwave variable) - swgrid ! grid for ice tracers used in dEdd scheme + cgrid , & ! CICE vertical coordinate + icgrid , & ! interface grid for CICE (shortwave variable) + swgrid ! grid for ice tracers used in dEdd scheme @@ -117,10 +117,10 @@ icepack_init_zsalinity Rayleigh_real, trcrn_bgc, nt_bgc_S, ncat, sss) integer (kind=int_kind), intent(in) :: & - nblyr, & ! number of biolayers + nblyr , & ! number of biolayers ntrcr_o, & ! number of non bio tracers - ncat , & ! number of categories - nt_bgc_S ! zsalinity index + ncat , & ! number of categories + nt_bgc_S ! zsalinity index logical (kind=log_kind), intent(inout) :: & Rayleigh_criteria @@ -132,7 +132,7 @@ icepack_init_zsalinity sss real (kind=dbl_kind), dimension(:,:), intent(inout):: & - trcrn_bgc ! bgc subset of trcrn + trcrn_bgc ! bgc subset of trcrn @@ -259,13 +259,15 @@ icepack_intfc.F90 use icepack_tracers, only: icepack_max_iso => max_iso use icepack_tracers, only: icepack_nmodal1 => nmodal1 use icepack_tracers, only: icepack_nmodal2 => nmodal2 - use icepack_parameters, only: icepack_nspint => nspint + + use icepack_shortwave_data, only: icepack_nspint_3bd => nspint_3bd + use icepack_shortwave_data, only: icepack_nspint_5bd => nspint_5bd use icepack_parameters, only: icepack_init_parameters use icepack_parameters, only: icepack_query_parameters use icepack_parameters, only: icepack_write_parameters use icepack_parameters, only: icepack_recompute_constants - use icepack_parameters, only: nspint, secday, spval_const + use icepack_parameters, only: secday, spval_const use icepack_parameters, only: c0, c1, c1p5, c2, c3, c4, c5, c6, c8 use icepack_parameters, only: c10, c15, c16, c20, c25, c100, c1000 use icepack_parameters, only: p001, p01, p1, p2, p4, p5, p6, p05 @@ -299,6 +301,7 @@ icepack_intfc.F90 use icepack_snow, only: icepack_init_snow use icepack_snow, only: icepack_step_snow + use icepack_shortwave, only: icepack_init_radiation use icepack_shortwave, only: icepack_prep_radiation use icepack_shortwave, only: icepack_step_radiation @@ -323,10 +326,12 @@ icepack_intfc.F90 use icepack_therm_shared , only: icepack_snow_temperature use icepack_therm_shared , only: icepack_liquidus_temperature use icepack_therm_shared , only: icepack_sea_freezing_temperature - use icepack_therm_shared , only: icepack_enthalpy_snow use icepack_therm_shared , only: icepack_init_thermo + use icepack_therm_shared , only: icepack_salinity_profile use icepack_therm_shared , only: icepack_init_trcr + use icepack_mushy_physics , only: icepack_enthalpy_snow + use icepack_mushy_physics , only: icepack_enthalpy_mush use icepack_mushy_physics , only: icepack_mushy_density_brine use icepack_mushy_physics , only: icepack_mushy_liquid_fraction use icepack_mushy_physics , only: icepack_mushy_temperature_mush @@ -335,6 +340,7 @@ icepack_intfc.F90 use icepack_warnings, only: icepack_warnings_print use icepack_warnings, only: icepack_warnings_flush use icepack_warnings, only: icepack_warnings_aborted + use icepack_warnings, only: icepack_warnings_getall @@ -407,7 +413,7 @@ icepack_aggregate trcr_depend, & trcr_base, & n_trcr_strata, & - nt_strata) + nt_strata, Tf) integer (kind=int_kind), intent(in) :: & ncat , & ! number of thickness categories @@ -441,6 +447,9 @@ icepack_aggregate real (kind=dbl_kind), dimension (:), intent(out) :: & trcr ! ice tracers + real (kind=dbl_kind), intent(in) :: & + Tf ! freezing temperature + icepack_mechred.F90 @@ -524,11 +533,14 @@ icepack_step_ridge araftn, vraftn, & aice, fsalt, & first_ice, fzsal, & - flux_bio, closing ) + flux_bio, closing, Tf ) real (kind=dbl_kind), intent(in) :: & dt ! time step + real (kind=dbl_kind), intent(in) :: & + Tf ! freezing temperature + integer (kind=int_kind), intent(in) :: & ncat , & ! number of thickness categories ndtd , & ! number of dynamics supercycles @@ -624,6 +636,43 @@ icepack_mushy_density_brine +.. _icepack_enthalpy_snow: + +icepack_enthalpy_snow +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: fortran + + ! Enthalpy of snow from snow temperature + + function icepack_enthalpy_snow(zTsn) result(zqsn) + + real(kind=dbl_kind), intent(in) :: & + zTsn ! snow layer temperature (C) + + real(kind=dbl_kind) :: & + zqsn ! snow layer enthalpy (J m-3) + + + +.. _icepack_enthalpy_mush: + +icepack_enthalpy_mush +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: fortran + + ! Enthalpy of mush from mush temperature and bulk salinity + + function icepack_enthalpy_mush(zTin, zSin) result(zqin) + + real(kind=dbl_kind), intent(in) :: & + zTin, & ! ice layer temperature (C) + zSin ! ice layer bulk salinity (ppt) + + real(kind=dbl_kind) :: & + zqin ! ice layer enthalpy (J m-3) + + + .. _icepack_mushy_temperature_mush: icepack_mushy_temperature_mush @@ -803,11 +852,12 @@ icepack_init_parameters kice_in, ksno_in, & zref_in, hs_min_in, snowpatch_in, rhosi_in, sk_l_in, & saltmax_in, phi_init_in, min_salin_in, salt_loss_in, & + Tliquidus_max_in, & min_bgc_in, dSin0_frazil_in, hi_ssl_in, hs_ssl_in, & awtvdr_in, awtidr_in, awtvdf_in, awtidf_in, & qqqice_in, TTTice_in, qqqocn_in, TTTocn_in, & ktherm_in, conduct_in, fbot_xfer_type_in, calc_Tsfc_in, dts_b_in, & - update_ocn_f_in, ustar_min_in, a_rapid_mode_in, & + update_ocn_f_in, ustar_min_in, hi_min_in, a_rapid_mode_in, & cpl_frazil_in, & Rac_rapid_mode_in, aspect_rapid_mode_in, & dSdt_slow_mode_in, phi_c_slow_mode_in, & @@ -836,7 +886,7 @@ icepack_init_parameters snwlvlfac_in, isnw_T_in, isnw_Tgrd_in, isnw_rhos_in, & snowage_rhos_in, snowage_Tgrd_in, snowage_T_in, & snowage_tau_in, snowage_kappa_in, snowage_drdt0_in, & - snw_aging_table_in) + snw_aging_table_in, snw_ssp_table_in ) !----------------------------------------------------------------- ! control settings @@ -892,6 +942,7 @@ icepack_init_parameters phi_init_in, & ! initial liquid fraction of frazil min_salin_in, & ! threshold for brine pocket treatment salt_loss_in, & ! fraction of salt retained in zsalinity + Tliquidus_max_in, & ! maximum liquidus temperature of mush (C) dSin0_frazil_in ! bulk salinity reduction of newly formed frazil integer (kind=int_kind), intent(in), optional :: & @@ -913,6 +964,7 @@ icepack_init_parameters real (kind=dbl_kind), intent(in), optional :: & dts_b_in, & ! zsalinity timestep + hi_min_in, & ! minimum ice thickness allowed (m) for thermo ustar_min_in ! minimum friction velocity for ice-ocean heat flux ! mushy thermo @@ -953,7 +1005,7 @@ icepack_init_parameters awtidf_in ! near IR, diffuse character (len=*), intent(in), optional :: & - shortwave_in, & ! shortwave method, 'ccsm3' or 'dEdd' + shortwave_in, & ! shortwave method, 'ccsm3' or 'dEdd' or 'dEdd_snicar_ad' albedo_type_in ! albedo parameterization, 'ccsm3' or 'constant' ! shortwave='dEdd' overrides this parameter @@ -1184,6 +1236,9 @@ icepack_init_parameters snowage_kappa_in, &! snowage_drdt0_in ! (10^-6 m/hr) + character (len=char_len), intent(in), optional :: & + snw_ssp_table_in ! lookup table: 'snicar' or 'test' + .. _icepack_query_parameters: @@ -1211,10 +1266,11 @@ icepack_query_parameters kice_out, ksno_out, & zref_out, hs_min_out, snowpatch_out, rhosi_out, sk_l_out, & saltmax_out, phi_init_out, min_salin_out, salt_loss_out, & + Tliquidus_max_out, & min_bgc_out, dSin0_frazil_out, hi_ssl_out, hs_ssl_out, & awtvdr_out, awtidr_out, awtvdf_out, awtidf_out, cpl_frazil_out, & qqqice_out, TTTice_out, qqqocn_out, TTTocn_out, update_ocn_f_out, & - Lfresh_out, cprho_out, Cp_out, ustar_min_out, a_rapid_mode_out, & + Lfresh_out, cprho_out, Cp_out, ustar_min_out, hi_min_out, a_rapid_mode_out, & ktherm_out, conduct_out, fbot_xfer_type_out, calc_Tsfc_out, dts_b_out, & Rac_rapid_mode_out, aspect_rapid_mode_out, dSdt_slow_mode_out, & phi_c_slow_mode_out, phi_i_mushy_out, shortwave_out, & @@ -1243,7 +1299,7 @@ icepack_query_parameters snwlvlfac_out, isnw_T_out, isnw_Tgrd_out, isnw_rhos_out, & snowage_rhos_out, snowage_Tgrd_out, snowage_T_out, & snowage_tau_out, snowage_kappa_out, snowage_drdt0_out, & - snw_aging_table_out) + snw_aging_table_out, snw_ssp_table_out ) !----------------------------------------------------------------- ! control settings @@ -1308,6 +1364,7 @@ icepack_query_parameters phi_init_out, & ! initial liquid fraction of frazil min_salin_out, & ! threshold for brine pocket treatment salt_loss_out, & ! fraction of salt retained in zsalinity + Tliquidus_max_out, & ! maximum liquidus temperature of mush (C) dSin0_frazil_out ! bulk salinity reduction of newly formed frazil integer (kind=int_kind), intent(out), optional :: & @@ -1329,6 +1386,7 @@ icepack_query_parameters real (kind=dbl_kind), intent(out), optional :: & dts_b_out, & ! zsalinity timestep + hi_min_out, & ! minimum ice thickness allowed (m) for thermo ustar_min_out ! minimum friction velocity for ice-ocean heat flux ! mushy thermo @@ -1343,6 +1401,7 @@ icepack_query_parameters character(len=*), intent(out), optional :: & tfrz_option_out ! form of ocean freezing temperature ! 'minus1p8' = -1.8 C + ! 'constant' = Tocnfrz ! 'linear_salt' = -depressT * sss ! 'mushy' conforms with ktherm=2 @@ -1370,7 +1429,7 @@ icepack_query_parameters awtidf_out ! near IR, diffuse character (len=*), intent(out), optional :: & - shortwave_out, & ! shortwave method, 'ccsm3' or 'dEdd' + shortwave_out, & ! shortwave method, 'ccsm3' or 'dEdd' or 'dEdd_snicar_ad' albedo_type_out ! albedo parameterization, 'ccsm3' or 'constant' ! shortwave='dEdd' overrides this parameter @@ -1600,6 +1659,10 @@ icepack_query_parameters snowage_tau_out, & ! (10^-6 m) snowage_kappa_out, &! snowage_drdt0_out ! (10^-6 m/hr) + + character (len=char_len), intent(out), optional :: & + snw_ssp_table_out ! lookup table: 'snicar' or 'test' + .. _icepack_write_parameters: @@ -1632,6 +1695,19 @@ icepack_recompute_constants icepack_shortwave.F90 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. _icepack_init_radiation: + +icepack_init_radiation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: fortran + + ! Initialize data needed for shortwave radiation calculations + ! This should be called after values are set via icepack_init_parameters + + subroutine icepack_init_radiation() + + + .. _icepack_prep_radiation: icepack_prep_radiation @@ -1642,8 +1718,7 @@ icepack_prep_radiation ! ! authors: Elizabeth Hunke, LANL - subroutine icepack_prep_radiation (ncat, nilyr, nslyr, & - aice, aicen, & + subroutine icepack_prep_radiation(aice, aicen, & swvdr, swvdf, & swidr, swidf, & alvdr_ai, alvdf_ai, & @@ -1658,11 +1733,6 @@ icepack_prep_radiation fswpenln, & Sswabsn, Iswabsn) - integer (kind=int_kind), intent(in) :: & - ncat , & ! number of ice thickness categories - nilyr , & ! number of ice layers - nslyr ! number of snow layers - real (kind=dbl_kind), intent(in) :: & aice , & ! ice area fraction swvdr , & ! sw down, visible, direct (W/m^2) @@ -1711,10 +1781,7 @@ icepack_step_radiation ! David Bailey, NCAR ! Elizabeth C. Hunke, LANL - subroutine icepack_step_radiation (dt, ncat, & - nblyr, & - nilyr, nslyr, & - dEdd_algae, & + subroutine icepack_step_radiation (dt, & swgrid, igrid, & fbri, & aicen, vicen, & @@ -1729,13 +1796,6 @@ icepack_step_radiation days_per_year, & nextsw_cday, & yday, sec, & - kaer_tab, waer_tab, & - gaer_tab, & - kaer_bc_tab, & - waer_bc_tab, & - gaer_bc_tab, & - bcenh, & - modal_aero, & swvdr, swvdf, & swidr, swidf, & coszen, fsnow, & @@ -1757,12 +1817,6 @@ icepack_step_radiation l_print_point, & initonly) - integer (kind=int_kind), intent(in) :: & - ncat , & ! number of ice thickness categories - nilyr , & ! number of ice layers - nslyr , & ! number of snow layers - nblyr ! number of bgc layers - real (kind=dbl_kind), intent(in) :: & dt , & ! time step (s) swvdr , & ! sw down, visible, direct (W/m^2) @@ -1772,38 +1826,29 @@ icepack_step_radiation fsnow , & ! snowfall rate (kg/m^2 s) TLAT, TLON ! latitude and longitude (radian) - character (len=char_len), intent(in) :: & - calendar_type ! differentiates Gregorian from other calendars - integer (kind=int_kind), intent(in) :: & - days_per_year, & ! number of days in one year - sec ! elapsed seconds into date + sec ! elapsed seconds into date real (kind=dbl_kind), intent(in) :: & - nextsw_cday , & ! julian day of next shortwave calculation - yday ! day of the year + yday ! day of the year + + character (len=char_len), intent(in), optional :: & + calendar_type ! differentiates Gregorian from other calendars + + integer (kind=int_kind), intent(in), optional :: & + days_per_year ! number of days in one year + + real (kind=dbl_kind), intent(in), optional :: & + nextsw_cday ! julian day of next shortwave calculation real (kind=dbl_kind), intent(inout) :: & coszen ! cosine solar zenith angle, < 0 for sun below horizon real (kind=dbl_kind), dimension (:), intent(in) :: & - igrid ! biology vertical interface points + igrid ! biology vertical interface points real (kind=dbl_kind), dimension (:), intent(in) :: & - swgrid ! grid for ice tracers used in dEdd scheme - - real (kind=dbl_kind), dimension(:,:), intent(in) :: & - kaer_tab, & ! aerosol mass extinction cross section (m2/kg) - waer_tab, & ! aerosol single scatter albedo (fraction) - gaer_tab ! aerosol asymmetry parameter (cos(theta)) - - real (kind=dbl_kind), dimension(:,:), intent(in) :: & - kaer_bc_tab, & ! aerosol mass extinction cross section (m2/kg) - waer_bc_tab, & ! aerosol single scatter albedo (fraction) - gaer_bc_tab ! aerosol asymmetry parameter (cos(theta)) - - real (kind=dbl_kind), dimension(:,:,:), intent(in) :: & - bcenh + swgrid ! grid for ice tracers used in dEdd scheme real (kind=dbl_kind), dimension(:), intent(in) :: & aicen , & ! ice area fraction in each category @@ -1853,15 +1898,13 @@ icepack_step_radiation Sswabsn ! SW radiation absorbed in snow layers (W m-2) logical (kind=log_kind), intent(in) :: & - l_print_point, & ! flag for printing diagnostics - dEdd_algae , & ! .true. use prognostic chla in dEdd - modal_aero ! .true. use modal aerosol optical treatment + l_print_point ! flag for printing diagnostics real (kind=dbl_kind), dimension(:,:), intent(inout), optional :: & - rsnow ! snow grain radius tracer (10^-6 m) + rsnow ! snow grain radius tracer (10^-6 m) logical (kind=log_kind), optional :: & - initonly ! flag to indicate init only, default is false + initonly ! flag to indicate init only, default is false @@ -2009,7 +2052,7 @@ icepack_step_therm2 logical (kind=log_kind), intent(in), optional :: & update_ocn_f ! if true, update fresh water and salt fluxes - real (kind=dbl_kind), dimension(0:ncat), intent(inout) :: & + real (kind=dbl_kind), dimension(0:ncat), intent(in) :: & hin_max ! category boundaries (m) real (kind=dbl_kind), intent(in) :: & @@ -2139,6 +2182,27 @@ icepack_init_thermo +.. _icepack_salinity_profile: + +icepack_salinity_profile +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: fortran + + ! Initial salinity profile + ! + ! authors: C. M. Bitz, UW + ! William H. Lipscomb, LANL + + function icepack_salinity_profile(zn) result(salinity) + + real(kind=dbl_kind), intent(in) :: & + zn ! depth + + real(kind=dbl_kind) :: & + salinity ! initial salinity profile + + + .. _icepack_init_trcr: icepack_init_trcr @@ -2233,21 +2297,6 @@ icepack_snow_temperature -.. _icepack_enthalpy_snow: - -icepack_enthalpy_snow -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. code-block:: fortran - - ! compute snow enthalpy - - function icepack_enthalpy_snow(zTsn) result(qsn) - - real(kind=dbl_kind), intent(in) :: zTsn - real(kind=dbl_kind) :: qsn - - - icepack_therm_vertical.F90 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -2979,7 +3028,7 @@ icepack_compute_tracers atrcrn, aicen, & vicen, vsnon, & trcr_base, n_trcr_strata, & - nt_strata, trcrn) + nt_strata, trcrn, Tf) integer (kind=int_kind), intent(in) :: & ntrcr ! number of tracers in use @@ -3006,6 +3055,9 @@ icepack_compute_tracers real (kind=dbl_kind), dimension (ntrcr), intent(out) :: & trcrn ! ice tracers + real (kind=dbl_kind), intent(in) :: & + Tf ! Freezing point + icepack_warnings.F90 @@ -3038,6 +3090,21 @@ icepack_warnings_clear +.. _icepack_warnings_clear: + +icepack_warnings_clear +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: fortran + + ! return an array of all the current warning messages + + subroutine icepack_warnings_getall(warningsOut) + + character(len=char_len_long), dimension(:), allocatable, intent(out) :: & + warningsOut + + + .. _icepack_warnings_print: icepack_warnings_print diff --git a/doc/source/user_guide/ug_testing.rst b/doc/source/user_guide/ug_testing.rst index 08db08fe0..3a702e630 100755 --- a/doc/source/user_guide/ug_testing.rst +++ b/doc/source/user_guide/ug_testing.rst @@ -220,6 +220,8 @@ Test suites support running multiple tests specified via an input file or files. When invoking the test suite option (``--suite``) with **icepack.setup**, all tests will be created, built, and submitted automatically under a directory called testsuite.[testid].[$date] as part of involing the suite. +The test scripts provide an ability to reuse binaries between tests within +a test suite when possible. Because the tests are built and submitted automatically, this feature does not allow for customization of cases or tests like individual cases and tests do:: From adcf436b4246d466de2898fc07931eeeb5efadf5 Mon Sep 17 00:00:00 2001 From: apcraig Date: Thu, 28 Sep 2023 12:12:02 -0600 Subject: [PATCH 2/2] Update documentation --- doc/source/icepack_index.rst | 2 +- doc/source/science_guide/sg_thermo.rst | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/doc/source/icepack_index.rst b/doc/source/icepack_index.rst index 5c01ab388..fa280994e 100755 --- a/doc/source/icepack_index.rst +++ b/doc/source/icepack_index.rst @@ -470,7 +470,7 @@ either Celsius or Kelvin units). Deprecated parameters are listed at the end. "tmass", "total mass of ice and snow", "kg/m\ :math:`^2`" "Tmin", "minimum allowed internal temperature", "-100. C" "Tmltz", "melting temperature profile of ice", "" - "Tocnfrz", "temperature of constant freezing point parameterization", "-1.8 C" + "Tocnfrz", "temperature of constant freezing point parameterization", "C" "tr_aero", ":math:`\bullet` if true, use aerosol tracers", "" "tr_iso", ":math:`\bullet` if true, use water isotope tracers", "" "tr_bgc_[tracer]", ":math:`\bullet` if true, use biogeochemistry tracers", "" diff --git a/doc/source/science_guide/sg_thermo.rst b/doc/source/science_guide/sg_thermo.rst index d7534df40..d12b90cfe 100755 --- a/doc/source/science_guide/sg_thermo.rst +++ b/doc/source/science_guide/sg_thermo.rst @@ -21,7 +21,10 @@ horizontally uniform column with ice thickness :math:`h_{sn} = v_{sn}/a_{in}`. (Henceforth we omit the category index \ :math:`n`.) Each column is divided into :math:`N_i` ice layers of thickness :math:`\Delta h_i = h_i/N_i` and :math:`N_s` snow layers of -thickness :math:`\Delta h_s = h_s/N_s`. The surface temperature (i.e., +thickness :math:`\Delta h_s = h_s/N_s`. Minimum ice and snow thickness +is specified by namelist parameters ``hi_min`` and ``hs_min``. + +The surface temperature (i.e., the temperature of ice or snow at the interface with the atmosphere) is :math:`T_{sf}`, which cannot exceed :math:`0^{\circ}C`. The temperature at the midpoint of the snow layer is :math:`T_s`, and the midpoint ice layer @@ -30,6 +33,13 @@ temperatures are :math:`T_{ik}`, where :math:`k` ranges from 1 to :math:`T_f`, the freezing temperature of the ocean mixed layer. All temperatures are in degrees Celsius unless stated otherwise. +The ``tfrz_option`` namelist specifies the freezing temperature formulation. +``minus1p8`` fixes the freezing temperature at -1.8C. ``constant`` fixes +the freeing point at whatever value is specified by the parameter ``Tocnfrz``. +``linear_salt`` sets the freezing temperature based on salinity, +:math:`Tf = -depressT * sss`. And ``mushy`` uses the mushy formulation for setting +the freezing temperature. + Each ice layer has an enthalpy :math:`q_{ik}`, defined as the negative of the energy required to melt a unit volume of ice and raise its temperature to :math:`0^{\circ}C`. Because of internal melting and freezing in brine @@ -1679,7 +1689,8 @@ consistently (from a mushy physics point of view) to both enthalpy and bulk salinity, the resulting temperature may be changed to be greater than the limit allowed in the thermodynamics routines. If this situation is detected, the code corrects the enthalpy so the temperature is below -the limiting value. Conservation of energy is ensured by placing the +the limiting value. The limiting value, ``Tliquidus_max`` can be specified +in namelist. Conservation of energy is ensured by placing the excess energy in the ocean, and the code writes a warning (see :ref:`aborts`) that this has occurred to the diagnostics file. This situation only occurs with the