LCOV - code coverage report
Current view: top level - icepack/columnphysics - icepack_parameters.F90 (source / functions) Hit Total Coverage
Test: 210705-232000:85531cf8f8:8:first,base,travis,decomp,reprosum,io,quick,unittest Lines: 368 529 69.57 %
Date: 2021-07-06 02:48:38 Functions: 3 4 75.00 %

          Line data    Source code
       1             : !=========================================================================
       2             : !
       3             : ! flags for the column package
       4             : !
       5             : ! authors: Elizabeth C. Hunke, LANL
       6             : 
       7             :       module icepack_parameters
       8             : 
       9             :       use icepack_kinds
      10             :       use icepack_warnings, only: icepack_warnings_aborted
      11             : 
      12             :       implicit none
      13             :       private
      14             : 
      15             :       public :: icepack_init_parameters
      16             :       public :: icepack_query_parameters
      17             :       public :: icepack_write_parameters
      18             :       public :: icepack_recompute_constants
      19             : 
      20             :       !-----------------------------------------------------------------
      21             :       ! parameter constants
      22             :       !-----------------------------------------------------------------
      23             : 
      24             :       integer (kind=int_kind), parameter, public :: & 
      25             :          nspint = 3                ! number of solar spectral intervals
      26             : 
      27             :       real (kind=dbl_kind), parameter, public :: &
      28             :          c0   = 0.0_dbl_kind, &   ! LCOV_EXCL_LINE
      29             :          c1   = 1.0_dbl_kind, &   ! LCOV_EXCL_LINE
      30             :          c1p5 = 1.5_dbl_kind, &   ! LCOV_EXCL_LINE
      31             :          c2   = 2.0_dbl_kind, &   ! LCOV_EXCL_LINE
      32             :          c3   = 3.0_dbl_kind, &   ! LCOV_EXCL_LINE
      33             :          c4   = 4.0_dbl_kind, &   ! LCOV_EXCL_LINE
      34             :          c5   = 5.0_dbl_kind, &   ! LCOV_EXCL_LINE
      35             :          c6   = 6.0_dbl_kind, &   ! LCOV_EXCL_LINE
      36             :          c8   = 8.0_dbl_kind, &   ! LCOV_EXCL_LINE
      37             :          c10  = 10.0_dbl_kind, &   ! LCOV_EXCL_LINE
      38             :          c15  = 15.0_dbl_kind, &   ! LCOV_EXCL_LINE
      39             :          c16  = 16.0_dbl_kind, &   ! LCOV_EXCL_LINE
      40             :          c20  = 20.0_dbl_kind, &   ! LCOV_EXCL_LINE
      41             :          c25  = 25.0_dbl_kind, &   ! LCOV_EXCL_LINE
      42             :          c100 = 100.0_dbl_kind, &   ! LCOV_EXCL_LINE
      43             :          c180 = 180.0_dbl_kind, &   ! LCOV_EXCL_LINE
      44             :          c1000= 1000.0_dbl_kind, &   ! LCOV_EXCL_LINE
      45             :          p001 = 0.001_dbl_kind, &   ! LCOV_EXCL_LINE
      46             :          p01  = 0.01_dbl_kind, &   ! LCOV_EXCL_LINE
      47             :          p1   = 0.1_dbl_kind, &   ! LCOV_EXCL_LINE
      48             :          p2   = 0.2_dbl_kind, &   ! LCOV_EXCL_LINE
      49             :          p4   = 0.4_dbl_kind, &   ! LCOV_EXCL_LINE
      50             :          p5   = 0.5_dbl_kind, &   ! LCOV_EXCL_LINE
      51             :          p6   = 0.6_dbl_kind, &   ! LCOV_EXCL_LINE
      52             :          p05  = 0.05_dbl_kind, &   ! LCOV_EXCL_LINE
      53             :          p15  = 0.15_dbl_kind, &   ! LCOV_EXCL_LINE
      54             :          p25  = 0.25_dbl_kind, &   ! LCOV_EXCL_LINE
      55             :          p75  = 0.75_dbl_kind, &   ! LCOV_EXCL_LINE
      56             :          p333 = c1/c3, &   ! LCOV_EXCL_LINE
      57             :          p666 = c2/c3, &   ! LCOV_EXCL_LINE
      58             :          spval_const= -1.0e36_dbl_kind
      59             : 
      60             :       real (kind=dbl_kind), public :: &
      61             :          secday = 86400.0_dbl_kind ,&! seconds in calendar day   ! LCOV_EXCL_LINE
      62             :          puny   = 1.0e-11_dbl_kind, &   ! LCOV_EXCL_LINE
      63             :          bignum = 1.0e+30_dbl_kind, &   ! LCOV_EXCL_LINE
      64             :          pi     = 3.14159265358979323846_dbl_kind
      65             : 
      66             :       !-----------------------------------------------------------------
      67             :       ! derived physical constants
      68             :       !    Lfresh = Lsub-Lvap     ,&! latent heat of melting of fresh ice (J/kg)
      69             :       !    cprho  = cp_ocn*rhow   ,&! for ocean mixed layer (J kg / K m^3)   ! LCOV_EXCL_LINE
      70             :       !    Cp     = 0.5_dbl_kind*gravit*(rhow-rhoi)*rhoi/rhow ,&! proport const for PE    ! LCOV_EXCL_LINE
      71             :       !-----------------------------------------------------------------
      72             : 
      73             :       real (kind=dbl_kind), public :: &
      74             :          pih        = spval_const     ,&! 0.5 * pi   ! LCOV_EXCL_LINE
      75             :          piq        = spval_const     ,&! 0.25 * pi   ! LCOV_EXCL_LINE
      76             :          pi2        = spval_const     ,&! 2 * pi   ! LCOV_EXCL_LINE
      77             :          rad_to_deg = spval_const     ,&! conversion factor, radians to degrees   ! LCOV_EXCL_LINE
      78             :          Lfresh     = spval_const     ,&! latent heat of melting of fresh ice (J/kg)   ! LCOV_EXCL_LINE
      79             :          cprho      = spval_const     ,&! for ocean mixed layer (J kg / K m^3)   ! LCOV_EXCL_LINE
      80             :          Cp         = spval_const       ! proport const for PE 
      81             : 
      82             :       !-----------------------------------------------------------------
      83             :       ! Densities
      84             :       !-----------------------------------------------------------------
      85             : 
      86             :       real (kind=dbl_kind), public :: &
      87             :          rhos      = 330.0_dbl_kind   ,&! density of snow (kg/m^3)   ! LCOV_EXCL_LINE
      88             :          rhoi      = 917.0_dbl_kind   ,&! density of ice (kg/m^3)   ! LCOV_EXCL_LINE
      89             :          rhosi     = 940.0_dbl_kind   ,&! average sea ice density   ! LCOV_EXCL_LINE
      90             :                                         ! Cox and Weeks, 1982: 919-974 kg/m^2
      91             :          rhow      = 1026.0_dbl_kind  ,&! density of seawater (kg/m^3)
      92             :          rhofresh  = 1000.0_dbl_kind    ! density of fresh water (kg/m^3)
      93             : 
      94             : !-----------------------------------------------------------------------
      95             : ! Parameters for thermodynamics
      96             : !-----------------------------------------------------------------------
      97             : 
      98             :       real (kind=dbl_kind), public :: &
      99             :          hfrazilmin = 0.05_dbl_kind   ,&! min thickness of new frazil ice (m)   ! LCOV_EXCL_LINE
     100             :          cp_ice    = 2106._dbl_kind   ,&! specific heat of fresh ice (J/kg/K)   ! LCOV_EXCL_LINE
     101             :          cp_ocn    = 4218._dbl_kind   ,&! specific heat of ocn    (J/kg/K)   ! LCOV_EXCL_LINE
     102             :                                         ! freshwater value needed for enthalpy
     103             :          depressT  = 0.054_dbl_kind   ,&! Tf:brine salinity ratio (C/ppt)
     104             :          viscosity_dyn = 1.79e-3_dbl_kind, & ! dynamic viscosity of brine (kg/m/s)   ! LCOV_EXCL_LINE
     105             :          Tocnfrz   = -1.8_dbl_kind    ,&! freezing temp of seawater (C),   ! LCOV_EXCL_LINE
     106             :                                         ! used as Tsfcn for open water
     107             :          Tffresh   = 273.15_dbl_kind  ,&! freezing temp of fresh ice (K)
     108             :          Lsub      = 2.835e6_dbl_kind ,&! latent heat, sublimation freshwater (J/kg)   ! LCOV_EXCL_LINE
     109             :          Lvap      = 2.501e6_dbl_kind ,&! latent heat, vaporization freshwater (J/kg)   ! LCOV_EXCL_LINE
     110             :          Timelt    = 0.0_dbl_kind     ,&! melting temperature, ice top surface  (C)   ! LCOV_EXCL_LINE
     111             :          Tsmelt    = 0.0_dbl_kind     ,&! melting temperature, snow top surface (C)   ! LCOV_EXCL_LINE
     112             :          ice_ref_salinity =4._dbl_kind,&! (ppt)   ! LCOV_EXCL_LINE
     113             :                                         ! kice is not used for mushy thermo
     114             :          kice      = 2.03_dbl_kind    ,&! thermal conductivity of fresh ice(W/m/deg)
     115             :                                         ! kseaice is used only for zero-layer thermo
     116             :          kseaice   = 2.00_dbl_kind    ,&! thermal conductivity of sea ice (W/m/deg)
     117             :          ksno      = 0.30_dbl_kind    ,&! thermal conductivity of snow  (W/m/deg)   ! LCOV_EXCL_LINE
     118             :          hs_min    = 1.e-4_dbl_kind   ,&! min snow thickness for computing zTsn (m)   ! LCOV_EXCL_LINE
     119             :          snowpatch = 0.02_dbl_kind    ,&! parameter for fractional snow area (m)   ! LCOV_EXCL_LINE
     120             :          saltmax   = 3.2_dbl_kind     ,&! max salinity at ice base for BL99 (ppt)   ! LCOV_EXCL_LINE
     121             :                                         ! phi_init, dSin0_frazil are for mushy thermo
     122             :          phi_init  = 0.75_dbl_kind    ,&! initial liquid fraction of frazil
     123             :          min_salin = p1               ,&! threshold for brine pocket treatment   ! LCOV_EXCL_LINE
     124             :          salt_loss = 0.4_dbl_kind     ,&! fraction of salt retained in zsalinity   ! LCOV_EXCL_LINE
     125             :          dSin0_frazil = c3            ,&! bulk salinity reduction of newly formed frazil   ! LCOV_EXCL_LINE
     126             :          dts_b     = 50._dbl_kind     ,&! zsalinity timestep   ! LCOV_EXCL_LINE
     127             :          ustar_min = 0.005_dbl_kind   ,&! minimum friction velocity for ocean heat flux (m/s)   ! LCOV_EXCL_LINE
     128             :          ! mushy thermo
     129             :          a_rapid_mode      =  0.5e-3_dbl_kind,&! channel radius for rapid drainage mode (m)
     130             :          Rac_rapid_mode    =    10.0_dbl_kind,&! critical Rayleigh number   ! LCOV_EXCL_LINE
     131             :          aspect_rapid_mode =     1.0_dbl_kind,&! aspect ratio (larger is wider)   ! LCOV_EXCL_LINE
     132             :          dSdt_slow_mode    = -1.5e-7_dbl_kind,&! slow mode drainage strength (m s-1 K-1)   ! LCOV_EXCL_LINE
     133             :          phi_c_slow_mode   =    0.05_dbl_kind,&! critical liquid fraction porosity cutoff   ! LCOV_EXCL_LINE
     134             :          phi_i_mushy       =    0.85_dbl_kind  ! liquid fraction of congelation ice
     135             : 
     136             :       integer (kind=int_kind), public :: &
     137             :          ktherm = 1      ! type of thermodynamics
     138             :                          ! 0 = 0-layer approximation
     139             :                          ! 1 = Bitz and Lipscomb 1999
     140             :                          ! 2 = mushy layer theory
     141             : 
     142             :       character (char_len), public :: &
     143             :          conduct = 'bubbly', &      ! 'MU71' or 'bubbly'   ! LCOV_EXCL_LINE
     144             :          fbot_xfer_type = 'constant' ! transfer coefficient type for ice-ocean heat flux
     145             : 
     146             :       logical (kind=log_kind), public :: &
     147             :          heat_capacity = .true. ,&! if true, ice has nonzero heat capacity   ! LCOV_EXCL_LINE
     148             :                                   ! if false, use zero-layer thermodynamics
     149             :          calc_Tsfc     = .true. ,&! if true, calculate surface temperature
     150             :                                   ! if false, Tsfc is computed elsewhere and
     151             :                                   ! atmos-ice fluxes are provided to CICE
     152             :          update_ocn_f = .false. ,&! include fresh water and salt fluxes for frazil
     153             :          solve_zsal   = .false. ,&! if true, update salinity profile from solve_S_dt   ! LCOV_EXCL_LINE
     154             :          modal_aero   = .false. ,&! if true, use modal aerosal optical properties   ! LCOV_EXCL_LINE
     155             :                                   ! only for use with tr_aero or tr_zaero
     156             :          conserv_check = .false.  ! if true, do conservations checks and abort
     157             : 
     158             :       character(len=char_len), public :: &
     159             :          tfrz_option  = 'mushy'   ! form of ocean freezing temperature
     160             :                                   ! 'minus1p8' = -1.8 C
     161             :                                   ! 'linear_salt' = -depressT * sss
     162             :                                   ! 'mushy' conforms with ktherm=2
     163             : 
     164             : !-----------------------------------------------------------------------
     165             : ! Parameters for radiation
     166             : !-----------------------------------------------------------------------
     167             : 
     168             :       real (kind=dbl_kind), public :: &
     169             :          ! (Briegleb JGR 97 11475-11485  July 1992)
     170             :          emissivity = 0.985_dbl_kind,&! emissivity of snow and ice
     171             :          albocn     = 0.06_dbl_kind ,&! ocean albedo   ! LCOV_EXCL_LINE
     172             :          vonkar     = 0.4_dbl_kind  ,&! von Karman constant   ! LCOV_EXCL_LINE
     173             :          stefan_boltzmann = 567.0e-10_dbl_kind,&!  W/m^2/K^4   ! LCOV_EXCL_LINE
     174             :          ! (Ebert, Schramm and Curry JGR 100 15965-15975 Aug 1995)
     175             :          kappav     = 1.4_dbl_kind  ,&! vis extnctn coef in ice, wvlngth<700nm (1/m)
     176             :          hi_ssl     = 0.050_dbl_kind,&! ice surface scattering layer thickness (m)   ! LCOV_EXCL_LINE
     177             :          hs_ssl     = 0.040_dbl_kind,&! snow surface scattering layer thickness (m)   ! LCOV_EXCL_LINE
     178             :          ! baseline albedos for ccsm3 shortwave, set in namelist
     179             :          albicev    = 0.78_dbl_kind ,&! visible ice albedo for h > ahmax
     180             :          albicei    = 0.36_dbl_kind ,&! near-ir ice albedo for h > ahmax   ! LCOV_EXCL_LINE
     181             :          albsnowv   = 0.98_dbl_kind ,&! cold snow albedo, visible   ! LCOV_EXCL_LINE
     182             :          albsnowi   = 0.70_dbl_kind ,&! cold snow albedo, near IR   ! LCOV_EXCL_LINE
     183             :          ahmax      = 0.3_dbl_kind  ,&! thickness above which ice albedo is constant (m)   ! LCOV_EXCL_LINE
     184             :          ! dEdd tuning parameters, set in namelist
     185             :          R_ice      = c0   ,&! sea ice tuning parameter; +1 > 1sig increase in albedo
     186             :          R_pnd      = c0   ,&! ponded ice tuning parameter; +1 > 1sig increase in albedo   ! LCOV_EXCL_LINE
     187             :          R_snw      = c1p5 ,&! snow tuning parameter; +1 > ~.01 change in broadband albedo   ! LCOV_EXCL_LINE
     188             :          dT_mlt     = c1p5 ,&! change in temp for non-melt to melt snow grain    ! LCOV_EXCL_LINE
     189             :                              ! radius change (C)
     190             :          rsnw_mlt   = 1500._dbl_kind,&! maximum melting snow grain radius (10^-6 m)
     191             :          kalg       = 0.60_dbl_kind   ! algae absorption coefficient for 0.5 m thick layer
     192             :                                       ! 0.5 m path of 75 mg Chl a / m2
     193             :       ! weights for albedos 
     194             :       ! 4 Jan 2007 BPB  Following are appropriate for complete cloud
     195             :       ! in a summer polar atmosphere with 1.5m bare sea ice surface:
     196             :       ! .636/.364 vis/nir with only 0.5% direct for each band.
     197             :       real (kind=dbl_kind), public :: &                 ! currently used only
     198             :          awtvdr = 0.00318_dbl_kind, &! visible, direct  ! for history and   ! LCOV_EXCL_LINE
     199             :          awtidr = 0.00182_dbl_kind, &! near IR, direct  ! diagnostics   ! LCOV_EXCL_LINE
     200             :          awtvdf = 0.63282_dbl_kind, &! visible, diffuse   ! LCOV_EXCL_LINE
     201             :          awtidf = 0.36218_dbl_kind   ! near IR, diffuse
     202             : 
     203             :       character (len=char_len), public :: &
     204             :          shortwave   = 'dEdd', & ! shortwave method, 'ccsm3' or 'dEdd'   ! LCOV_EXCL_LINE
     205             :          albedo_type = 'ccsm3'   ! albedo parameterization, 'ccsm3' or 'constant'
     206             :                                  ! shortwave='dEdd' overrides this parameter
     207             : 
     208             : !-----------------------------------------------------------------------
     209             : ! Parameters for dynamics, including ridging and strength
     210             : !-----------------------------------------------------------------------
     211             : 
     212             :       integer (kind=int_kind), public :: & ! defined in namelist 
     213             :          kstrength   = 1, & ! 0 for simple Hibler (1979) formulation   ! LCOV_EXCL_LINE
     214             :                             ! 1 for Rothrock (1975) pressure formulation
     215             :          krdg_partic = 1, & ! 0 for Thorndike et al. (1975) formulation
     216             :                             ! 1 for exponential participation function
     217             :          krdg_redist = 1    ! 0 for Hibler (1980) formulation
     218             :                             ! 1 for exponential redistribution function
     219             : 
     220             :       real (kind=dbl_kind), public :: &  
     221             :          Cf       = 17._dbl_kind     ,&! ratio of ridging work to PE change in ridging   ! LCOV_EXCL_LINE
     222             :          Pstar    = 2.75e4_dbl_kind  ,&! constant in Hibler strength formula   ! LCOV_EXCL_LINE
     223             :                                        ! (kstrength = 0)
     224             :          Cstar    = 20._dbl_kind     ,&! constant in Hibler strength formula
     225             :                                        ! (kstrength = 0)
     226             :          dragio   = 0.00536_dbl_kind ,&! ice-ocn drag coefficient
     227             :          thickness_ocn_layer1 = 2.0_dbl_kind,&! thickness of first ocean level (m)   ! LCOV_EXCL_LINE
     228             :          iceruf_ocn = 0.03_dbl_kind  ,&! under-ice roughness (m)   ! LCOV_EXCL_LINE
     229             :          gravit   = 9.80616_dbl_kind ,&! gravitational acceleration (m/s^2)   ! LCOV_EXCL_LINE
     230             :          mu_rdg = 3.0_dbl_kind ! e-folding scale of ridged ice, krdg_partic=1 (m^0.5)
     231             :                                        ! (krdg_redist = 1)
     232             : 
     233             :       logical (kind=log_kind), public :: &
     234             :          calc_dragio     = .false.     ! if true, calculate dragio from iceruf_ocn and thickness_ocn_layer1
     235             : 
     236             : !-----------------------------------------------------------------------
     237             : ! Parameters for atmosphere
     238             : !-----------------------------------------------------------------------
     239             : 
     240             :       real (kind=dbl_kind), public :: &
     241             :          cp_air = 1005.0_dbl_kind    ,&! specific heat of air (J/kg/K)   ! LCOV_EXCL_LINE
     242             :          cp_wv  = 1.81e3_dbl_kind    ,&! specific heat of water vapor (J/kg/K)   ! LCOV_EXCL_LINE
     243             :          zvir   = 0.606_dbl_kind     ,&! rh2o/rair - 1.0   ! LCOV_EXCL_LINE
     244             :          zref   = 10._dbl_kind       ,&! reference height for stability (m)   ! LCOV_EXCL_LINE
     245             :          iceruf = 0.0005_dbl_kind    ,&! ice surface roughness (m)   ! LCOV_EXCL_LINE
     246             :          qqqice = 11637800._dbl_kind ,&! for qsat over ice   ! LCOV_EXCL_LINE
     247             :          TTTice = 5897.8_dbl_kind    ,&! for qsat over ice   ! LCOV_EXCL_LINE
     248             :          qqqocn = 627572.4_dbl_kind  ,&! for qsat over ocn   ! LCOV_EXCL_LINE
     249             :          TTTocn = 5107.4_dbl_kind      ! for qsat over ocn
     250             : 
     251             :       character (len=char_len), public :: &
     252             :          atmbndy = 'default' ! atmo boundary method, 'default' ('ccsm3') or 'constant'
     253             : 
     254             :       logical (kind=log_kind), public :: &
     255             :          calc_strair     = .true.  , & ! if true, calculate wind stress   ! LCOV_EXCL_LINE
     256             :          formdrag        = .false. , & ! if true, calculate form drag   ! LCOV_EXCL_LINE
     257             :          highfreq        = .false.     ! if true, calculate high frequency coupling
     258             : 
     259             :       integer (kind=int_kind), public :: &
     260             :          natmiter        = 5 ! number of iterations for atm boundary layer calcs
     261             : 
     262             :       ! Flux convergence tolerance
     263             :       real (kind=dbl_kind), public :: atmiter_conv = c0
     264             : 
     265             : !-----------------------------------------------------------------------
     266             : ! Parameters for the ice thickness distribution
     267             : !-----------------------------------------------------------------------
     268             : 
     269             :       integer (kind=int_kind), public :: &
     270             :          kitd      = 1 ,&! type of itd conversions   ! LCOV_EXCL_LINE
     271             :                          !   0 = delta function
     272             :                          !   1 = linear remap
     273             :          kcatbound = 1   !   0 = old category boundary formula
     274             :                          !   1 = new formula giving round numbers
     275             :                          !   2 = WMO standard
     276             :                          !   3 = asymptotic formula
     277             : 
     278             : !-----------------------------------------------------------------------
     279             : ! Parameters for the floe size distribution
     280             : !-----------------------------------------------------------------------
     281             : 
     282             :       integer (kind=int_kind), public :: &
     283             :          nfreq = 25                   ! number of frequencies
     284             : 
     285             :       real (kind=dbl_kind), public :: &
     286             :          floeshape = 0.66_dbl_kind    ! constant from Steele (unitless)
     287             : 
     288             :       real (kind=dbl_kind), public :: &
     289             :          floediam  = 300.0_dbl_kind   ! effective floe diameter for lateral melt (m)
     290             : 
     291             :       logical (kind=log_kind), public :: &
     292             :          wave_spec = .false.          ! if true, use wave forcing
     293             : 
     294             :       character (len=char_len), public :: &
     295             :          wave_spec_type = 'constant'  ! 'none', 'constant', or 'random'
     296             : 
     297             : !-----------------------------------------------------------------------
     298             : ! Parameters for melt ponds
     299             : !-----------------------------------------------------------------------
     300             : 
     301             :       real (kind=dbl_kind), public :: &
     302             :          hs0       = 0.03_dbl_kind    ! snow depth for transition to bare sea ice (m)
     303             : 
     304             :       ! level-ice ponds
     305             :       character (len=char_len), public :: &
     306             :          frzpnd    = 'cesm'           ! pond refreezing parameterization
     307             : 
     308             :       real (kind=dbl_kind), public :: &
     309             :          dpscale   = c1, &            ! alter e-folding time scale for flushing    ! LCOV_EXCL_LINE
     310             :          rfracmin  = 0.15_dbl_kind, & ! minimum retained fraction of meltwater   ! LCOV_EXCL_LINE
     311             :          rfracmax  = 0.85_dbl_kind, & ! maximum retained fraction of meltwater   ! LCOV_EXCL_LINE
     312             :          pndaspect = 0.8_dbl_kind, &  ! ratio of pond depth to area fraction   ! LCOV_EXCL_LINE
     313             :          hs1       = 0.03_dbl_kind    ! snow depth for transition to bare pond ice (m)
     314             : 
     315             :       ! topo ponds
     316             :       real (kind=dbl_kind), public :: &
     317             :          hp1       = 0.01_dbl_kind    ! critical pond lid thickness for topo ponds
     318             : 
     319             : !-----------------------------------------------------------------------
     320             : ! Parameters for biogeochemistry
     321             : !-----------------------------------------------------------------------
     322             : 
     323             :       character(char_len), public :: &          
     324             :       ! skl biology parameters
     325             :          bgc_flux_type = 'Jin2006'  ! type of ocean-ice poston velocity (or 'constant')
     326             : 
     327             :       logical (kind=log_kind), public :: &
     328             :          z_tracers  = .false.,    & ! if .true., bgc or aerosol tracers are vertically resolved   ! LCOV_EXCL_LINE
     329             :          scale_bgc  = .false.,    & ! if .true., initialize bgc tracers proportionally with salinity   ! LCOV_EXCL_LINE
     330             :          solve_zbgc = .false.,    & ! if .true., solve vertical biochemistry portion of code   ! LCOV_EXCL_LINE
     331             :          dEdd_algae = .false.,    & ! if .true., algal absorption of shortwave is computed in the   ! LCOV_EXCL_LINE
     332             :          skl_bgc    = .false.       ! if true, solve skeletal biochemistry
     333             : 
     334             :       real (kind=dbl_kind), public :: & 
     335             :          phi_snow     = p5              , & ! snow porosity   ! LCOV_EXCL_LINE
     336             :          grid_o       = c5              , & ! for bottom flux   ! LCOV_EXCL_LINE
     337             :          initbio_frac = c1              , & ! fraction of ocean trcr concentration in bio trcrs   ! LCOV_EXCL_LINE
     338             :          l_sk         = 7.0_dbl_kind    , & ! characteristic diffusive scale (m)   ! LCOV_EXCL_LINE
     339             :          grid_oS      = c5              , & ! for bottom flux   ! LCOV_EXCL_LINE
     340             :          l_skS        = 7.0_dbl_kind    , & ! characteristic skeletal layer thickness (m) (zsalinity)   ! LCOV_EXCL_LINE
     341             :          algal_vel    = 1.11e-8_dbl_kind, & ! 0.5 cm/d(m/s) Lavoie 2005  1.5 cm/day   ! LCOV_EXCL_LINE
     342             :          R_dFe2dust   = 0.035_dbl_kind  , & !  g/g (3.5% content) Tagliabue 2009   ! LCOV_EXCL_LINE
     343             :          dustFe_sol   = 0.005_dbl_kind  , & ! solubility fraction   ! LCOV_EXCL_LINE
     344             :          frazil_scav  = c1              , & ! fraction or multiple of bgc concentrated in frazil ice   ! LCOV_EXCL_LINE
     345             :          sk_l         = 0.03_dbl_kind   , & ! skeletal layer thickness (m)   ! LCOV_EXCL_LINE
     346             :          min_bgc      = 0.01_dbl_kind   , & ! fraction of ocean bgc concentration in surface melt   ! LCOV_EXCL_LINE
     347             :          T_max        = c0              , & ! maximum temperature (C)   ! LCOV_EXCL_LINE
     348             :          fsal         = c1              , & ! Salinity limitation (1)   ! LCOV_EXCL_LINE
     349             :          op_dep_min   = p1              , & ! light attenuates for optical depths exceeding min   ! LCOV_EXCL_LINE
     350             :          fr_graze_s   = p5              , & ! fraction of grazing spilled or slopped   ! LCOV_EXCL_LINE
     351             :          fr_graze_e   = p5              , & ! fraction of assimilation excreted   ! LCOV_EXCL_LINE
     352             :          fr_mort2min  = p5              , & ! fractionation of mortality to Am   ! LCOV_EXCL_LINE
     353             :          fr_dFe       = 0.3_dbl_kind    , & ! fraction of remineralized nitrogen   ! LCOV_EXCL_LINE
     354             :                                             ! (in units of algal iron)
     355             :          k_nitrif     = c0              , & ! nitrification rate (1/day)
     356             :          t_iron_conv  = 3065.0_dbl_kind , & ! desorption loss pFe to dFe (day)   ! LCOV_EXCL_LINE
     357             :          max_loss     = 0.9_dbl_kind    , & ! restrict uptake to % of remaining value   ! LCOV_EXCL_LINE
     358             :          max_dfe_doc1 = 0.2_dbl_kind    , & ! max ratio of dFe to saccharides in the ice   ! LCOV_EXCL_LINE
     359             :                                             ! (nM Fe/muM C)
     360             :          fr_resp      = 0.05_dbl_kind   , & ! fraction of algal growth lost due to respiration
     361             :          fr_resp_s    = 0.75_dbl_kind   , & ! DMSPd fraction of respiration loss as DMSPd   ! LCOV_EXCL_LINE
     362             :          y_sk_DMS     = p5              , & ! fraction conversion given high yield   ! LCOV_EXCL_LINE
     363             :          t_sk_conv    = 3.0_dbl_kind    , & ! Stefels conversion time (d)   ! LCOV_EXCL_LINE
     364             :          t_sk_ox      = 10.0_dbl_kind       ! DMS oxidation time (d)
     365             : 
     366             : 
     367             : !-----------------------------------------------------------------------
     368             : ! Parameters for shortwave redistribution
     369             : !-----------------------------------------------------------------------
     370             : 
     371             :       logical (kind=log_kind), public :: &
     372             :          sw_redist     = .false.
     373             : 
     374             :       real (kind=dbl_kind), public :: & 
     375             :          sw_frac      = 0.9_dbl_kind    , & ! Fraction of internal shortwave moved to surface   ! LCOV_EXCL_LINE
     376             :          sw_dtemp     = 0.02_dbl_kind       ! temperature difference from melting
     377             : 
     378             : !=======================================================================
     379             : 
     380             :       contains
     381             : 
     382             : !=======================================================================
     383             : 
     384             : !autodocument_start icepack_init_parameters
     385             : ! subroutine to set the column package internal parameters
     386             : 
     387       17276 :       subroutine icepack_init_parameters(   &
     388             :          puny_in, bignum_in, pi_in, secday_in, &   ! LCOV_EXCL_LINE
     389             :          rhos_in, rhoi_in, rhow_in, cp_air_in, emissivity_in, &   ! LCOV_EXCL_LINE
     390             :          cp_ice_in, cp_ocn_in, hfrazilmin_in, floediam_in, &   ! LCOV_EXCL_LINE
     391             :          depressT_in, dragio_in, thickness_ocn_layer1_in, iceruf_ocn_in, albocn_in, gravit_in, viscosity_dyn_in, &   ! LCOV_EXCL_LINE
     392             :          Tocnfrz_in, rhofresh_in, zvir_in, vonkar_in, cp_wv_in, &   ! LCOV_EXCL_LINE
     393             :          stefan_boltzmann_in, ice_ref_salinity_in, &   ! LCOV_EXCL_LINE
     394             :          Tffresh_in, Lsub_in, Lvap_in, Timelt_in, Tsmelt_in, &   ! LCOV_EXCL_LINE
     395             :          iceruf_in, Cf_in, Pstar_in, Cstar_in, kappav_in, &   ! LCOV_EXCL_LINE
     396             :          kice_in, kseaice_in, ksno_in, &   ! LCOV_EXCL_LINE
     397             :          zref_in, hs_min_in, snowpatch_in, rhosi_in, sk_l_in, &   ! LCOV_EXCL_LINE
     398             :          saltmax_in, phi_init_in, min_salin_in, salt_loss_in, &   ! LCOV_EXCL_LINE
     399             :          min_bgc_in, dSin0_frazil_in, hi_ssl_in, hs_ssl_in, &   ! LCOV_EXCL_LINE
     400             :          awtvdr_in, awtidr_in, awtvdf_in, awtidf_in, &   ! LCOV_EXCL_LINE
     401             :          qqqice_in, TTTice_in, qqqocn_in, TTTocn_in, &   ! LCOV_EXCL_LINE
     402             :          ktherm_in, conduct_in, fbot_xfer_type_in, calc_Tsfc_in, dts_b_in, &   ! LCOV_EXCL_LINE
     403             :          update_ocn_f_in, ustar_min_in, a_rapid_mode_in, &   ! LCOV_EXCL_LINE
     404             :          Rac_rapid_mode_in, aspect_rapid_mode_in, &   ! LCOV_EXCL_LINE
     405             :          dSdt_slow_mode_in, phi_c_slow_mode_in, &   ! LCOV_EXCL_LINE
     406             :          phi_i_mushy_in, shortwave_in, albedo_type_in, albsnowi_in, &   ! LCOV_EXCL_LINE
     407             :          albicev_in, albicei_in, albsnowv_in, &   ! LCOV_EXCL_LINE
     408             :          ahmax_in, R_ice_in, R_pnd_in, R_snw_in, dT_mlt_in, rsnw_mlt_in, &   ! LCOV_EXCL_LINE
     409             :          kalg_in, kstrength_in, krdg_partic_in, krdg_redist_in, mu_rdg_in, &   ! LCOV_EXCL_LINE
     410             :          atmbndy_in, calc_strair_in, formdrag_in, highfreq_in, natmiter_in, &   ! LCOV_EXCL_LINE
     411             :          atmiter_conv_in, calc_dragio_in, &   ! LCOV_EXCL_LINE
     412             :          tfrz_option_in, kitd_in, kcatbound_in, hs0_in, frzpnd_in, &   ! LCOV_EXCL_LINE
     413             :          floeshape_in, wave_spec_in, wave_spec_type_in, nfreq_in, &   ! LCOV_EXCL_LINE
     414             :          dpscale_in, rfracmin_in, rfracmax_in, pndaspect_in, hs1_in, hp1_in, &   ! LCOV_EXCL_LINE
     415             :          bgc_flux_type_in, z_tracers_in, scale_bgc_in, solve_zbgc_in, &   ! LCOV_EXCL_LINE
     416             :          modal_aero_in, skl_bgc_in, solve_zsal_in, grid_o_in, l_sk_in, &   ! LCOV_EXCL_LINE
     417             :          initbio_frac_in, grid_oS_in, l_skS_in,  dEdd_algae_in, &   ! LCOV_EXCL_LINE
     418             :          phi_snow_in, heat_capacity_in, T_max_in, fsal_in, &   ! LCOV_EXCL_LINE
     419             :          fr_resp_in, algal_vel_in, R_dFe2dust_in, dustFe_sol_in, &   ! LCOV_EXCL_LINE
     420             :          op_dep_min_in, fr_graze_s_in, fr_graze_e_in, fr_mort2min_in, &   ! LCOV_EXCL_LINE
     421             :          fr_dFe_in, k_nitrif_in, t_iron_conv_in, max_loss_in, &   ! LCOV_EXCL_LINE
     422             :          max_dfe_doc1_in, fr_resp_s_in, conserv_check_in, &   ! LCOV_EXCL_LINE
     423             :          y_sk_DMS_in, t_sk_conv_in, t_sk_ox_in, frazil_scav_in, &   ! LCOV_EXCL_LINE
     424             :          sw_redist_in, sw_frac_in, sw_dtemp_in)
     425             : 
     426             :       !-----------------------------------------------------------------
     427             :       ! parameter constants
     428             :       !-----------------------------------------------------------------
     429             : 
     430             :       real (kind=dbl_kind), intent(in), optional :: &
     431             :          secday_in,     & !   ! LCOV_EXCL_LINE
     432             :          puny_in,       & !   ! LCOV_EXCL_LINE
     433             :          bignum_in,     & !   ! LCOV_EXCL_LINE
     434             :          pi_in            !
     435             : 
     436             :       !-----------------------------------------------------------------
     437             :       ! densities
     438             :       !-----------------------------------------------------------------
     439             : 
     440             :       real (kind=dbl_kind), intent(in), optional :: &
     441             :          rhos_in,       & ! density of snow (kg/m^3)   ! LCOV_EXCL_LINE
     442             :          rhoi_in,       & ! density of ice (kg/m^3)   ! LCOV_EXCL_LINE
     443             :          rhosi_in,      & ! average sea ice density (kg/m2)   ! LCOV_EXCL_LINE
     444             :          rhow_in,       & ! density of seawater (kg/m^3)   ! LCOV_EXCL_LINE
     445             :          rhofresh_in      ! density of fresh water (kg/m^3)
     446             : 
     447             : !-----------------------------------------------------------------------
     448             : ! Parameters for thermodynamics
     449             : !-----------------------------------------------------------------------
     450             : 
     451             :       real (kind=dbl_kind), intent(in), optional :: &
     452             :          floediam_in,   & ! effective floe diameter for lateral melt (m)   ! LCOV_EXCL_LINE
     453             :          hfrazilmin_in, & ! min thickness of new frazil ice (m)   ! LCOV_EXCL_LINE
     454             :          cp_ice_in,     & ! specific heat of fresh ice (J/kg/K)   ! LCOV_EXCL_LINE
     455             :          cp_ocn_in,     & ! specific heat of ocn    (J/kg/K)   ! LCOV_EXCL_LINE
     456             :          depressT_in,   & ! Tf:brine salinity ratio (C/ppt)   ! LCOV_EXCL_LINE
     457             :          viscosity_dyn_in, & ! dynamic viscosity of brine (kg/m/s)   ! LCOV_EXCL_LINE
     458             :          Tocnfrz_in,    & ! freezing temp of seawater (C)   ! LCOV_EXCL_LINE
     459             :          Tffresh_in,    & ! freezing temp of fresh ice (K)   ! LCOV_EXCL_LINE
     460             :          Lsub_in,       & ! latent heat, sublimation freshwater (J/kg)   ! LCOV_EXCL_LINE
     461             :          Lvap_in,       & ! latent heat, vaporization freshwater (J/kg)   ! LCOV_EXCL_LINE
     462             :          Timelt_in,     & ! melting temperature, ice top surface  (C)   ! LCOV_EXCL_LINE
     463             :          Tsmelt_in,     & ! melting temperature, snow top surface (C)   ! LCOV_EXCL_LINE
     464             :          ice_ref_salinity_in, & ! (ppt)   ! LCOV_EXCL_LINE
     465             :          kice_in,       & ! thermal conductivity of fresh ice(W/m/deg)   ! LCOV_EXCL_LINE
     466             :          kseaice_in,    & ! thermal conductivity of sea ice (W/m/deg)   ! LCOV_EXCL_LINE
     467             :          ksno_in,       & ! thermal conductivity of snow  (W/m/deg)   ! LCOV_EXCL_LINE
     468             :          hs_min_in,     & ! min snow thickness for computing zTsn (m)   ! LCOV_EXCL_LINE
     469             :          snowpatch_in,  & ! parameter for fractional snow area (m)   ! LCOV_EXCL_LINE
     470             :          saltmax_in,    & ! max salinity at ice base for BL99 (ppt)   ! LCOV_EXCL_LINE
     471             :          phi_init_in,   & ! initial liquid fraction of frazil   ! LCOV_EXCL_LINE
     472             :          min_salin_in,  & ! threshold for brine pocket treatment   ! LCOV_EXCL_LINE
     473             :          salt_loss_in,  & ! fraction of salt retained in zsalinity   ! LCOV_EXCL_LINE
     474             :          dSin0_frazil_in  ! bulk salinity reduction of newly formed frazil
     475             : 
     476             :       integer (kind=int_kind), intent(in), optional :: &
     477             :          ktherm_in          ! type of thermodynamics
     478             :                             ! 0 = 0-layer approximation
     479             :                             ! 1 = Bitz and Lipscomb 1999
     480             :                             ! 2 = mushy layer theory
     481             : 
     482             :       character (char_len), intent(in), optional :: &
     483             :          conduct_in, &      ! 'MU71' or 'bubbly'   ! LCOV_EXCL_LINE
     484             :          fbot_xfer_type_in  ! transfer coefficient type for ice-ocean heat flux
     485             :         
     486             :       logical (kind=log_kind), intent(in), optional :: &
     487             :          heat_capacity_in, &! if true, ice has nonzero heat capacity   ! LCOV_EXCL_LINE
     488             :                             ! if false, use zero-layer thermodynamics
     489             :          calc_Tsfc_in    , &! if true, calculate surface temperature
     490             :                             ! if false, Tsfc is computed elsewhere and
     491             :                             ! atmos-ice fluxes are provided to CICE
     492             :          update_ocn_f_in    ! include fresh water and salt fluxes for frazil
     493             : 
     494             :       real (kind=dbl_kind), intent(in), optional :: &
     495             :          dts_b_in,   &      ! zsalinity timestep   ! LCOV_EXCL_LINE
     496             :          ustar_min_in       ! minimum friction velocity for ice-ocean heat flux
     497             :  
     498             :       ! mushy thermo
     499             :       real(kind=dbl_kind), intent(in), optional :: &
     500             :          a_rapid_mode_in      , & ! channel radius for rapid drainage mode (m)   ! LCOV_EXCL_LINE
     501             :          Rac_rapid_mode_in    , & ! critical Rayleigh number for rapid drainage mode   ! LCOV_EXCL_LINE
     502             :          aspect_rapid_mode_in , & ! aspect ratio for rapid drainage mode (larger=wider)   ! LCOV_EXCL_LINE
     503             :          dSdt_slow_mode_in    , & ! slow mode drainage strength (m s-1 K-1)   ! LCOV_EXCL_LINE
     504             :          phi_c_slow_mode_in   , & ! liquid fraction porosity cutoff for slow mode   ! LCOV_EXCL_LINE
     505             :          phi_i_mushy_in           ! liquid fraction of congelation ice
     506             :         
     507             :         character(len=char_len), intent(in), optional :: &
     508             :              tfrz_option_in              ! form of ocean freezing temperature
     509             :                                          ! 'minus1p8' = -1.8 C
     510             :                                          ! 'linear_salt' = -depressT * sss
     511             :                                          ! 'mushy' conforms with ktherm=2
     512             : 
     513             : !-----------------------------------------------------------------------
     514             : ! Parameters for radiation
     515             : !-----------------------------------------------------------------------
     516             : 
     517             :       real(kind=dbl_kind), intent(in), optional :: &
     518             :          emissivity_in, & ! emissivity of snow and ice   ! LCOV_EXCL_LINE
     519             :          albocn_in,     & ! ocean albedo   ! LCOV_EXCL_LINE
     520             :          vonkar_in,     & ! von Karman constant   ! LCOV_EXCL_LINE
     521             :          stefan_boltzmann_in, & !  W/m^2/K^4   ! LCOV_EXCL_LINE
     522             :          kappav_in,     & ! vis extnctn coef in ice, wvlngth<700nm (1/m)   ! LCOV_EXCL_LINE
     523             :          hi_ssl_in,     & ! ice surface scattering layer thickness (m)   ! LCOV_EXCL_LINE
     524             :          hs_ssl_in,     & ! visible, direct    ! LCOV_EXCL_LINE
     525             :          awtvdr_in,     & ! visible, direct  ! for history and   ! LCOV_EXCL_LINE
     526             :          awtidr_in,     & ! near IR, direct  ! diagnostics   ! LCOV_EXCL_LINE
     527             :          awtvdf_in,     & ! visible, diffuse   ! LCOV_EXCL_LINE
     528             :          awtidf_in        ! near IR, diffuse
     529             : 
     530             :       character (len=char_len), intent(in), optional :: &
     531             :          shortwave_in, & ! shortwave method, 'ccsm3' or 'dEdd'   ! LCOV_EXCL_LINE
     532             :          albedo_type_in  ! albedo parameterization, 'ccsm3' or 'constant'
     533             :                          ! shortwave='dEdd' overrides this parameter
     534             : 
     535             :       ! baseline albedos for ccsm3 shortwave, set in namelist
     536             :       real (kind=dbl_kind), intent(in), optional :: &
     537             :          albicev_in  , & ! visible ice albedo for h > ahmax   ! LCOV_EXCL_LINE
     538             :          albicei_in  , & ! near-ir ice albedo for h > ahmax   ! LCOV_EXCL_LINE
     539             :          albsnowv_in , & ! cold snow albedo, visible   ! LCOV_EXCL_LINE
     540             :          albsnowi_in , & ! cold snow albedo, near IR   ! LCOV_EXCL_LINE
     541             :          ahmax_in        ! thickness above which ice albedo is constant (m)
     542             :         
     543             :       ! dEdd tuning parameters, set in namelist
     544             :       real (kind=dbl_kind), intent(in), optional :: &
     545             :          R_ice_in    , & ! sea ice tuning parameter; +1 > 1sig increase in albedo   ! LCOV_EXCL_LINE
     546             :          R_pnd_in    , & ! ponded ice tuning parameter; +1 > 1sig increase in albedo   ! LCOV_EXCL_LINE
     547             :          R_snw_in    , & ! snow tuning parameter; +1 > ~.01 change in broadband albedo   ! LCOV_EXCL_LINE
     548             :          dT_mlt_in   , & ! change in temp for non-melt to melt snow grain   ! LCOV_EXCL_LINE
     549             :                          ! radius change (C)
     550             :          rsnw_mlt_in , & ! maximum melting snow grain radius (10^-6 m)
     551             :          kalg_in         ! algae absorption coefficient for 0.5 m thick layer
     552             : 
     553             :       logical (kind=log_kind), intent(in), optional :: &
     554             :          sw_redist_in    ! redistribute shortwave
     555             : 
     556             :       real (kind=dbl_kind), intent(in), optional :: & 
     557             :          sw_frac_in  , & ! Fraction of internal shortwave moved to surface   ! LCOV_EXCL_LINE
     558             :          sw_dtemp_in     ! temperature difference from melting
     559             : 
     560             : !-----------------------------------------------------------------------
     561             : ! Parameters for dynamics
     562             : !-----------------------------------------------------------------------
     563             : 
     564             :       real(kind=dbl_kind), intent(in), optional :: &
     565             :          Cf_in,         & ! ratio of ridging work to PE change in ridging    ! LCOV_EXCL_LINE
     566             :          Pstar_in,      & ! constant in Hibler strength formula    ! LCOV_EXCL_LINE
     567             :          Cstar_in,      & ! constant in Hibler strength formula    ! LCOV_EXCL_LINE
     568             :          dragio_in,     & ! ice-ocn drag coefficient   ! LCOV_EXCL_LINE
     569             :          thickness_ocn_layer1_in, & ! thickness of first ocean level (m)   ! LCOV_EXCL_LINE
     570             :          iceruf_ocn_in, & ! under-ice roughness (m)   ! LCOV_EXCL_LINE
     571             :          gravit_in,     & ! gravitational acceleration (m/s^2)   ! LCOV_EXCL_LINE
     572             :          iceruf_in        ! ice surface roughness (m)
     573             : 
     574             :       integer (kind=int_kind), intent(in), optional :: & ! defined in namelist 
     575             :          kstrength_in  , & ! 0 for simple Hibler (1979) formulation    ! LCOV_EXCL_LINE
     576             :                            ! 1 for Rothrock (1975) pressure formulation 
     577             :          krdg_partic_in, & ! 0 for Thorndike et al. (1975) formulation 
     578             :                            ! 1 for exponential participation function 
     579             :          krdg_redist_in    ! 0 for Hibler (1980) formulation 
     580             :                            ! 1 for exponential redistribution function 
     581             :  
     582             :       real (kind=dbl_kind), intent(in), optional :: &  
     583             :          mu_rdg_in         ! gives e-folding scale of ridged ice (m^.5) 
     584             :                            ! (krdg_redist = 1) 
     585             : 
     586             :       logical (kind=log_kind), intent(in), optional :: &
     587             :          calc_dragio_in    ! if true, calculate dragio from iceruf_ocn and thickness_ocn_layer1
     588             : 
     589             : !-----------------------------------------------------------------------
     590             : ! Parameters for atmosphere
     591             : !-----------------------------------------------------------------------
     592             : 
     593             :       real (kind=dbl_kind), intent(in), optional :: &  
     594             :          cp_air_in,     & ! specific heat of air (J/kg/K)   ! LCOV_EXCL_LINE
     595             :          cp_wv_in,      & ! specific heat of water vapor (J/kg/K)   ! LCOV_EXCL_LINE
     596             :          zvir_in,       & ! rh2o/rair - 1.0   ! LCOV_EXCL_LINE
     597             :          zref_in,       & ! reference height for stability (m)   ! LCOV_EXCL_LINE
     598             :          qqqice_in,     & ! for qsat over ice   ! LCOV_EXCL_LINE
     599             :          TTTice_in,     & ! for qsat over ice   ! LCOV_EXCL_LINE
     600             :          qqqocn_in,     & ! for qsat over ocn   ! LCOV_EXCL_LINE
     601             :          TTTocn_in        ! for qsat over ocn
     602             : 
     603             :       character (len=char_len), intent(in), optional :: &
     604             :          atmbndy_in ! atmo boundary method, 'default' ('ccsm3') or 'constant'
     605             :         
     606             :       logical (kind=log_kind), intent(in), optional :: &
     607             :          calc_strair_in, &  ! if true, calculate wind stress components   ! LCOV_EXCL_LINE
     608             :          formdrag_in,    &  ! if true, calculate form drag   ! LCOV_EXCL_LINE
     609             :          highfreq_in        ! if true, use high frequency coupling
     610             :         
     611             :       integer (kind=int_kind), intent(in), optional :: &
     612             :          natmiter_in        ! number of iterations for boundary layer calculations
     613             :         
     614             :       ! Flux convergence tolerance
     615             :       real (kind=dbl_kind), intent(in), optional :: atmiter_conv_in
     616             : 
     617             : !-----------------------------------------------------------------------
     618             : ! Parameters for the ice thickness distribution
     619             : !-----------------------------------------------------------------------
     620             : 
     621             :       integer (kind=int_kind), intent(in), optional :: &
     622             :          kitd_in        , & ! type of itd conversions   ! LCOV_EXCL_LINE
     623             :                             !   0 = delta function
     624             :                             !   1 = linear remap
     625             :          kcatbound_in       !   0 = old category boundary formula
     626             :                             !   1 = new formula giving round numbers
     627             :                             !   2 = WMO standard
     628             :                             !   3 = asymptotic formula
     629             : 
     630             : !-----------------------------------------------------------------------
     631             : ! Parameters for the floe size distribution
     632             : !-----------------------------------------------------------------------
     633             : 
     634             :       integer (kind=int_kind), intent(in), optional :: &
     635             :          nfreq_in           ! number of frequencies
     636             : 
     637             :       real (kind=dbl_kind), intent(in), optional :: &
     638             :          floeshape_in       ! constant from Steele (unitless)
     639             : 
     640             :       logical (kind=log_kind), intent(in), optional :: &
     641             :          wave_spec_in       ! if true, use wave forcing
     642             : 
     643             :       character (len=char_len), intent(in), optional :: &
     644             :          wave_spec_type_in  ! type of wave spectrum forcing 
     645             : 
     646             : !-----------------------------------------------------------------------
     647             : ! Parameters for biogeochemistry
     648             : !-----------------------------------------------------------------------
     649             : 
     650             :      character(char_len), intent(in), optional :: &     
     651             :         bgc_flux_type_in    ! type of ocean-ice piston velocity 
     652             :                             ! 'constant', 'Jin2006'      
     653             : 
     654             :       logical (kind=log_kind), intent(in), optional :: &
     655             :          z_tracers_in,      & ! if .true., bgc or aerosol tracers are vertically resolved   ! LCOV_EXCL_LINE
     656             :          scale_bgc_in,      & ! if .true., initialize bgc tracers proportionally with salinity   ! LCOV_EXCL_LINE
     657             :          solve_zbgc_in,     & ! if .true., solve vertical biochemistry portion of code   ! LCOV_EXCL_LINE
     658             :          dEdd_algae_in,     & ! if .true., algal absorptionof Shortwave is computed in the   ! LCOV_EXCL_LINE
     659             :          modal_aero_in,     & ! if .true., use modal aerosol formulation in shortwave   ! LCOV_EXCL_LINE
     660             :          conserv_check_in     ! if .true., run conservation checks and abort if checks fail
     661             :         
     662             :       logical (kind=log_kind), intent(in), optional :: & 
     663             :          skl_bgc_in,        &   ! if true, solve skeletal biochemistry   ! LCOV_EXCL_LINE
     664             :          solve_zsal_in          ! if true, update salinity profile from solve_S_dt
     665             : 
     666             :       real (kind=dbl_kind), intent(in), optional :: & 
     667             :          grid_o_in      , & ! for bottom flux           ! LCOV_EXCL_LINE
     668             :          l_sk_in        , & ! characteristic diffusive scale (zsalinity) (m)   ! LCOV_EXCL_LINE
     669             :          initbio_frac_in, & ! fraction of ocean tracer concentration used to initialize tracer    ! LCOV_EXCL_LINE
     670             :          phi_snow_in        ! snow porosity at the ice/snow interface 
     671             : 
     672             :       real (kind=dbl_kind), intent(in), optional :: & 
     673             :          grid_oS_in     , & ! for bottom flux (zsalinity)   ! LCOV_EXCL_LINE
     674             :          l_skS_in           ! 0.02 characteristic skeletal layer thickness (m) (zsalinity)
     675             :       real (kind=dbl_kind), intent(in), optional :: &
     676             :          fr_resp_in           , &   ! fraction of algal growth lost due to respiration   ! LCOV_EXCL_LINE
     677             :          algal_vel_in         , &   ! 0.5 cm/d(m/s) Lavoie 2005  1.5 cm/day   ! LCOV_EXCL_LINE
     678             :          R_dFe2dust_in        , &   !  g/g (3.5% content) Tagliabue 2009   ! LCOV_EXCL_LINE
     679             :          dustFe_sol_in        , &   ! solubility fraction   ! LCOV_EXCL_LINE
     680             :          T_max_in            , & ! maximum temperature (C)   ! LCOV_EXCL_LINE
     681             :          fsal_in             , & ! Salinity limitation (ppt)   ! LCOV_EXCL_LINE
     682             :          op_dep_min_in       , & ! Light attenuates for optical depths exceeding min   ! LCOV_EXCL_LINE
     683             :          fr_graze_s_in       , & ! fraction of grazing spilled or slopped   ! LCOV_EXCL_LINE
     684             :          fr_graze_e_in       , & ! fraction of assimilation excreted    ! LCOV_EXCL_LINE
     685             :          fr_mort2min_in      , & ! fractionation of mortality to Am   ! LCOV_EXCL_LINE
     686             :          fr_dFe_in           , & ! fraction of remineralized nitrogen    ! LCOV_EXCL_LINE
     687             :                                     ! (in units of algal iron)
     688             :          k_nitrif_in         , & ! nitrification rate (1/day)            
     689             :          t_iron_conv_in      , & ! desorption loss pFe to dFe (day)   ! LCOV_EXCL_LINE
     690             :          max_loss_in         , & ! restrict uptake to % of remaining value    ! LCOV_EXCL_LINE
     691             :          max_dfe_doc1_in     , & ! max ratio of dFe to saccharides in the ice    ! LCOV_EXCL_LINE
     692             :                                     ! (nM Fe/muM C)    
     693             :          fr_resp_s_in        , & ! DMSPd fraction of respiration loss as DMSPd
     694             :          y_sk_DMS_in         , & ! fraction conversion given high yield   ! LCOV_EXCL_LINE
     695             :          t_sk_conv_in        , & ! Stefels conversion time (d)   ! LCOV_EXCL_LINE
     696             :          t_sk_ox_in          , & ! DMS oxidation time (d)   ! LCOV_EXCL_LINE
     697             :          frazil_scav_in          ! scavenging fraction or multiple in frazil ice
     698             : 
     699             :       real (kind=dbl_kind), intent(in), optional :: &
     700             :          sk_l_in,       & ! skeletal layer thickness (m)   ! LCOV_EXCL_LINE
     701             :          min_bgc_in       ! fraction of ocean bgc concentration in surface melt
     702             : 
     703             : !-----------------------------------------------------------------------
     704             : ! Parameters for melt ponds
     705             : !-----------------------------------------------------------------------
     706             : 
     707             :       real (kind=dbl_kind), intent(in), optional :: &
     708             :          hs0_in             ! snow depth for transition to bare sea ice (m)
     709             :         
     710             :       ! level-ice ponds
     711             :       character (len=char_len), intent(in), optional :: &
     712             :          frzpnd_in          ! pond refreezing parameterization
     713             :         
     714             :       real (kind=dbl_kind), intent(in), optional :: &
     715             :          dpscale_in, &      ! alter e-folding time scale for flushing    ! LCOV_EXCL_LINE
     716             :          rfracmin_in, &     ! minimum retained fraction of meltwater   ! LCOV_EXCL_LINE
     717             :          rfracmax_in, &     ! maximum retained fraction of meltwater   ! LCOV_EXCL_LINE
     718             :          pndaspect_in, &    ! ratio of pond depth to pond fraction   ! LCOV_EXCL_LINE
     719             :          hs1_in             ! tapering parameter for snow on pond ice
     720             :         
     721             :       ! topo ponds
     722             :       real (kind=dbl_kind), intent(in), optional :: &
     723             :          hp1_in             ! critical parameter for pond ice thickness
     724             : 
     725             : !autodocument_end
     726             : 
     727             :       character(len=*),parameter :: subname='(icepack_init_parameters)'
     728             : 
     729       17276 :       if (present(rhos_in)              ) rhos             = rhos_in
     730       17276 :       if (present(rhoi_in)              ) rhoi             = rhoi_in
     731       17276 :       if (present(rhow_in)              ) rhow             = rhow_in
     732       17276 :       if (present(cp_air_in)            ) cp_air           = cp_air_in
     733       17276 :       if (present(emissivity_in)        ) emissivity       = emissivity_in
     734       17276 :       if (present(floediam_in)          ) floediam         = floediam_in
     735       17276 :       if (present(hfrazilmin_in)        ) hfrazilmin       = hfrazilmin_in
     736       17276 :       if (present(cp_ice_in)            ) cp_ice           = cp_ice_in
     737       17276 :       if (present(cp_ocn_in)            ) cp_ocn           = cp_ocn_in
     738       17276 :       if (present(depressT_in)          ) depressT         = depressT_in
     739       17276 :       if (present(dragio_in)            ) dragio           = dragio_in
     740       17276 :       if (present(iceruf_ocn_in)        ) iceruf_ocn       = iceruf_ocn_in
     741       17276 :       if (present(thickness_ocn_layer1_in) ) thickness_ocn_layer1 = thickness_ocn_layer1_in
     742       17276 :       if (present(calc_dragio_in)       ) calc_dragio      = calc_dragio_in
     743       17276 :       if (present(albocn_in)            ) albocn           = albocn_in
     744       17276 :       if (present(gravit_in)            ) gravit           = gravit_in
     745       17276 :       if (present(viscosity_dyn_in)     ) viscosity_dyn    = viscosity_dyn_in
     746       17276 :       if (present(Tocnfrz_in)           ) Tocnfrz          = Tocnfrz_in
     747       17276 :       if (present(rhofresh_in)          ) rhofresh         = rhofresh_in
     748       17276 :       if (present(zvir_in)              ) zvir             = zvir_in
     749       17276 :       if (present(vonkar_in)            ) vonkar           = vonkar_in
     750       17276 :       if (present(cp_wv_in)             ) cp_wv            = cp_wv_in
     751       17276 :       if (present(stefan_boltzmann_in)  ) stefan_boltzmann = stefan_boltzmann_in
     752       17276 :       if (present(Tffresh_in)           ) Tffresh          = Tffresh_in
     753       17276 :       if (present(Lsub_in)              ) Lsub             = Lsub_in
     754       17276 :       if (present(Lvap_in)              ) Lvap             = Lvap_in
     755       17276 :       if (present(Timelt_in)            ) Timelt           = Timelt_in
     756       17276 :       if (present(Tsmelt_in)            ) Tsmelt           = Tsmelt_in
     757       17276 :       if (present(ice_ref_salinity_in)  ) ice_ref_salinity = ice_ref_salinity_in
     758       17276 :       if (present(iceruf_in)            ) iceruf           = iceruf_in
     759       17276 :       if (present(Cf_in)                ) Cf               = Cf_in
     760       17276 :       if (present(Pstar_in)             ) Pstar            = Pstar_in
     761       17276 :       if (present(Cstar_in)             ) Cstar            = Cstar_in
     762       17276 :       if (present(kappav_in)            ) kappav           = kappav_in
     763       17276 :       if (present(kice_in)              ) kice             = kice_in
     764       17276 :       if (present(kseaice_in)           ) kseaice          = kseaice_in
     765       17276 :       if (present(ksno_in)              ) ksno             = ksno_in
     766       17276 :       if (present(zref_in)              ) zref             = zref_in
     767       17276 :       if (present(hs_min_in)            ) hs_min           = hs_min_in
     768       17276 :       if (present(snowpatch_in)         ) snowpatch        = snowpatch_in
     769       17276 :       if (present(rhosi_in)             ) rhosi            = rhosi_in
     770       17276 :       if (present(sk_l_in)              ) sk_l             = sk_l_in
     771       17276 :       if (present(saltmax_in)           ) saltmax          = saltmax_in
     772       17276 :       if (present(phi_init_in)          ) phi_init         = phi_init_in
     773       17276 :       if (present(min_salin_in)         ) min_salin        = min_salin_in
     774       17276 :       if (present(salt_loss_in)         ) salt_loss        = salt_loss_in
     775       17276 :       if (present(min_bgc_in)           ) min_bgc          = min_bgc_in
     776       17276 :       if (present(dSin0_frazil_in)      ) dSin0_frazil     = dSin0_frazil_in
     777       17276 :       if (present(hi_ssl_in)            ) hi_ssl           = hi_ssl_in
     778       17276 :       if (present(hs_ssl_in)            ) hs_ssl           = hs_ssl_in
     779       17276 :       if (present(awtvdr_in)            ) awtvdr           = awtvdr_in
     780       17276 :       if (present(awtidr_in)            ) awtidr           = awtidr_in
     781       17276 :       if (present(awtvdf_in)            ) awtvdf           = awtvdf_in
     782       17276 :       if (present(awtidf_in)            ) awtidf           = awtidf_in
     783       17276 :       if (present(qqqice_in)            ) qqqice           = qqqice_in
     784       17276 :       if (present(TTTice_in)            ) TTTice           = TTTice_in
     785       17276 :       if (present(qqqocn_in)            ) qqqocn           = qqqocn_in
     786       17276 :       if (present(TTTocn_in)            ) TTTocn           = TTTocn_in
     787       17276 :       if (present(puny_in)              ) puny             = puny_in
     788       17276 :       if (present(bignum_in)            ) bignum           = bignum_in
     789       17276 :       if (present(pi_in)                ) pi               = pi_in
     790       17276 :       if (present(secday_in)            ) secday           = secday_in
     791       17276 :       if (present(ktherm_in)            ) ktherm           = ktherm_in
     792       17276 :       if (present(conduct_in)           ) conduct          = conduct_in
     793       17276 :       if (present(fbot_xfer_type_in)    ) fbot_xfer_type   = fbot_xfer_type_in
     794       17276 :       if (present(heat_capacity_in)     ) heat_capacity    = heat_capacity_in
     795       17276 :       if (present(calc_Tsfc_in)         ) calc_Tsfc        = calc_Tsfc_in
     796       17276 :       if (present(update_ocn_f_in)      ) update_ocn_f     = update_ocn_f_in
     797       17276 :       if (present(dts_b_in)             ) dts_b            = dts_b_in
     798       17276 :       if (present(ustar_min_in)         ) ustar_min        = ustar_min_in
     799       17276 :       if (present(a_rapid_mode_in)      ) a_rapid_mode     = a_rapid_mode_in
     800       17276 :       if (present(Rac_rapid_mode_in)    ) Rac_rapid_mode   = Rac_rapid_mode_in
     801       17276 :       if (present(aspect_rapid_mode_in) ) aspect_rapid_mode= aspect_rapid_mode_in
     802       17276 :       if (present(dSdt_slow_mode_in)    ) dSdt_slow_mode   = dSdt_slow_mode_in
     803       17276 :       if (present(phi_c_slow_mode_in)   ) phi_c_slow_mode  = phi_c_slow_mode_in
     804       17276 :       if (present(phi_i_mushy_in)       ) phi_i_mushy      = phi_i_mushy_in
     805       17276 :       if (present(shortwave_in)         ) shortwave        = shortwave_in
     806       17276 :       if (present(albedo_type_in)       ) albedo_type      = albedo_type_in
     807       17276 :       if (present(albicev_in)           ) albicev          = albicev_in
     808       17276 :       if (present(albicei_in)           ) albicei          = albicei_in
     809       17276 :       if (present(albsnowv_in)          ) albsnowv         = albsnowv_in
     810       17276 :       if (present(albsnowi_in)          ) albsnowi         = albsnowi_in
     811       17276 :       if (present(ahmax_in)             ) ahmax            = ahmax_in
     812       17276 :       if (present(R_ice_in)             ) R_ice            = R_ice_in
     813       17276 :       if (present(R_pnd_in)             ) R_pnd            = R_pnd_in
     814       17276 :       if (present(R_snw_in)             ) R_snw            = R_snw_in
     815       17276 :       if (present(dT_mlt_in)            ) dT_mlt           = dT_mlt_in
     816       17276 :       if (present(rsnw_mlt_in)          ) rsnw_mlt         = rsnw_mlt_in
     817       17276 :       if (present(kalg_in)              ) kalg             = kalg_in
     818       17276 :       if (present(kstrength_in)         ) kstrength        = kstrength_in
     819       17276 :       if (present(krdg_partic_in)       ) krdg_partic      = krdg_partic_in
     820       17276 :       if (present(krdg_redist_in)       ) krdg_redist      = krdg_redist_in
     821       17276 :       if (present(mu_rdg_in)            ) mu_rdg           = mu_rdg_in
     822       17276 :       if (present(atmbndy_in)           ) atmbndy          = atmbndy_in
     823       17276 :       if (present(calc_strair_in)       ) calc_strair      = calc_strair_in
     824       17276 :       if (present(formdrag_in)          ) formdrag         = formdrag_in
     825       17276 :       if (present(highfreq_in)          ) highfreq         = highfreq_in
     826       17276 :       if (present(natmiter_in)          ) natmiter         = natmiter_in
     827       17276 :       if (present(atmiter_conv_in)      ) atmiter_conv     = atmiter_conv_in
     828       17276 :       if (present(tfrz_option_in)       ) tfrz_option      = tfrz_option_in
     829       17276 :       if (present(kitd_in)              ) kitd             = kitd_in
     830       17276 :       if (present(kcatbound_in)         ) kcatbound        = kcatbound_in
     831       17276 :       if (present(floeshape_in)         ) floeshape        = floeshape_in
     832       17276 :       if (present(wave_spec_in)         ) wave_spec        = wave_spec_in
     833       17276 :       if (present(wave_spec_type_in)    ) wave_spec_type   = wave_spec_type_in
     834       17276 :       if (present(nfreq_in)             ) nfreq            = nfreq_in
     835       17276 :       if (present(hs0_in)               ) hs0              = hs0_in
     836       17276 :       if (present(frzpnd_in)            ) frzpnd           = frzpnd_in
     837       17276 :       if (present(dpscale_in)           ) dpscale          = dpscale_in
     838       17276 :       if (present(rfracmin_in)          ) rfracmin         = rfracmin_in
     839       17276 :       if (present(rfracmax_in)          ) rfracmax         = rfracmax_in
     840       17276 :       if (present(pndaspect_in)         ) pndaspect        = pndaspect_in
     841       17276 :       if (present(hs1_in)               ) hs1              = hs1_in
     842       17276 :       if (present(hp1_in)               ) hp1              = hp1_in
     843       17276 :       if (present(bgc_flux_type_in)     ) bgc_flux_type    = bgc_flux_type_in
     844       17276 :       if (present(z_tracers_in)         ) z_tracers        = z_tracers_in
     845       17276 :       if (present(scale_bgc_in)         ) scale_bgc        = scale_bgc_in
     846       17276 :       if (present(solve_zbgc_in)        ) solve_zbgc       = solve_zbgc_in
     847       17276 :       if (present(dEdd_algae_in)        ) dEdd_algae       = dEdd_algae_in
     848       17276 :       if (present(modal_aero_in)        ) modal_aero       = modal_aero_in
     849       17276 :       if (present(conserv_check_in)     ) conserv_check    = conserv_check_in
     850       17276 :       if (present(skl_bgc_in)           ) skl_bgc          = skl_bgc_in
     851       17276 :       if (present(solve_zsal_in)        ) solve_zsal       = solve_zsal_in
     852       17276 :       if (present(grid_o_in)            ) grid_o           = grid_o_in
     853       17276 :       if (present(l_sk_in)              ) l_sk             = l_sk_in
     854       17276 :       if (present(initbio_frac_in)      ) initbio_frac     = initbio_frac_in
     855       17276 :       if (present(grid_oS_in)           ) grid_oS          = grid_oS_in
     856       17276 :       if (present(l_skS_in)             ) l_skS            = l_skS_in
     857       17276 :       if (present(phi_snow_in)          ) phi_snow         = phi_snow_in
     858       17276 :       if (present(fr_resp_in)           ) fr_resp          = fr_resp_in
     859       17276 :       if (present(algal_vel_in)         ) algal_vel        = algal_vel_in
     860       17276 :       if (present(R_dFe2dust_in)        ) R_dFe2dust       = R_dFe2dust_in
     861       17276 :       if (present(dustFe_sol_in)        ) dustFe_sol       = dustFe_sol_in
     862       17276 :       if (present(T_max_in)             ) T_max            = T_max_in
     863       17276 :       if (present(fsal_in)              ) fsal             = fsal_in
     864       17276 :       if (present(op_dep_min_in)        ) op_dep_min       = op_dep_min_in
     865       17276 :       if (present(fr_graze_s_in)        ) fr_graze_s       = fr_graze_s_in
     866       17276 :       if (present(fr_graze_e_in)        ) fr_graze_e       = fr_graze_e_in
     867       17276 :       if (present(fr_mort2min_in)       ) fr_mort2min      = fr_mort2min_in
     868       17276 :       if (present(fr_dFe_in)            ) fr_dFe           = fr_dFe_in
     869       17276 :       if (present(k_nitrif_in)          ) k_nitrif         = k_nitrif_in
     870       17276 :       if (present(t_iron_conv_in)       ) t_iron_conv      = t_iron_conv_in
     871       17276 :       if (present(max_loss_in)          ) max_loss         = max_loss_in
     872       17276 :       if (present(max_dfe_doc1_in)      ) max_dfe_doc1     = max_dfe_doc1_in
     873       17276 :       if (present(fr_resp_s_in)         ) fr_resp_s        = fr_resp_s_in
     874       17276 :       if (present(y_sk_DMS_in)          ) y_sk_DMS         = y_sk_DMS_in
     875       17276 :       if (present(t_sk_conv_in)         ) t_sk_conv        = t_sk_conv_in
     876       17276 :       if (present(t_sk_ox_in)           ) t_sk_ox          = t_sk_ox_in
     877       17276 :       if (present(frazil_scav_in)       ) frazil_scav      = frazil_scav_in
     878       17276 :       if (present(sw_redist_in)         ) sw_redist        = sw_redist_in
     879       17276 :       if (present(sw_frac_in)           ) sw_frac          = sw_frac_in
     880       17276 :       if (present(sw_dtemp_in)          ) sw_dtemp         = sw_dtemp_in
     881             : 
     882       17276 :       call icepack_recompute_constants()
     883       17276 :       if (icepack_warnings_aborted(subname)) return
     884             : 
     885             :       end subroutine icepack_init_parameters
     886             : 
     887             : !=======================================================================
     888             : 
     889             : !autodocument_start icepack_query_parameters
     890             : ! subroutine to query the column package internal parameters
     891             : 
     892 26278904993 :       subroutine icepack_query_parameters(   &
     893             :          puny_out, bignum_out, pi_out, rad_to_deg_out,&   ! LCOV_EXCL_LINE
     894             :          secday_out, c0_out, c1_out, c1p5_out, c2_out, c3_out, c4_out, &   ! LCOV_EXCL_LINE
     895             :          c5_out, c6_out, c8_out, c10_out, c15_out, c16_out, c20_out, &   ! LCOV_EXCL_LINE
     896             :          c25_out, c100_out, c180_out, c1000_out, p001_out, p01_out, p1_out, &   ! LCOV_EXCL_LINE
     897             :          p2_out, p4_out, p5_out, p6_out, p05_out, p15_out, p25_out, p75_out, &   ! LCOV_EXCL_LINE
     898             :          p333_out, p666_out, spval_const_out, pih_out, piq_out, pi2_out, &   ! LCOV_EXCL_LINE
     899             :          rhos_out, rhoi_out, rhow_out, cp_air_out, emissivity_out, &   ! LCOV_EXCL_LINE
     900             :          cp_ice_out, cp_ocn_out, hfrazilmin_out, floediam_out, &   ! LCOV_EXCL_LINE
     901             :          depressT_out, dragio_out, thickness_ocn_layer1_out, iceruf_ocn_out, albocn_out, gravit_out, viscosity_dyn_out, &   ! LCOV_EXCL_LINE
     902             :          Tocnfrz_out, rhofresh_out, zvir_out, vonkar_out, cp_wv_out, &   ! LCOV_EXCL_LINE
     903             :          stefan_boltzmann_out, ice_ref_salinity_out, &   ! LCOV_EXCL_LINE
     904             :          Tffresh_out, Lsub_out, Lvap_out, Timelt_out, Tsmelt_out, &   ! LCOV_EXCL_LINE
     905             :          iceruf_out, Cf_out, Pstar_out, Cstar_out, kappav_out, &   ! LCOV_EXCL_LINE
     906             :          kice_out, kseaice_out, ksno_out, &   ! LCOV_EXCL_LINE
     907             :          zref_out, hs_min_out, snowpatch_out, rhosi_out, sk_l_out, &   ! LCOV_EXCL_LINE
     908             :          saltmax_out, phi_init_out, min_salin_out, salt_loss_out, &   ! LCOV_EXCL_LINE
     909             :          min_bgc_out, dSin0_frazil_out, hi_ssl_out, hs_ssl_out, &   ! LCOV_EXCL_LINE
     910             :          awtvdr_out, awtidr_out, awtvdf_out, awtidf_out, &   ! LCOV_EXCL_LINE
     911             :          qqqice_out, TTTice_out, qqqocn_out, TTTocn_out, update_ocn_f_out, &   ! LCOV_EXCL_LINE
     912             :          Lfresh_out, cprho_out, Cp_out, ustar_min_out, a_rapid_mode_out, &   ! LCOV_EXCL_LINE
     913             :          ktherm_out, conduct_out, fbot_xfer_type_out, calc_Tsfc_out, dts_b_out, &   ! LCOV_EXCL_LINE
     914             :          Rac_rapid_mode_out, aspect_rapid_mode_out, dSdt_slow_mode_out, &   ! LCOV_EXCL_LINE
     915             :          phi_c_slow_mode_out, phi_i_mushy_out, shortwave_out, &   ! LCOV_EXCL_LINE
     916             :          albedo_type_out, albicev_out, albicei_out, albsnowv_out, &   ! LCOV_EXCL_LINE
     917             :          albsnowi_out, ahmax_out, R_ice_out, R_pnd_out, R_snw_out, dT_mlt_out, &   ! LCOV_EXCL_LINE
     918             :          rsnw_mlt_out, dEdd_algae_out, &   ! LCOV_EXCL_LINE
     919             :          kalg_out, kstrength_out, krdg_partic_out, krdg_redist_out, mu_rdg_out, &   ! LCOV_EXCL_LINE
     920             :          atmbndy_out, calc_strair_out, formdrag_out, highfreq_out, natmiter_out, &   ! LCOV_EXCL_LINE
     921             :          atmiter_conv_out, calc_dragio_out, &   ! LCOV_EXCL_LINE
     922             :          tfrz_option_out, kitd_out, kcatbound_out, hs0_out, frzpnd_out, &   ! LCOV_EXCL_LINE
     923             :          floeshape_out, wave_spec_out, wave_spec_type_out, nfreq_out, &   ! LCOV_EXCL_LINE
     924             :          dpscale_out, rfracmin_out, rfracmax_out, pndaspect_out, hs1_out, hp1_out, &   ! LCOV_EXCL_LINE
     925             :          bgc_flux_type_out, z_tracers_out, scale_bgc_out, solve_zbgc_out, &   ! LCOV_EXCL_LINE
     926             :          modal_aero_out, skl_bgc_out, solve_zsal_out, grid_o_out, l_sk_out, &   ! LCOV_EXCL_LINE
     927             :          initbio_frac_out, grid_oS_out, l_skS_out, &   ! LCOV_EXCL_LINE
     928             :          phi_snow_out, heat_capacity_out, conserv_check_out, &   ! LCOV_EXCL_LINE
     929             :          fr_resp_out, algal_vel_out, R_dFe2dust_out, dustFe_sol_out, &   ! LCOV_EXCL_LINE
     930             :          T_max_out, fsal_out, op_dep_min_out, fr_graze_s_out, fr_graze_e_out, &   ! LCOV_EXCL_LINE
     931             :          fr_mort2min_out, fr_resp_s_out, fr_dFe_out, &   ! LCOV_EXCL_LINE
     932             :          k_nitrif_out, t_iron_conv_out, max_loss_out, max_dfe_doc1_out, &   ! LCOV_EXCL_LINE
     933             :          y_sk_DMS_out, t_sk_conv_out, t_sk_ox_out, frazil_scav_out, &   ! LCOV_EXCL_LINE
     934             :          sw_redist_out, sw_frac_out, sw_dtemp_out)
     935             : 
     936             :       !-----------------------------------------------------------------
     937             :       ! parameter constants
     938             :       !-----------------------------------------------------------------
     939             : 
     940             :       real (kind=dbl_kind), intent(out), optional :: &
     941             :          c0_out, c1_out, c1p5_out, c2_out, c3_out, c4_out, &   ! LCOV_EXCL_LINE
     942             :          c5_out, c6_out, c8_out, c10_out, c15_out, c16_out, c20_out, &   ! LCOV_EXCL_LINE
     943             :          c25_out, c180_out, c100_out, c1000_out, p001_out, p01_out, p1_out, &   ! LCOV_EXCL_LINE
     944             :          p2_out, p4_out, p5_out, p6_out, p05_out, p15_out, p25_out, p75_out, &   ! LCOV_EXCL_LINE
     945             :          p333_out, p666_out, spval_const_out, pih_out, piq_out, pi2_out, &   ! LCOV_EXCL_LINE
     946             :          secday_out,     & ! number of seconds per day   ! LCOV_EXCL_LINE
     947             :          puny_out,       & ! a small number   ! LCOV_EXCL_LINE
     948             :          bignum_out,     & ! a big number   ! LCOV_EXCL_LINE
     949             :          pi_out,         & ! pi   ! LCOV_EXCL_LINE
     950             :          rad_to_deg_out, & ! conversion factor from radians to degrees   ! LCOV_EXCL_LINE
     951             :          Lfresh_out,     & ! latent heat of melting of fresh ice (J/kg)   ! LCOV_EXCL_LINE
     952             :          cprho_out,      & ! for ocean mixed layer (J kg / K m^3)   ! LCOV_EXCL_LINE
     953             :          Cp_out            ! proport const for PE 
     954             : 
     955             :       !-----------------------------------------------------------------
     956             :       ! densities
     957             :       !-----------------------------------------------------------------
     958             : 
     959             :       real (kind=dbl_kind), intent(out), optional :: &
     960             :          rhos_out,       & ! density of snow (kg/m^3)   ! LCOV_EXCL_LINE
     961             :          rhoi_out,       & ! density of ice (kg/m^3)   ! LCOV_EXCL_LINE
     962             :          rhosi_out,      & ! average sea ice density (kg/m2)   ! LCOV_EXCL_LINE
     963             :          rhow_out,       & ! density of seawater (kg/m^3)   ! LCOV_EXCL_LINE
     964             :          rhofresh_out      ! density of fresh water (kg/m^3)
     965             : 
     966             : !-----------------------------------------------------------------------
     967             : ! Parameters for thermodynamics
     968             : !-----------------------------------------------------------------------
     969             : 
     970             :       real (kind=dbl_kind), intent(out), optional :: &
     971             :          floediam_out,   & ! effective floe diameter for lateral melt (m)   ! LCOV_EXCL_LINE
     972             :          hfrazilmin_out, & ! min thickness of new frazil ice (m)   ! LCOV_EXCL_LINE
     973             :          cp_ice_out,     & ! specific heat of fresh ice (J/kg/K)   ! LCOV_EXCL_LINE
     974             :          cp_ocn_out,     & ! specific heat of ocn    (J/kg/K)   ! LCOV_EXCL_LINE
     975             :          depressT_out,   & ! Tf:brine salinity ratio (C/ppt)   ! LCOV_EXCL_LINE
     976             :          viscosity_dyn_out, & ! dynamic viscosity of brine (kg/m/s)   ! LCOV_EXCL_LINE
     977             :          Tocnfrz_out,    & ! freezing temp of seawater (C)   ! LCOV_EXCL_LINE
     978             :          Tffresh_out,    & ! freezing temp of fresh ice (K)   ! LCOV_EXCL_LINE
     979             :          Lsub_out,       & ! latent heat, sublimation freshwater (J/kg)   ! LCOV_EXCL_LINE
     980             :          Lvap_out,       & ! latent heat, vaporization freshwater (J/kg)   ! LCOV_EXCL_LINE
     981             :          Timelt_out,     & ! melting temperature, ice top surface  (C)   ! LCOV_EXCL_LINE
     982             :          Tsmelt_out,     & ! melting temperature, snow top surface (C)   ! LCOV_EXCL_LINE
     983             :          ice_ref_salinity_out, & ! (ppt)   ! LCOV_EXCL_LINE
     984             :          kice_out,       & ! thermal conductivity of fresh ice(W/m/deg)   ! LCOV_EXCL_LINE
     985             :          kseaice_out,    & ! thermal conductivity of sea ice (W/m/deg)   ! LCOV_EXCL_LINE
     986             :          ksno_out,       & ! thermal conductivity of snow  (W/m/deg)   ! LCOV_EXCL_LINE
     987             :          hs_min_out,     & ! min snow thickness for computing zTsn (m)   ! LCOV_EXCL_LINE
     988             :          snowpatch_out,  & ! parameter for fractional snow area (m)   ! LCOV_EXCL_LINE
     989             :          saltmax_out,    & ! max salinity at ice base for BL99 (ppt)   ! LCOV_EXCL_LINE
     990             :          phi_init_out,   & ! initial liquid fraction of frazil   ! LCOV_EXCL_LINE
     991             :          min_salin_out,  & ! threshold for brine pocket treatment   ! LCOV_EXCL_LINE
     992             :          salt_loss_out,  & ! fraction of salt retained in zsalinity   ! LCOV_EXCL_LINE
     993             :          dSin0_frazil_out  ! bulk salinity reduction of newly formed frazil
     994             : 
     995             :       integer (kind=int_kind), intent(out), optional :: &
     996             :          ktherm_out         ! type of thermodynamics
     997             :                             ! 0 = 0-layer approximation
     998             :                             ! 1 = Bitz and Lipscomb 1999
     999             :                             ! 2 = mushy layer theory
    1000             : 
    1001             :       character (char_len), intent(out), optional :: &
    1002             :          conduct_out, &     ! 'MU71' or 'bubbly'   ! LCOV_EXCL_LINE
    1003             :          fbot_xfer_type_out ! transfer coefficient type for ice-ocean heat flux
    1004             :         
    1005             :       logical (kind=log_kind), intent(out), optional :: &
    1006             :          heat_capacity_out,&! if true, ice has nonzero heat capacity   ! LCOV_EXCL_LINE
    1007             :                             ! if false, use zero-layer thermodynamics
    1008             :          calc_Tsfc_out    ,&! if true, calculate surface temperature
    1009             :                             ! if false, Tsfc is computed elsewhere and
    1010             :                             ! atmos-ice fluxes are provided to CICE
    1011             :          update_ocn_f_out   ! include fresh water and salt fluxes for frazil
    1012             : 
    1013             :       real (kind=dbl_kind), intent(out), optional :: &
    1014             :          dts_b_out,   &      ! zsalinity timestep   ! LCOV_EXCL_LINE
    1015             :          ustar_min_out       ! minimum friction velocity for ice-ocean heat flux
    1016             :  
    1017             :       ! mushy thermo
    1018             :       real(kind=dbl_kind), intent(out), optional :: &
    1019             :          a_rapid_mode_out      , & ! channel radius for rapid drainage mode (m)   ! LCOV_EXCL_LINE
    1020             :          Rac_rapid_mode_out    , & ! critical Rayleigh number for rapid drainage mode   ! LCOV_EXCL_LINE
    1021             :          aspect_rapid_mode_out , & ! aspect ratio for rapid drainage mode (larger=wider)   ! LCOV_EXCL_LINE
    1022             :          dSdt_slow_mode_out    , & ! slow mode drainage strength (m s-1 K-1)   ! LCOV_EXCL_LINE
    1023             :          phi_c_slow_mode_out   , & ! liquid fraction porosity cutoff for slow mode   ! LCOV_EXCL_LINE
    1024             :          phi_i_mushy_out           ! liquid fraction of congelation ice
    1025             :         
    1026             :       character(len=char_len), intent(out), optional :: &
    1027             :          tfrz_option_out              ! form of ocean freezing temperature
    1028             :                                       ! 'minus1p8' = -1.8 C
    1029             :                                       ! 'linear_salt' = -depressT * sss
    1030             :                                       ! 'mushy' conforms with ktherm=2
    1031             : 
    1032             : !-----------------------------------------------------------------------
    1033             : ! Parameters for radiation
    1034             : !-----------------------------------------------------------------------
    1035             : 
    1036             :       real(kind=dbl_kind), intent(out), optional :: &
    1037             :          emissivity_out, & ! emissivity of snow and ice   ! LCOV_EXCL_LINE
    1038             :          albocn_out,     & ! ocean albedo   ! LCOV_EXCL_LINE
    1039             :          vonkar_out,     & ! von Karman constant   ! LCOV_EXCL_LINE
    1040             :          stefan_boltzmann_out, & !  W/m^2/K^4   ! LCOV_EXCL_LINE
    1041             :          kappav_out,     & ! vis extnctn coef in ice, wvlngth<700nm (1/m)   ! LCOV_EXCL_LINE
    1042             :          hi_ssl_out,     & ! ice surface scattering layer thickness (m)   ! LCOV_EXCL_LINE
    1043             :          hs_ssl_out,     & ! visible, direct    ! LCOV_EXCL_LINE
    1044             :          awtvdr_out,     & ! visible, direct  ! for history and   ! LCOV_EXCL_LINE
    1045             :          awtidr_out,     & ! near IR, direct  ! diagnostics   ! LCOV_EXCL_LINE
    1046             :          awtvdf_out,     & ! visible, diffuse   ! LCOV_EXCL_LINE
    1047             :          awtidf_out        ! near IR, diffuse
    1048             : 
    1049             :       character (len=char_len), intent(out), optional :: &
    1050             :          shortwave_out, & ! shortwave method, 'ccsm3' or 'dEdd'   ! LCOV_EXCL_LINE
    1051             :          albedo_type_out  ! albedo parameterization, 'ccsm3' or 'constant'
    1052             :                              ! shortwave='dEdd' overrides this parameter
    1053             : 
    1054             :       ! baseline albedos for ccsm3 shortwave, set in namelist
    1055             :       real (kind=dbl_kind), intent(out), optional :: &
    1056             :          albicev_out  , & ! visible ice albedo for h > ahmax   ! LCOV_EXCL_LINE
    1057             :          albicei_out  , & ! near-ir ice albedo for h > ahmax   ! LCOV_EXCL_LINE
    1058             :          albsnowv_out , & ! cold snow albedo, visible   ! LCOV_EXCL_LINE
    1059             :          albsnowi_out , & ! cold snow albedo, near IR   ! LCOV_EXCL_LINE
    1060             :          ahmax_out        ! thickness above which ice albedo is constant (m)
    1061             :         
    1062             :       ! dEdd tuning parameters, set in namelist
    1063             :       real (kind=dbl_kind), intent(out), optional :: &
    1064             :          R_ice_out    , & ! sea ice tuning parameter; +1 > 1sig increase in albedo   ! LCOV_EXCL_LINE
    1065             :          R_pnd_out    , & ! ponded ice tuning parameter; +1 > 1sig increase in albedo   ! LCOV_EXCL_LINE
    1066             :          R_snw_out    , & ! snow tuning parameter; +1 > ~.01 change in broadband albedo   ! LCOV_EXCL_LINE
    1067             :          dT_mlt_out   , & ! change in temp for non-melt to melt snow grain    ! LCOV_EXCL_LINE
    1068             :                           ! radius change (C)
    1069             :          rsnw_mlt_out , & ! maximum melting snow grain radius (10^-6 m)
    1070             :          kalg_out         ! algae absorption coefficient for 0.5 m thick layer
    1071             : 
    1072             :       logical (kind=log_kind), intent(out), optional :: &
    1073             :          sw_redist_out    ! redistribute shortwave
    1074             : 
    1075             :       real (kind=dbl_kind), intent(out), optional :: & 
    1076             :          sw_frac_out  , & ! Fraction of internal shortwave moved to surface   ! LCOV_EXCL_LINE
    1077             :          sw_dtemp_out     ! temperature difference from melting
    1078             : 
    1079             : !-----------------------------------------------------------------------
    1080             : ! Parameters for dynamics
    1081             : !-----------------------------------------------------------------------
    1082             : 
    1083             :       real(kind=dbl_kind), intent(out), optional :: &
    1084             :          Cf_out,         & ! ratio of ridging work to PE change in ridging    ! LCOV_EXCL_LINE
    1085             :          Pstar_out,      & ! constant in Hibler strength formula    ! LCOV_EXCL_LINE
    1086             :          Cstar_out,      & ! constant in Hibler strength formula    ! LCOV_EXCL_LINE
    1087             :          dragio_out,     & ! ice-ocn drag coefficient   ! LCOV_EXCL_LINE
    1088             :          thickness_ocn_layer1_out, & ! thickness of first ocean level (m)   ! LCOV_EXCL_LINE
    1089             :          iceruf_ocn_out, & ! under-ice roughness (m)   ! LCOV_EXCL_LINE
    1090             :          gravit_out,     & ! gravitational acceleration (m/s^2)   ! LCOV_EXCL_LINE
    1091             :          iceruf_out        ! ice surface roughness (m)
    1092             : 
    1093             :       integer (kind=int_kind), intent(out), optional :: & ! defined in namelist 
    1094             :          kstrength_out  , & ! 0 for simple Hibler (1979) formulation    ! LCOV_EXCL_LINE
    1095             :                             ! 1 for Rothrock (1975) pressure formulation 
    1096             :          krdg_partic_out, & ! 0 for Thorndike et al. (1975) formulation 
    1097             :                             ! 1 for exponential participation function 
    1098             :          krdg_redist_out    ! 0 for Hibler (1980) formulation 
    1099             :                             ! 1 for exponential redistribution function 
    1100             :  
    1101             :       real (kind=dbl_kind), intent(out), optional :: &  
    1102             :          mu_rdg_out         ! gives e-folding scale of ridged ice (m^.5) 
    1103             :                             ! (krdg_redist = 1) 
    1104             : 
    1105             :       logical (kind=log_kind), intent(out), optional :: &
    1106             :          calc_dragio_out    ! if true, compute dragio from iceruf_ocn and thickness_ocn_layer1
    1107             : 
    1108             : !-----------------------------------------------------------------------
    1109             : ! Parameters for atmosphere
    1110             : !-----------------------------------------------------------------------
    1111             : 
    1112             :       real (kind=dbl_kind), intent(out), optional :: &  
    1113             :          cp_air_out,     & ! specific heat of air (J/kg/K)   ! LCOV_EXCL_LINE
    1114             :          cp_wv_out,      & ! specific heat of water vapor (J/kg/K)   ! LCOV_EXCL_LINE
    1115             :          zvir_out,       & ! rh2o/rair - 1.0   ! LCOV_EXCL_LINE
    1116             :          zref_out,       & ! reference height for stability (m)   ! LCOV_EXCL_LINE
    1117             :          qqqice_out,     & ! for qsat over ice   ! LCOV_EXCL_LINE
    1118             :          TTTice_out,     & ! for qsat over ice   ! LCOV_EXCL_LINE
    1119             :          qqqocn_out,     & ! for qsat over ocn   ! LCOV_EXCL_LINE
    1120             :          TTTocn_out        ! for qsat over ocn
    1121             : 
    1122             :       character (len=char_len), intent(out), optional :: &
    1123             :          atmbndy_out ! atmo boundary method, 'default' ('ccsm3') or 'constant'
    1124             :         
    1125             :       logical (kind=log_kind), intent(out), optional :: &
    1126             :          calc_strair_out, &  ! if true, calculate wind stress components   ! LCOV_EXCL_LINE
    1127             :          formdrag_out,    &  ! if true, calculate form drag   ! LCOV_EXCL_LINE
    1128             :          highfreq_out        ! if true, use high frequency coupling
    1129             :         
    1130             :       integer (kind=int_kind), intent(out), optional :: &
    1131             :          natmiter_out        ! number of iterations for boundary layer calculations
    1132             :         
    1133             :       ! Flux convergence tolerance
    1134             :       real (kind=dbl_kind), intent(out), optional :: atmiter_conv_out
    1135             : 
    1136             : !-----------------------------------------------------------------------
    1137             : ! Parameters for the ice thickness distribution
    1138             : !-----------------------------------------------------------------------
    1139             : 
    1140             :       integer (kind=int_kind), intent(out), optional :: &
    1141             :          kitd_out        , & ! type of itd conversions   ! LCOV_EXCL_LINE
    1142             :                              !   0 = delta function
    1143             :                              !   1 = linear remap
    1144             :          kcatbound_out       !   0 = old category boundary formula
    1145             :                              !   1 = new formula giving round numbers
    1146             :                              !   2 = WMO standard
    1147             :                              !   3 = asymptotic formula
    1148             : 
    1149             : !-----------------------------------------------------------------------
    1150             : ! Parameters for the floe size distribution
    1151             : !-----------------------------------------------------------------------
    1152             : 
    1153             :       integer (kind=int_kind), intent(out), optional :: &
    1154             :          nfreq_out          ! number of frequencies
    1155             : 
    1156             :       real (kind=dbl_kind), intent(out), optional :: &
    1157             :          floeshape_out      ! constant from Steele (unitless)
    1158             : 
    1159             :       logical (kind=log_kind), intent(out), optional :: &
    1160             :          wave_spec_out      ! if true, use wave forcing
    1161             : 
    1162             :       character (len=char_len), intent(out), optional :: &
    1163             :          wave_spec_type_out ! type of wave spectrum forcing
    1164             : 
    1165             : !-----------------------------------------------------------------------
    1166             : ! Parameters for biogeochemistry
    1167             : !-----------------------------------------------------------------------
    1168             : 
    1169             :       character(char_len), intent(out), optional :: &     
    1170             :          bgc_flux_type_out    ! type of ocean-ice piston velocity 
    1171             :                               ! 'constant', 'Jin2006'      
    1172             : 
    1173             :       logical (kind=log_kind), intent(out), optional :: &
    1174             :          z_tracers_out,      & ! if .true., bgc or aerosol tracers are vertically resolved   ! LCOV_EXCL_LINE
    1175             :          scale_bgc_out,      & ! if .true., initialize bgc tracers proportionally with salinity   ! LCOV_EXCL_LINE
    1176             :          solve_zbgc_out,     & ! if .true., solve vertical biochemistry portion of code   ! LCOV_EXCL_LINE
    1177             :          dEdd_algae_out,     & ! if .true., algal absorptionof Shortwave is computed in the   ! LCOV_EXCL_LINE
    1178             :          modal_aero_out,     & ! if .true., use modal aerosol formulation in shortwave   ! LCOV_EXCL_LINE
    1179             :          conserv_check_out     ! if .true., run conservation checks and abort if checks fail
    1180             :         
    1181             :       logical (kind=log_kind), intent(out), optional :: & 
    1182             :          skl_bgc_out,        &   ! if true, solve skeletal biochemistry   ! LCOV_EXCL_LINE
    1183             :          solve_zsal_out          ! if true, update salinity profile from solve_S_dt
    1184             : 
    1185             :       real (kind=dbl_kind), intent(out), optional :: & 
    1186             :          grid_o_out      , & ! for bottom flux           ! LCOV_EXCL_LINE
    1187             :          l_sk_out        , & ! characteristic diffusive scale (zsalinity) (m)   ! LCOV_EXCL_LINE
    1188             :          initbio_frac_out, & ! fraction of ocean tracer concentration used to initialize tracer    ! LCOV_EXCL_LINE
    1189             :          phi_snow_out        ! snow porosity at the ice/snow interface 
    1190             : 
    1191             :       real (kind=dbl_kind), intent(out), optional :: & 
    1192             :          grid_oS_out     , & ! for bottom flux (zsalinity)   ! LCOV_EXCL_LINE
    1193             :          l_skS_out           ! 0.02 characteristic skeletal layer thickness (m) (zsalinity)
    1194             :       real (kind=dbl_kind), intent(out), optional :: &
    1195             :          fr_resp_out           , &   ! fraction of algal growth lost due to respiration   ! LCOV_EXCL_LINE
    1196             :          algal_vel_out         , &   ! 0.5 cm/d(m/s) Lavoie 2005  1.5 cm/day   ! LCOV_EXCL_LINE
    1197             :          R_dFe2dust_out        , &   !  g/g (3.5% content) Tagliabue 2009   ! LCOV_EXCL_LINE
    1198             :          dustFe_sol_out        , &   ! solubility fraction   ! LCOV_EXCL_LINE
    1199             :          T_max_out            , & ! maximum temperature (C)   ! LCOV_EXCL_LINE
    1200             :          fsal_out             , & ! Salinity limitation (ppt)   ! LCOV_EXCL_LINE
    1201             :          op_dep_min_out       , & ! Light attenuates for optical depths exceeding min   ! LCOV_EXCL_LINE
    1202             :          fr_graze_s_out       , & ! fraction of grazing spilled or slopped   ! LCOV_EXCL_LINE
    1203             :          fr_graze_e_out       , & ! fraction of assimilation excreted    ! LCOV_EXCL_LINE
    1204             :          fr_mort2min_out      , & ! fractionation of mortality to Am   ! LCOV_EXCL_LINE
    1205             :          fr_dFe_out           , & ! fraction of remineralized nitrogen    ! LCOV_EXCL_LINE
    1206             :                                     ! (in units of algal iron)
    1207             :          k_nitrif_out         , & ! nitrification rate (1/day)            
    1208             :          t_iron_conv_out      , & ! desorption loss pFe to dFe (day)   ! LCOV_EXCL_LINE
    1209             :          max_loss_out         , & ! restrict uptake to % of remaining value    ! LCOV_EXCL_LINE
    1210             :          max_dfe_doc1_out     , & ! max ratio of dFe to saccharides in the ice    ! LCOV_EXCL_LINE
    1211             :                                     ! (nM Fe/muM C)    
    1212             :          fr_resp_s_out        , & ! DMSPd fraction of respiration loss as DMSPd
    1213             :          y_sk_DMS_out         , & ! fraction conversion given high yield   ! LCOV_EXCL_LINE
    1214             :          t_sk_conv_out        , & ! Stefels conversion time (d)   ! LCOV_EXCL_LINE
    1215             :          t_sk_ox_out          , & ! DMS oxidation time (d)   ! LCOV_EXCL_LINE
    1216             :          frazil_scav_out          ! scavenging fraction or multiple in frazil ice
    1217             : 
    1218             :       real (kind=dbl_kind), intent(out), optional :: &
    1219             :          sk_l_out,       & ! skeletal layer thickness (m)   ! LCOV_EXCL_LINE
    1220             :          min_bgc_out       ! fraction of ocean bgc concentration in surface melt
    1221             : 
    1222             : !-----------------------------------------------------------------------
    1223             : ! Parameters for melt ponds
    1224             : !-----------------------------------------------------------------------
    1225             : 
    1226             :       real (kind=dbl_kind), intent(out), optional :: &
    1227             :          hs0_out             ! snow depth for transition to bare sea ice (m)
    1228             :         
    1229             :       ! level-ice ponds
    1230             :       character (len=char_len), intent(out), optional :: &
    1231             :          frzpnd_out          ! pond refreezing parameterization
    1232             :         
    1233             :       real (kind=dbl_kind), intent(out), optional :: &
    1234             :          dpscale_out, &      ! alter e-folding time scale for flushing    ! LCOV_EXCL_LINE
    1235             :          rfracmin_out, &     ! minimum retained fraction of meltwater   ! LCOV_EXCL_LINE
    1236             :          rfracmax_out, &     ! maximum retained fraction of meltwater   ! LCOV_EXCL_LINE
    1237             :          pndaspect_out, &    ! ratio of pond depth to pond fraction   ! LCOV_EXCL_LINE
    1238             :          hs1_out             ! tapering parameter for snow on pond ice
    1239             :         
    1240             :       ! topo ponds
    1241             :       real (kind=dbl_kind), intent(out), optional :: &
    1242             :          hp1_out             ! critical parameter for pond ice thickness
    1243             : 
    1244             : !autodocument_end
    1245             : 
    1246             :       character(len=*),parameter :: subname='(icepack_query_parameters)'
    1247             : 
    1248 26278904993 :       if (present(puny_out)              ) puny_out         = puny
    1249 26278904993 :       if (present(bignum_out)            ) bignum_out       = bignum
    1250 26278904993 :       if (present(pi_out)                ) pi_out           = pi
    1251             : 
    1252 26278904993 :       if (present(c0_out)                ) c0_out           = c0
    1253 26278904993 :       if (present(c1_out)                ) c1_out           = c1
    1254 26278904993 :       if (present(c1p5_out)              ) c1p5_out         = c1p5
    1255 26278904993 :       if (present(c2_out)                ) c2_out           = c2
    1256 26278904993 :       if (present(c3_out)                ) c3_out           = c3
    1257 26278904993 :       if (present(c4_out)                ) c4_out           = c4
    1258 26278904993 :       if (present(c5_out)                ) c5_out           = c5
    1259 26278904993 :       if (present(c6_out)                ) c6_out           = c6
    1260 26278904993 :       if (present(c8_out)                ) c8_out           = c8
    1261 26278904993 :       if (present(c10_out)               ) c10_out          = c10
    1262 26278904993 :       if (present(c15_out)               ) c15_out          = c15
    1263 26278904993 :       if (present(c16_out)               ) c16_out          = c16
    1264 26278904993 :       if (present(c20_out)               ) c20_out          = c20
    1265 26278904993 :       if (present(c25_out)               ) c25_out          = c25
    1266 26278904993 :       if (present(c100_out)              ) c100_out         = c100
    1267 26278904993 :       if (present(c180_out)              ) c180_out         = c180
    1268 26278904993 :       if (present(c1000_out)             ) c1000_out        = c1000
    1269 26278904993 :       if (present(p001_out)              ) p001_out         = p001
    1270 26278904993 :       if (present(p01_out)               ) p01_out          = p01
    1271 26278904993 :       if (present(p1_out)                ) p1_out           = p1
    1272 26278904993 :       if (present(p2_out)                ) p2_out           = p2
    1273 26278904993 :       if (present(p4_out)                ) p4_out           = p4
    1274 26278904993 :       if (present(p5_out)                ) p5_out           = p5
    1275 26278904993 :       if (present(p6_out)                ) p6_out           = p6
    1276 26278904993 :       if (present(p05_out)               ) p05_out          = p05
    1277 26278904993 :       if (present(p15_out)               ) p15_out          = p15
    1278 26278904993 :       if (present(p25_out)               ) p25_out          = p25
    1279 26278904993 :       if (present(p75_out)               ) p75_out          = p75
    1280 26278904993 :       if (present(p333_out)              ) p333_out         = p333
    1281 26278904993 :       if (present(p666_out)              ) p666_out         = p666
    1282 26278904993 :       if (present(spval_const_out)       ) spval_const_out  = spval_const
    1283 26278904993 :       if (present(pih_out)               ) pih_out          = pih
    1284 26278904993 :       if (present(piq_out)               ) piq_out          = piq
    1285 26278904993 :       if (present(pi2_out)               ) pi2_out          = pi2
    1286 26278904993 :       if (present(secday_out)            ) secday_out       = secday
    1287 26278904993 :       if (present(rad_to_deg_out)        ) rad_to_deg_out   = rad_to_deg
    1288             : 
    1289 26278904993 :       if (present(rhos_out)              ) rhos_out         = rhos
    1290 26278904993 :       if (present(rhoi_out)              ) rhoi_out         = rhoi
    1291 26278904993 :       if (present(rhow_out)              ) rhow_out         = rhow
    1292 26278904993 :       if (present(cp_air_out)            ) cp_air_out       = cp_air
    1293 26278904993 :       if (present(emissivity_out)        ) emissivity_out   = emissivity
    1294 26278904993 :       if (present(floediam_out)          ) floediam_out     = floediam
    1295 26278904993 :       if (present(hfrazilmin_out)        ) hfrazilmin_out   = hfrazilmin
    1296 26278904993 :       if (present(cp_ice_out)            ) cp_ice_out       = cp_ice
    1297 26278904993 :       if (present(cp_ocn_out)            ) cp_ocn_out       = cp_ocn
    1298 26278904993 :       if (present(depressT_out)          ) depressT_out     = depressT
    1299 26278904993 :       if (present(dragio_out)            ) dragio_out       = dragio
    1300 26278904993 :       if (present(iceruf_ocn_out)        ) iceruf_ocn_out   = iceruf_ocn
    1301 26278904993 :       if (present(thickness_ocn_layer1_out) ) thickness_ocn_layer1_out = thickness_ocn_layer1
    1302 26278904993 :       if (present(calc_dragio_out)       ) calc_dragio_out  = calc_dragio
    1303 26278904993 :       if (present(albocn_out)            ) albocn_out       = albocn
    1304 26278904993 :       if (present(gravit_out)            ) gravit_out       = gravit
    1305 26278904993 :       if (present(viscosity_dyn_out)     ) viscosity_dyn_out= viscosity_dyn
    1306 26278904993 :       if (present(Tocnfrz_out)           ) Tocnfrz_out      = Tocnfrz
    1307 26278904993 :       if (present(rhofresh_out)          ) rhofresh_out     = rhofresh
    1308 26278904993 :       if (present(zvir_out)              ) zvir_out         = zvir
    1309 26278904993 :       if (present(vonkar_out)            ) vonkar_out       = vonkar
    1310 26278904993 :       if (present(cp_wv_out)             ) cp_wv_out        = cp_wv
    1311 26278904993 :       if (present(stefan_boltzmann_out)  ) stefan_boltzmann_out = stefan_boltzmann
    1312 26278904993 :       if (present(Tffresh_out)           ) Tffresh_out      = Tffresh
    1313 26278904993 :       if (present(Lsub_out)              ) Lsub_out         = Lsub
    1314 26278904993 :       if (present(Lvap_out)              ) Lvap_out         = Lvap
    1315 26278904993 :       if (present(Timelt_out)            ) Timelt_out       = Timelt
    1316 26278904993 :       if (present(Tsmelt_out)            ) Tsmelt_out       = Tsmelt
    1317 26278904993 :       if (present(ice_ref_salinity_out)  ) ice_ref_salinity_out = ice_ref_salinity
    1318 26278904993 :       if (present(iceruf_out)            ) iceruf_out       = iceruf
    1319 26278904993 :       if (present(Cf_out)                ) Cf_out           = Cf
    1320 26278904993 :       if (present(Pstar_out)             ) Pstar_out        = Pstar
    1321 26278904993 :       if (present(Cstar_out)             ) Cstar_out        = Cstar
    1322 26278904993 :       if (present(kappav_out)            ) kappav_out       = kappav
    1323 26278904993 :       if (present(kice_out)              ) kice_out         = kice
    1324 26278904993 :       if (present(kseaice_out)           ) kseaice_out      = kseaice
    1325 26278904993 :       if (present(ksno_out)              ) ksno_out         = ksno
    1326 26278904993 :       if (present(zref_out)              ) zref_out         = zref
    1327 26278904993 :       if (present(hs_min_out)            ) hs_min_out       = hs_min
    1328 26278904993 :       if (present(snowpatch_out)         ) snowpatch_out    = snowpatch
    1329 26278904993 :       if (present(rhosi_out)             ) rhosi_out        = rhosi
    1330 26278904993 :       if (present(sk_l_out)              ) sk_l_out         = sk_l
    1331 26278904993 :       if (present(saltmax_out)           ) saltmax_out      = saltmax
    1332 26278904993 :       if (present(phi_init_out)          ) phi_init_out     = phi_init
    1333 26278904993 :       if (present(min_salin_out)         ) min_salin_out    = min_salin
    1334 26278904993 :       if (present(salt_loss_out)         ) salt_loss_out    = salt_loss
    1335 26278904993 :       if (present(min_bgc_out)           ) min_bgc_out      = min_bgc
    1336 26278904993 :       if (present(dSin0_frazil_out)      ) dSin0_frazil_out = dSin0_frazil
    1337 26278904993 :       if (present(hi_ssl_out)            ) hi_ssl_out       = hi_ssl
    1338 26278904993 :       if (present(hs_ssl_out)            ) hs_ssl_out       = hs_ssl
    1339 26278904993 :       if (present(awtvdr_out)            ) awtvdr_out       = awtvdr
    1340 26278904993 :       if (present(awtidr_out)            ) awtidr_out       = awtidr
    1341 26278904993 :       if (present(awtvdf_out)            ) awtvdf_out       = awtvdf
    1342 26278904993 :       if (present(awtidf_out)            ) awtidf_out       = awtidf
    1343 26278904993 :       if (present(qqqice_out)            ) qqqice_out       = qqqice
    1344 26278904993 :       if (present(TTTice_out)            ) TTTice_out       = TTTice
    1345 26278904993 :       if (present(qqqocn_out)            ) qqqocn_out       = qqqocn
    1346 26278904993 :       if (present(TTTocn_out)            ) TTTocn_out       = TTTocn
    1347 26278904993 :       if (present(puny_out)              ) puny_out         = puny
    1348 26278904993 :       if (present(bignum_out)            ) bignum_out       = bignum
    1349 26278904993 :       if (present(pi_out)                ) pi_out           = pi
    1350 26278904993 :       if (present(secday_out)            ) secday_out       = secday
    1351 26278904993 :       if (present(ktherm_out)            ) ktherm_out       = ktherm
    1352 26278904993 :       if (present(conduct_out)           ) conduct_out      = conduct
    1353 26278904993 :       if (present(fbot_xfer_type_out)    ) fbot_xfer_type_out = fbot_xfer_type
    1354 26278904993 :       if (present(heat_capacity_out)     ) heat_capacity_out= heat_capacity
    1355 26278904993 :       if (present(calc_Tsfc_out)         ) calc_Tsfc_out    = calc_Tsfc
    1356 26278904993 :       if (present(update_ocn_f_out)      ) update_ocn_f_out = update_ocn_f
    1357 26278904993 :       if (present(dts_b_out)             ) dts_b_out        = dts_b
    1358 26278904993 :       if (present(ustar_min_out)         ) ustar_min_out    = ustar_min
    1359 26278904993 :       if (present(a_rapid_mode_out)      ) a_rapid_mode_out = a_rapid_mode
    1360 26278904993 :       if (present(Rac_rapid_mode_out)    ) Rac_rapid_mode_out = Rac_rapid_mode
    1361 26278904993 :       if (present(aspect_rapid_mode_out) ) aspect_rapid_mode_out = aspect_rapid_mode
    1362 26278904993 :       if (present(dSdt_slow_mode_out)    ) dSdt_slow_mode_out = dSdt_slow_mode
    1363 26278904993 :       if (present(phi_c_slow_mode_out)   ) phi_c_slow_mode_out = phi_c_slow_mode
    1364 26278904993 :       if (present(phi_i_mushy_out)       ) phi_i_mushy_out  = phi_i_mushy
    1365 26278904993 :       if (present(shortwave_out)         ) shortwave_out    = shortwave
    1366 26278904993 :       if (present(albedo_type_out)       ) albedo_type_out  = albedo_type
    1367 26278904993 :       if (present(albicev_out)           ) albicev_out      = albicev
    1368 26278904993 :       if (present(albicei_out)           ) albicei_out      = albicei
    1369 26278904993 :       if (present(albsnowv_out)          ) albsnowv_out     = albsnowv
    1370 26278904993 :       if (present(albsnowi_out)          ) albsnowi_out     = albsnowi
    1371 26278904993 :       if (present(ahmax_out)             ) ahmax_out        = ahmax
    1372 26278904993 :       if (present(R_ice_out)             ) R_ice_out        = R_ice
    1373 26278904993 :       if (present(R_pnd_out)             ) R_pnd_out        = R_pnd
    1374 26278904993 :       if (present(R_snw_out)             ) R_snw_out        = R_snw
    1375 26278904993 :       if (present(dT_mlt_out)            ) dT_mlt_out       = dT_mlt
    1376 26278904993 :       if (present(rsnw_mlt_out)          ) rsnw_mlt_out     = rsnw_mlt
    1377 26278904993 :       if (present(kalg_out)              ) kalg_out         = kalg
    1378 26278904993 :       if (present(kstrength_out)         ) kstrength_out    = kstrength
    1379 26278904993 :       if (present(krdg_partic_out)       ) krdg_partic_out  = krdg_partic
    1380 26278904993 :       if (present(krdg_redist_out)       ) krdg_redist_out  = krdg_redist
    1381 26278904993 :       if (present(mu_rdg_out)            ) mu_rdg_out       = mu_rdg
    1382 26278904993 :       if (present(atmbndy_out)           ) atmbndy_out      = atmbndy
    1383 26278904993 :       if (present(calc_strair_out)       ) calc_strair_out  = calc_strair
    1384 26278904993 :       if (present(formdrag_out)          ) formdrag_out     = formdrag
    1385 26278904993 :       if (present(highfreq_out)          ) highfreq_out     = highfreq
    1386 26278904993 :       if (present(natmiter_out)          ) natmiter_out     = natmiter
    1387 26278904993 :       if (present(atmiter_conv_out)      ) atmiter_conv_out = atmiter_conv
    1388 26278904993 :       if (present(tfrz_option_out)       ) tfrz_option_out  = tfrz_option
    1389 26278904993 :       if (present(kitd_out)              ) kitd_out         = kitd
    1390 26278904993 :       if (present(kcatbound_out)         ) kcatbound_out    = kcatbound
    1391 26278904993 :       if (present(floeshape_out)         ) floeshape_out    = floeshape
    1392 26278904993 :       if (present(wave_spec_out)         ) wave_spec_out    = wave_spec
    1393 26278904993 :       if (present(wave_spec_type_out)    ) wave_spec_type_out = wave_spec_type
    1394 26278904993 :       if (present(nfreq_out)             ) nfreq_out        = nfreq
    1395 26278904993 :       if (present(hs0_out)               ) hs0_out          = hs0
    1396 26278904993 :       if (present(frzpnd_out)            ) frzpnd_out       = frzpnd
    1397 26278904993 :       if (present(dpscale_out)           ) dpscale_out      = dpscale
    1398 26278904993 :       if (present(rfracmin_out)          ) rfracmin_out     = rfracmin
    1399 26278904993 :       if (present(rfracmax_out)          ) rfracmax_out     = rfracmax
    1400 26278904993 :       if (present(pndaspect_out)         ) pndaspect_out    = pndaspect
    1401 26278904993 :       if (present(hs1_out)               ) hs1_out          = hs1
    1402 26278904993 :       if (present(hp1_out)               ) hp1_out          = hp1
    1403 26278904993 :       if (present(bgc_flux_type_out)     ) bgc_flux_type_out= bgc_flux_type
    1404 26278904993 :       if (present(z_tracers_out)         ) z_tracers_out    = z_tracers
    1405 26278904993 :       if (present(scale_bgc_out)         ) scale_bgc_out    = scale_bgc
    1406 26278904993 :       if (present(solve_zbgc_out)        ) solve_zbgc_out   = solve_zbgc
    1407 26278904993 :       if (present(dEdd_algae_out)        ) dEdd_algae_out   = dEdd_algae
    1408 26278904993 :       if (present(modal_aero_out)        ) modal_aero_out   = modal_aero
    1409 26278904993 :       if (present(conserv_check_out)     ) conserv_check_out= conserv_check
    1410 26278904993 :       if (present(skl_bgc_out)           ) skl_bgc_out      = skl_bgc
    1411 26278904993 :       if (present(solve_zsal_out)        ) solve_zsal_out   = solve_zsal
    1412 26278904993 :       if (present(grid_o_out)            ) grid_o_out       = grid_o
    1413 26278904993 :       if (present(l_sk_out)              ) l_sk_out         = l_sk
    1414 26278904993 :       if (present(initbio_frac_out)      ) initbio_frac_out = initbio_frac
    1415 26278904993 :       if (present(grid_oS_out)           ) grid_oS_out      = grid_oS
    1416 26278904993 :       if (present(l_skS_out)             ) l_skS_out        = l_skS
    1417 26278904993 :       if (present(phi_snow_out)          ) phi_snow_out     = phi_snow
    1418 26278904993 :       if (present(fr_resp_out)           ) fr_resp_out      = fr_resp
    1419 26278904993 :       if (present(algal_vel_out)         ) algal_vel_out    = algal_vel
    1420 26278904993 :       if (present(R_dFe2dust_out)        ) R_dFe2dust_out   = R_dFe2dust
    1421 26278904993 :       if (present(dustFe_sol_out)        ) dustFe_sol_out   = dustFe_sol
    1422 26278904993 :       if (present(T_max_out)             ) T_max_out        = T_max
    1423 26278904993 :       if (present(fsal_out)              ) fsal_out         = fsal
    1424 26278904993 :       if (present(op_dep_min_out)        ) op_dep_min_out   = op_dep_min
    1425 26278904993 :       if (present(fr_graze_s_out)        ) fr_graze_s_out   = fr_graze_s
    1426 26278904993 :       if (present(fr_graze_e_out)        ) fr_graze_e_out   = fr_graze_e
    1427 26278904993 :       if (present(fr_mort2min_out)       ) fr_mort2min_out  = fr_mort2min
    1428 26278904993 :       if (present(fr_dFe_out)            ) fr_dFe_out       = fr_dFe
    1429 26278904993 :       if (present(k_nitrif_out)          ) k_nitrif_out     = k_nitrif
    1430 26278904993 :       if (present(t_iron_conv_out)       ) t_iron_conv_out  = t_iron_conv
    1431 26278904993 :       if (present(max_loss_out)          ) max_loss_out     = max_loss
    1432 26278904993 :       if (present(max_dfe_doc1_out)      ) max_dfe_doc1_out = max_dfe_doc1
    1433 26278904993 :       if (present(fr_resp_s_out)         ) fr_resp_s_out    = fr_resp_s
    1434 26278904993 :       if (present(y_sk_DMS_out)          ) y_sk_DMS_out     = y_sk_DMS
    1435 26278904993 :       if (present(t_sk_conv_out)         ) t_sk_conv_out    = t_sk_conv
    1436 26278904993 :       if (present(t_sk_ox_out)           ) t_sk_ox_out      = t_sk_ox
    1437 26278904993 :       if (present(frazil_scav_out)       ) frazil_scav_out  = frazil_scav
    1438 26278904993 :       if (present(Lfresh_out)            ) Lfresh_out       = Lfresh
    1439 26278904993 :       if (present(cprho_out)             ) cprho_out        = cprho
    1440 26278904993 :       if (present(Cp_out)                ) Cp_out           = Cp
    1441 26278904993 :       if (present(sw_redist_out)         ) sw_redist_out    = sw_redist
    1442 26278904993 :       if (present(sw_frac_out)           ) sw_frac_out      = sw_frac
    1443 26278904993 :       if (present(sw_dtemp_out)          ) sw_dtemp_out     = sw_dtemp
    1444             : 
    1445 26278904993 :       call icepack_recompute_constants()
    1446 26278904993 :       if (icepack_warnings_aborted(subname)) return
    1447             : 
    1448        2916 :       end subroutine icepack_query_parameters
    1449             : 
    1450             : !=======================================================================
    1451             : 
    1452             : !autodocument_start icepack_write_parameters
    1453             : ! subroutine to write the column package internal parameters
    1454             : 
    1455           0 :       subroutine icepack_write_parameters(iounit)
    1456             : 
    1457             :         integer (kind=int_kind), intent(in) :: &
    1458             :              iounit   ! unit number for output
    1459             : 
    1460             : !autodocument_end
    1461             : 
    1462             :         character(len=*),parameter :: subname='(icepack_write_parameters)'
    1463             : 
    1464           0 :         write(iounit,*) subname
    1465           0 :         write(iounit,*) "  rhos   = ",rhos
    1466           0 :         write(iounit,*) "  rhoi   = ",rhoi
    1467           0 :         write(iounit,*) "  rhow   = ",rhow
    1468           0 :         write(iounit,*) "  cp_air = ",cp_air
    1469           0 :         write(iounit,*) "  emissivity = ",emissivity
    1470           0 :         write(iounit,*) "  floediam   = ",floediam
    1471           0 :         write(iounit,*) "  hfrazilmin = ",hfrazilmin
    1472           0 :         write(iounit,*) "  cp_ice = ",cp_ice
    1473           0 :         write(iounit,*) "  cp_ocn = ",cp_ocn
    1474           0 :         write(iounit,*) "  depressT = ",depressT
    1475           0 :         write(iounit,*) "  dragio = ",dragio
    1476           0 :         write(iounit,*) "  calc_dragio = ",calc_dragio
    1477           0 :         write(iounit,*) "  iceruf_ocn = ",iceruf_ocn
    1478           0 :         write(iounit,*) "  thickness_ocn_layer1 = ",thickness_ocn_layer1
    1479           0 :         write(iounit,*) "  albocn = ",albocn
    1480           0 :         write(iounit,*) "  gravit = ",gravit
    1481           0 :         write(iounit,*) "  viscosity_dyn = ",viscosity_dyn
    1482           0 :         write(iounit,*) "  Tocnfrz = ",Tocnfrz
    1483           0 :         write(iounit,*) "  rhofresh = ",rhofresh
    1484           0 :         write(iounit,*) "  zvir   = ",zvir
    1485           0 :         write(iounit,*) "  vonkar = ",vonkar
    1486           0 :         write(iounit,*) "  cp_wv  = ",cp_wv
    1487           0 :         write(iounit,*) "  stefan_boltzmann = ",stefan_boltzmann
    1488           0 :         write(iounit,*) "  Tffresh = ",Tffresh
    1489           0 :         write(iounit,*) "  Lsub   = ",Lsub
    1490           0 :         write(iounit,*) "  Lvap   = ",Lvap
    1491           0 :         write(iounit,*) "  Timelt = ",Timelt
    1492           0 :         write(iounit,*) "  Tsmelt = ",Tsmelt
    1493           0 :         write(iounit,*) "  ice_ref_salinity = ",ice_ref_salinity
    1494           0 :         write(iounit,*) "  iceruf = ",iceruf
    1495           0 :         write(iounit,*) "  Cf     = ",Cf
    1496           0 :         write(iounit,*) "  Pstar  = ",Pstar
    1497           0 :         write(iounit,*) "  Cstar  = ",Cstar
    1498           0 :         write(iounit,*) "  kappav = ",kappav
    1499           0 :         write(iounit,*) "  kice   = ",kice
    1500           0 :         write(iounit,*) "  kseaice = ",kseaice
    1501           0 :         write(iounit,*) "  ksno   = ",ksno
    1502           0 :         write(iounit,*) "  zref   = ",zref
    1503           0 :         write(iounit,*) "  hs_min = ",hs_min
    1504           0 :         write(iounit,*) "  snowpatch = ",snowpatch
    1505           0 :         write(iounit,*) "  rhosi  = ",rhosi
    1506           0 :         write(iounit,*) "  sk_l   = ",sk_l
    1507           0 :         write(iounit,*) "  saltmax   = ",saltmax
    1508           0 :         write(iounit,*) "  phi_init  = ",phi_init
    1509           0 :         write(iounit,*) "  min_salin = ",min_salin
    1510           0 :         write(iounit,*) "  salt_loss = ",salt_loss
    1511           0 :         write(iounit,*) "  min_bgc   = ",min_bgc
    1512           0 :         write(iounit,*) "  dSin0_frazil = ",dSin0_frazil
    1513           0 :         write(iounit,*) "  hi_ssl = ",hi_ssl
    1514           0 :         write(iounit,*) "  hs_ssl = ",hs_ssl
    1515           0 :         write(iounit,*) "  awtvdr = ",awtvdr
    1516           0 :         write(iounit,*) "  awtidr = ",awtidr
    1517           0 :         write(iounit,*) "  awtvdf = ",awtvdf
    1518           0 :         write(iounit,*) "  awtidf = ",awtidf
    1519           0 :         write(iounit,*) "  qqqice = ",qqqice
    1520           0 :         write(iounit,*) "  TTTice = ",TTTice
    1521           0 :         write(iounit,*) "  qqqocn = ",qqqocn
    1522           0 :         write(iounit,*) "  TTTocn = ",TTTocn
    1523           0 :         write(iounit,*) "  puny   = ",puny
    1524           0 :         write(iounit,*) "  bignum = ",bignum
    1525           0 :         write(iounit,*) "  secday = ",secday
    1526           0 :         write(iounit,*) "  pi     = ",pi
    1527           0 :         write(iounit,*) "  pih    = ",pih
    1528           0 :         write(iounit,*) "  piq    = ",piq
    1529           0 :         write(iounit,*) "  pi2    = ",pi2
    1530           0 :         write(iounit,*) "  rad_to_deg = ",rad_to_deg
    1531           0 :         write(iounit,*) "  Lfresh = ",Lfresh
    1532           0 :         write(iounit,*) "  cprho  = ",cprho
    1533           0 :         write(iounit,*) "  Cp     = ",Cp
    1534           0 :         write(iounit,*) "  ktherm        = ", ktherm
    1535           0 :         write(iounit,*) "  conduct       = ", conduct
    1536           0 :         write(iounit,*) "  fbot_xfer_type    = ", fbot_xfer_type
    1537           0 :         write(iounit,*) "  heat_capacity     = ", heat_capacity
    1538           0 :         write(iounit,*) "  calc_Tsfc         = ", calc_Tsfc
    1539           0 :         write(iounit,*) "  update_ocn_f      = ", update_ocn_f
    1540           0 :         write(iounit,*) "  dts_b             = ", dts_b
    1541           0 :         write(iounit,*) "  ustar_min         = ", ustar_min
    1542           0 :         write(iounit,*) "  a_rapid_mode      = ", a_rapid_mode
    1543           0 :         write(iounit,*) "  Rac_rapid_mode    = ", Rac_rapid_mode
    1544           0 :         write(iounit,*) "  aspect_rapid_mode = ", aspect_rapid_mode
    1545           0 :         write(iounit,*) "  dSdt_slow_mode    = ", dSdt_slow_mode
    1546           0 :         write(iounit,*) "  phi_c_slow_mode   = ", phi_c_slow_mode
    1547           0 :         write(iounit,*) "  phi_i_mushy       = ", phi_i_mushy
    1548           0 :         write(iounit,*) "  shortwave     = ", shortwave
    1549           0 :         write(iounit,*) "  albedo_type   = ", albedo_type
    1550           0 :         write(iounit,*) "  albicev       = ", albicev
    1551           0 :         write(iounit,*) "  albicei       = ", albicei
    1552           0 :         write(iounit,*) "  albsnowv      = ", albsnowv
    1553           0 :         write(iounit,*) "  albsnowi      = ", albsnowi
    1554           0 :         write(iounit,*) "  ahmax         = ", ahmax
    1555           0 :         write(iounit,*) "  R_ice         = ", R_ice
    1556           0 :         write(iounit,*) "  R_pnd         = ", R_pnd
    1557           0 :         write(iounit,*) "  R_snw         = ", R_snw
    1558           0 :         write(iounit,*) "  dT_mlt        = ", dT_mlt
    1559           0 :         write(iounit,*) "  rsnw_mlt      = ", rsnw_mlt
    1560           0 :         write(iounit,*) "  kalg          = ", kalg
    1561           0 :         write(iounit,*) "  kstrength     = ", kstrength
    1562           0 :         write(iounit,*) "  krdg_partic   = ", krdg_partic
    1563           0 :         write(iounit,*) "  krdg_redist   = ", krdg_redist
    1564           0 :         write(iounit,*) "  mu_rdg        = ", mu_rdg
    1565           0 :         write(iounit,*) "  atmbndy       = ", atmbndy
    1566           0 :         write(iounit,*) "  calc_strair   = ", calc_strair
    1567           0 :         write(iounit,*) "  formdrag      = ", formdrag
    1568           0 :         write(iounit,*) "  highfreq      = ", highfreq
    1569           0 :         write(iounit,*) "  natmiter      = ", natmiter
    1570           0 :         write(iounit,*) "  atmiter_conv  = ", atmiter_conv
    1571           0 :         write(iounit,*) "  tfrz_option   = ", tfrz_option
    1572           0 :         write(iounit,*) "  kitd          = ", kitd
    1573           0 :         write(iounit,*) "  kcatbound     = ", kcatbound
    1574           0 :         write(iounit,*) "  floeshape     = ", floeshape
    1575           0 :         write(iounit,*) "  wave_spec     = ", wave_spec
    1576           0 :         write(iounit,*) "  wave_spec_type= ", wave_spec_type
    1577           0 :         write(iounit,*) "  nfreq         = ", nfreq
    1578           0 :         write(iounit,*) "  hs0           = ", hs0
    1579           0 :         write(iounit,*) "  frzpnd        = ", frzpnd
    1580           0 :         write(iounit,*) "  dpscale       = ", dpscale
    1581           0 :         write(iounit,*) "  rfracmin      = ", rfracmin
    1582           0 :         write(iounit,*) "  rfracmax      = ", rfracmax
    1583           0 :         write(iounit,*) "  pndaspect     = ", pndaspect
    1584           0 :         write(iounit,*) "  hs1           = ", hs1
    1585           0 :         write(iounit,*) "  hp1           = ", hp1
    1586           0 :         write(iounit,*) "  bgc_flux_type = ", bgc_flux_type
    1587           0 :         write(iounit,*) "  z_tracers     = ", z_tracers
    1588           0 :         write(iounit,*) "  scale_bgc     = ", scale_bgc
    1589           0 :         write(iounit,*) "  solve_zbgc    = ", solve_zbgc
    1590           0 :         write(iounit,*) "  dEdd_algae    = ", dEdd_algae
    1591           0 :         write(iounit,*) "  modal_aero    = ", modal_aero
    1592           0 :         write(iounit,*) "  conserv_check = ", conserv_check
    1593           0 :         write(iounit,*) "  skl_bgc       = ", skl_bgc
    1594           0 :         write(iounit,*) "  solve_zsal    = ", solve_zsal
    1595           0 :         write(iounit,*) "  grid_o        = ", grid_o
    1596           0 :         write(iounit,*) "  l_sk          = ", l_sk
    1597           0 :         write(iounit,*) "  initbio_frac  = ", initbio_frac
    1598           0 :         write(iounit,*) "  grid_oS       = ", grid_oS
    1599           0 :         write(iounit,*) "  l_skS         = ", l_skS
    1600           0 :         write(iounit,*) "  phi_snow      = ", phi_snow
    1601           0 :         write(iounit,*) "  fr_resp       = ", fr_resp
    1602           0 :         write(iounit,*) "  algal_vel     = ", algal_vel
    1603           0 :         write(iounit,*) "  R_dFe2dust    = ", R_dFe2dust
    1604           0 :         write(iounit,*) "  dustFe_sol    = ", dustFe_sol
    1605           0 :         write(iounit,*) "  T_max         = ", T_max
    1606           0 :         write(iounit,*) "  fsal          = ", fsal
    1607           0 :         write(iounit,*) "  op_dep_min    = ", op_dep_min
    1608           0 :         write(iounit,*) "  fr_graze_s    = ", fr_graze_s
    1609           0 :         write(iounit,*) "  fr_graze_e    = ", fr_graze_e
    1610           0 :         write(iounit,*) "  fr_mort2min   = ", fr_mort2min
    1611           0 :         write(iounit,*) "  fr_dFe        = ", fr_dFe
    1612           0 :         write(iounit,*) "  k_nitrif      = ", k_nitrif
    1613           0 :         write(iounit,*) "  t_iron_conv   = ", t_iron_conv
    1614           0 :         write(iounit,*) "  max_loss      = ", max_loss
    1615           0 :         write(iounit,*) "  max_dfe_doc1  = ", max_dfe_doc1
    1616           0 :         write(iounit,*) "  fr_resp_s     = ", fr_resp_s
    1617           0 :         write(iounit,*) "  y_sk_DMS      = ", y_sk_DMS
    1618           0 :         write(iounit,*) "  t_sk_conv     = ", t_sk_conv
    1619           0 :         write(iounit,*) "  t_sk_ox       = ", t_sk_ox
    1620           0 :         write(iounit,*) "  frazil_scav   = ", frazil_scav
    1621           0 :         write(iounit,*) "  sw_redist     = ", sw_redist
    1622           0 :         write(iounit,*) "  sw_frac       = ", sw_frac
    1623           0 :         write(iounit,*) "  sw_dtemp      = ", sw_dtemp
    1624             : 
    1625  2362607484 :       end subroutine icepack_write_parameters
    1626             : 
    1627             : !=======================================================================
    1628             : 
    1629             : !autodocument_start icepack_recompute_constants
    1630             : ! subroutine to reinitialize some derived constants
    1631             : 
    1632 26278926407 :       subroutine icepack_recompute_constants()
    1633             : 
    1634             : !autodocument_end
    1635             : 
    1636  2362611123 :       real (kind=dbl_kind) :: lambda
    1637             : 
    1638             :       character(len=*),parameter :: subname='(icepack_recompute_constants)'
    1639             : 
    1640 26278926407 :         cprho  = cp_ocn*rhow
    1641 26278926407 :         Lfresh = Lsub-Lvap
    1642 26278926407 :         Cp     = 0.5_dbl_kind*gravit*(rhow-rhoi)*rhoi/rhow
    1643 26278926407 :         pih    = p5*pi
    1644 26278926407 :         piq    = p5*p5*pi
    1645 26278926407 :         pi2    = c2*pi
    1646 26278926407 :         rad_to_deg = c180/pi
    1647             : 
    1648 26278926407 :         if (calc_dragio) then
    1649      156308 :            dragio = (vonkar/log(p5 * thickness_ocn_layer1/iceruf_ocn))**2 ! dragio at half first layer
    1650             :            lambda = (thickness_ocn_layer1 - iceruf_ocn) / &
    1651      156308 :                     (thickness_ocn_layer1*(sqrt(dragio)/vonkar*(log(c2) - c1 + iceruf_ocn/thickness_ocn_layer1) + c1))
    1652      156308 :            dragio = dragio*lambda**2
    1653             :         endif
    1654             : 
    1655 26278926407 :       end subroutine icepack_recompute_constants
    1656             : 
    1657             : !=======================================================================
    1658             : 
    1659             :     end module icepack_parameters
    1660             : 
    1661             : !=======================================================================

Generated by: LCOV version 1.14-6-g40580cd