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

Generated by: LCOV version 1.14-6-g40580cd