/[MITgcm]/MITgcm_contrib/torge/itd/code/seaice_readparms.F
ViewVC logotype

Diff of /MITgcm_contrib/torge/itd/code/seaice_readparms.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.5 by torge, Mon Oct 22 22:18:09 2012 UTC revision 1.8 by torge, Wed Mar 27 19:13:51 2013 UTC
# Line 35  C     === Global variables === Line 35  C     === Global variables ===
35  #ifdef ALLOW_EXF  #ifdef ALLOW_EXF
36  # include "EXF_CONSTANTS.h"  # include "EXF_CONSTANTS.h"
37  #endif /* ALLOW_EXF */  #endif /* ALLOW_EXF */
38    #ifdef ALLOW_AUTODIFF
39    # include "AUTODIFF_PARAMS.h"
40    #endif
41    
42  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
43  C     === Routine arguments ===  C     === Routine arguments ===
# Line 68  C                          1 = LEAPFROG, Line 71  C                          1 = LEAPFROG,
71  C     SEAICE_freeze     :: FREEZING TEMP. OF SEA WATER  C     SEAICE_freeze     :: FREEZING TEMP. OF SEA WATER
72        _RL SEAICE_sensHeat, SEAICE_latentWater, SEAICE_latentIce        _RL SEAICE_sensHeat, SEAICE_latentWater, SEAICE_latentIce
73        _RL SEAICE_salinity, SIsalFRAC, SIsal0        _RL SEAICE_salinity, SIsalFRAC, SIsal0
74        _RL SEAICE_lhSublim, SEAICE_freeze        _RL SEAICE_lhSublim, SEAICE_freeze, MAX_HEFF
75        _RL areaMin, areaMax, A22, hiceMin, MAX_TICE        _RL areaMin, areaMax, A22, hiceMin, MAX_TICE
76        LOGICAL SEAICEadvAge        LOGICAL SEAICEadvAge
77        INTEGER SEAICEadvSchAge, LAD, SEAICEturbFluxFormula        INTEGER SEAICEadvSchAge, LAD, SEAICEturbFluxFormula
# Line 77  C     SEAICE_freeze     :: FREEZING TEMP Line 80  C     SEAICE_freeze     :: FREEZING TEMP
80    
81  C--   SEAICE parameters  C--   SEAICE parameters
82        NAMELIST /SEAICE_PARM01/        NAMELIST /SEAICE_PARM01/
83       & SEAICEwriteState, SEAICEuseDYNAMICS, SEAICEuseTEM,       & SEAICEuseDYNAMICS, SEAICEuseFREEDRIFT,
84       & SEAICEuseEVPpickup, SEAICEuseFluxForm,       & SEAICEuseTEM, SEAICEuseMetricTerms, SEAICEuseTilt,
      & SEAICEuseMetricTerms,  
85       & useHB87stressCoupling, SEAICEuseFlooding,       & useHB87stressCoupling, SEAICEuseFlooding,
86       & usePW79thermodynamics, useMaykutSatVapPoly,       & usePW79thermodynamics, useMaykutSatVapPoly,
87       & SEAICErestoreUnderIce,       & SEAICErestoreUnderIce,
# Line 87  C--   SEAICE parameters Line 89  C--   SEAICE parameters
89       & SEAICEadvHeff, SEAICEadvArea, SEAICEadvSnow,       & SEAICEadvHeff, SEAICEadvArea, SEAICEadvSnow,
90       & SEAICEadvSalt, SEAICEadvAge,       & SEAICEadvSalt, SEAICEadvAge,
91       & SEAICE_clipVelocities, SEAICE_maskRHS, SEAICE_no_slip,       & SEAICE_clipVelocities, SEAICE_maskRHS, SEAICE_no_slip,
92       & LAD, IMAX_TICE, postSolvTempIter,       & SEAICEetaZmethod, LAD, IMAX_TICE, postSolvTempIter,
93       & SEAICEadvScheme, SEAICEadvSchArea,       & SEAICEuseFluxForm, SEAICEadvScheme, SEAICEadvSchArea,
94       & SEAICEadvSchHeff, SEAICEadvSchSnow,       & SEAICEadvSchHeff, SEAICEadvSchSnow,
95       & SEAICEadvSchSalt, SEAICEadvSchAge,       & SEAICEadvSchSalt, SEAICEadvSchAge,
96       & SEAICEdiffKhHeff, SEAICEdiffKhSnow, SEAICEdiffKhArea,       & SEAICEdiffKhHeff, SEAICEdiffKhSnow, SEAICEdiffKhArea,
97       & SEAICEdiffKhSalt, SEAICEdiffKhAge,       & SEAICEdiffKhSalt, SEAICEdiffKhAge, DIFF1,
98       & SEAICE_deltaTtherm, SEAICE_deltaTdyn,       & SEAICE_deltaTtherm, SEAICE_deltaTdyn,
99         & SEAICE_LSRrelaxU, SEAICE_LSRrelaxV,
100         & SOLV_MAX_ITERS, SOLV_NCHECK, NPSEUDOTIMESTEPS,
101         & LSR_ERROR, LSR_mixIniGuess, SEAICEuseMultiTileSolver,
102       & SEAICE_deltaTevp, SEAICE_elasticParm, SEAICE_evpTauRelax,       & SEAICE_deltaTevp, SEAICE_elasticParm, SEAICE_evpTauRelax,
103       & SEAICE_evpDampC, SEAICE_zetaMin, SEAICE_zetaMaxFac,       & SEAICE_evpDampC, SEAICEnEVPstarSteps,
104         & SEAICE_zetaMin, SEAICE_zetaMaxFac,
105       & SEAICEuseJFNK, SEAICEnewtonIterMax, SEAICEkrylovIterMax,       & SEAICEuseJFNK, SEAICEnewtonIterMax, SEAICEkrylovIterMax,
106       & JFNKgamma_nonlin,JFNKres_t,JFNKgamma_lin_min,JFNKgamma_lin_max,       & SEAICE_JFNK_lsIter, SEAICE_JFNK_tolIter, JFNKres_t,JFNKres_tFac,
107         & JFNKgamma_nonlin,JFNKgamma_lin_min,JFNKgamma_lin_max,
108         & SEAICE_JFNKepsilon, SEAICE_OLx, SEAICE_OLy,
109       & SEAICEpresH0, SEAICEpresPow0, SEAICEpresPow1,       & SEAICEpresH0, SEAICEpresPow0, SEAICEpresPow1,
      & SEAICE_monFreq, SEAICE_dumpFreq, SEAICE_taveFreq,  
110       & SEAICE_initialHEFF, SEAICEturbFluxFormula,       & SEAICE_initialHEFF, SEAICEturbFluxFormula,
111       & SEAICE_areaGainFormula, SEAICE_areaLossFormula,       & SEAICE_areaGainFormula, SEAICE_areaLossFormula,
112       & SEAICE_doOpenWaterGrowth, SEAICE_doOpenWaterMelt,       & SEAICE_doOpenWaterGrowth, SEAICE_doOpenWaterMelt,
# Line 125  C--   SEAICE parameters Line 132  C--   SEAICE parameters
132       & SEAICE_mcPheeStepFunc, SEAICE_gamma_t, SEAICE_gamma_t_frz,       & SEAICE_mcPheeStepFunc, SEAICE_gamma_t, SEAICE_gamma_t_frz,
133       & SEAICE_availHeatFrac, SEAICE_availHeatFracFrz,       & SEAICE_availHeatFrac, SEAICE_availHeatFracFrz,
134       & AreaFile, HeffFile, uIceFile, vIceFile, HsnowFile, HsaltFile,       & AreaFile, HeffFile, uIceFile, vIceFile, HsnowFile, HsaltFile,
      & SOLV_MAX_ITERS, SOLV_NCHECK, NPSEUDOTIMESTEPS, LSR_mixIniGuess,  
      & LSR_ERROR, DIFF1, SEAICEuseFREEDRIFT, SEAICEuseTILT,  
135       & SEAICEheatConsFix, SEAICE_multDim, SEAICE_useMultDimSnow,       & SEAICEheatConsFix, SEAICE_multDim, SEAICE_useMultDimSnow,
136       & SEAICE_area_reg, SEAICE_hice_reg,       & SEAICE_area_reg, SEAICE_hice_reg,
137       & SEAICE_area_floor, SEAICE_area_max, SEAICE_tauAreaObsRelax,       & SEAICE_area_floor, SEAICE_area_max, SEAICE_tauAreaObsRelax,
138       & SEAICE_airTurnAngle, SEAICE_waterTurnAngle,       & SEAICE_airTurnAngle, SEAICE_waterTurnAngle,
139       & MAX_HEFF, MIN_ATEMP, MIN_LWDOWN, MAX_TICE, MIN_TICE,       & MAX_HEFF, MIN_ATEMP, MIN_LWDOWN, MAX_TICE, MIN_TICE,
140       & SEAICE_EPS, SEAICE_EPS_SQ,       & SEAICE_EPS, SEAICE_EPS_SQ,
141         & SEAICEwriteState, SEAICEuseEVPpickup, SEAICEuseEVPstar,
142         & SEAICE_monFreq, SEAICE_dumpFreq, SEAICE_taveFreq,
143       & SEAICE_tave_mnc, SEAICE_dump_mnc, SEAICE_mon_mnc,       & SEAICE_tave_mnc, SEAICE_dump_mnc, SEAICE_mon_mnc,
144  #ifdef SEAICE_ITD  #ifdef SEAICE_ITD
145  CToM<<<       & Hlimit_c1, Hlimit_c2, Hlimit_c3,
      & SEAICE_debugPointI, SEAICE_debugPointJ,  
      & Hlimit_c1, Hlimit_c2, Hlimit_c3  
 C>>>ToM  
 #else  
      & SEAICE_debugPointI, SEAICE_debugPointJ  
146  #endif  #endif
147         & SEAICE_debugPointI, SEAICE_debugPointJ
148    
149  #ifdef ALLOW_COST  #ifdef ALLOW_COST
150        NAMELIST /SEAICE_PARM02/        NAMELIST /SEAICE_PARM02/
# Line 170  C---+----1----+----2----+----3----+----4 Line 173  C---+----1----+----2----+----3----+----4
173        _BEGIN_MASTER(myThid)        _BEGIN_MASTER(myThid)
174    
175  C--   set default sea ice parameters  C--   set default sea ice parameters
       SEAICEwriteState   = .FALSE.  
176  #ifdef SEAICE_ALLOW_DYNAMICS  #ifdef SEAICE_ALLOW_DYNAMICS
177        SEAICEuseDYNAMICS  = .TRUE.        SEAICEuseDYNAMICS  = .TRUE.
178  #else  #else
# Line 178  C--   set default sea ice parameters Line 180  C--   set default sea ice parameters
180  #endif  #endif
181        SEAICEadjMODE      = 0        SEAICEadjMODE      = 0
182        SEAICEuseFREEDRIFT = .FALSE.        SEAICEuseFREEDRIFT = .FALSE.
183        SEAICEuseTILT      = .TRUE.        SEAICEuseTilt      = .TRUE.
184        SEAICEheatConsFix  = .FALSE.        SEAICEheatConsFix  = .FALSE.
185        SEAICEuseTEM       = .FALSE.        SEAICEuseTEM       = .FALSE.
186        SEAICEuseMetricTerms = .TRUE.        SEAICEuseMetricTerms = .TRUE.
187        SEAICEuseEVPpickup = .TRUE.        SEAICEuseEVPpickup = .TRUE.
188        SEAICEuseFluxForm  = .TRUE.        SEAICEuseEVPstar   = .FALSE.
 C--   old default:  
 c     SEAICEuseFluxForm  = .FALSE.  
189        SEAICErestoreUnderIce = .FALSE.        SEAICErestoreUnderIce = .FALSE.
190        SEAICE_salinityTracer = .FALSE.        SEAICE_salinityTracer = .FALSE.
191        SEAICE_ageTracer      = .FALSE.        SEAICE_ageTracer      = .FALSE.
192        useHB87stressCoupling = .FALSE.        useHB87stressCoupling = .FALSE.
193        usePW79thermodynamics = .TRUE.        usePW79thermodynamics = .TRUE.
194        useMaykutSatVapPoly = .FALSE.        useMaykutSatVapPoly = .FALSE.
195          SEAICEuseFluxForm  = .TRUE.
196        SEAICEadvHeff      = .TRUE.        SEAICEadvHeff      = .TRUE.
197        SEAICEadvArea      = .TRUE.        SEAICEadvArea      = .TRUE.
198        SEAICEadvSnow      = .TRUE.        SEAICEadvSnow      = .TRUE.
# Line 204  c     SEAICEuseFluxForm  = .FALSE. Line 205  c     SEAICEuseFluxForm  = .FALSE.
205        SEAICE_no_slip     = .FALSE.        SEAICE_no_slip     = .FALSE.
206        SEAICE_clipVelocities = .FALSE.        SEAICE_clipVelocities = .FALSE.
207        SEAICE_maskRHS     = .FALSE.        SEAICE_maskRHS     = .FALSE.
208          SEAICEetaZmethod   = 0
209        SEAICEadvScheme    = 2        SEAICEadvScheme    = 2
210        SEAICEadvSchArea   = UNSET_I        SEAICEadvSchArea   = UNSET_I
211        SEAICEadvSchHeff   = UNSET_I        SEAICEadvSchHeff   = UNSET_I
# Line 213  c     SEAICEuseFluxForm  = .FALSE. Line 215  c     SEAICEuseFluxForm  = .FALSE.
215        SEAICEdiffKhHeff   = UNSET_RL        SEAICEdiffKhHeff   = UNSET_RL
216        SEAICEdiffKhSnow   = UNSET_RL        SEAICEdiffKhSnow   = UNSET_RL
217        SEAICEdiffKhSalt   = UNSET_RL        SEAICEdiffKhSalt   = UNSET_RL
218          DIFF1      = UNSET_RL
219    C--   old DIFF1 default:
220    c     DIFF1      = .004 _d 0
221        SEAICE_deltaTtherm = dTtracerLev(1)        SEAICE_deltaTtherm = dTtracerLev(1)
222        SEAICE_deltaTdyn   = dTtracerLev(1)        SEAICE_deltaTdyn   = dTtracerLev(1)
223        SEAICE_deltaTevp   = UNSET_RL        SEAICE_deltaTevp   = UNSET_RL
# Line 220  C     JFNK stuff Line 225  C     JFNK stuff
225        SEAICEuseJFNK       = .FALSE.        SEAICEuseJFNK       = .FALSE.
226        SEAICEnewtonIterMax = 10        SEAICEnewtonIterMax = 10
227        SEAICEkrylovIterMax = 10        SEAICEkrylovIterMax = 10
228          SEAICE_JFNK_lsIter  = UNSET_I
229          SEAICE_JFNK_tolIter = 100
230          SEAICE_OLx          = OLx-2
231          SEAICE_OLy          = OLy-2
232        JFNKgamma_nonlin    = 1. _d -05        JFNKgamma_nonlin    = 1. _d -05
233        JFNKgamma_lin_min   = 0.10 _d 0        JFNKgamma_lin_min   = 0.10 _d 0
234        JFNKgamma_lin_max   = 0.99 _d 0        JFNKgamma_lin_max   = 0.99 _d 0
235        JFNKres_t           = UNSET_RL        JFNKres_t           = UNSET_RL
236          JFNKres_tFac        = UNSET_RL
237          SEAICE_JFNKepsilon  = 1. _d -06
238  C     Hunke, JCP, 2001 use 615 kg/m^2 for this, but does not recommend using it  C     Hunke, JCP, 2001 use 615 kg/m^2 for this, but does not recommend using it
239        SEAICE_evpDampC    = -1. _d 0        SEAICE_evpDampC    = -1. _d 0
240        SEAICE_zetaMin     = 0. _d 0        SEAICE_zetaMin     = 0. _d 0
# Line 231  C     Hunke, JCP, 2001 use 615 kg/m^2 fo Line 242  C     Hunke, JCP, 2001 use 615 kg/m^2 fo
242        SEAICEpresH0       = 1. _d 0        SEAICEpresH0       = 1. _d 0
243        SEAICEpresPow0     = 1        SEAICEpresPow0     = 1
244        SEAICEpresPow1     = 1        SEAICEpresPow1     = 1
       SEAICE_monFreq     = monitorFreq  
       SEAICE_dumpFreq    = dumpFreq  
       SEAICE_taveFreq    = taveFreq  
       SEAICE_elasticParm = 0.33333333333333333333333333 _d 0  
245        SEAICE_evpTauRelax = -1. _d 0        SEAICE_evpTauRelax = -1. _d 0
246  #ifdef ALLOW_MNC        SEAICE_elasticParm = 0.33333333333333333333333333 _d 0
247        SEAICE_tave_mnc = timeave_mnc        SEAICE_evpAlpha    = UNSET_RL
248        SEAICE_dump_mnc = snapshot_mnc        SEAICE_evpBeta     = UNSET_RL
249        SEAICE_mon_mnc  = monitor_mnc        SEAICEnEVPstarSteps = UNSET_I
 #else  
       SEAICE_tave_mnc = .FALSE.  
       SEAICE_dump_mnc = .FALSE.  
       SEAICE_mon_mnc  = .FALSE.  
 #endif  
250        SEAICE_initialHEFF = ZERO        SEAICE_initialHEFF = ZERO
251  #ifdef SEAICE_ITD  #ifdef SEAICE_ITD
 CToM<<<  
252  C     Coefficients used to calculate sea ice thickness category limits  C     Coefficients used to calculate sea ice thickness category limits
253  C     after Lipscomb et al. (2001, JGR), Equ. 22  C     after Lipscomb et al. (2001, JGR), Equ. 22
254  C     choose between  C     choose between
255  C      - original parameters of Lipscomb et al. (2001):  C      - original parameters of Lipscomb et al. (2001):
256  C        c1=3.0/N, c2=15*c1, c3=3.0  C        c1=3.0/N, c2=15*c1, c3=3.0
257  C      - and a higher resolution of thin end of ITD:  C      - and a higher resolution of thin end of ITD:
258  C        c1=1.5/N, c2=42*c1, c3=3.3  C        c1=1.5/N, c2=42*c1, c3=3.3
259        Hlimit_c1          = 3.0        Hlimit_c1          = 3.0
260        Hlimit_c2          = 15.        Hlimit_c2          = 15.
261        Hlimit_c3          = 3.0        Hlimit_c3          = 3.0
 C>>>ToM  
262  #endif  #endif
263        SEAICE_rhoIce      = 0.91   _d +03        SEAICE_rhoIce      = 0.91   _d +03
264        SEAICE_rhoSnow     = 330.   _d 0        SEAICE_rhoSnow     = 330.   _d 0
# Line 320  C     old default value of 0.97001763668 Line 320  C     old default value of 0.97001763668
320        SEAICE_shortwave   = 0.30   _d 0        SEAICE_shortwave   = 0.30   _d 0
321        SEAICE_salt0       = 0.0    _d 0        SEAICE_salt0       = 0.0    _d 0
322        SEAICE_saltFrac    = 0.0    _d 0        SEAICE_saltFrac    = 0.0    _d 0
323  CToM<<<  #ifdef SEAICE_ITD
 C#ifdef SEAICE_MULTICATEGORY  
 #if defined(SEAICE_MULTICATEGORY) || defined(SEAICE_ITD)  
324  C in case defined(SEAICE_ITD) MULTDIM = nITD (see SEAICE_SIZE.h)  C in case defined(SEAICE_ITD) MULTDIM = nITD (see SEAICE_SIZE.h)
325  C because SEAICE_ITD uses code related to SEAICE_MULTICATEGORY  c      SEAICE_multDim     = MULTDIM
326  C>>>ToM  C the switch MULTICATEGORY (and with it parameter MULTDIM) has been retired
327        SEAICE_multDim     = MULTDIM  C  and SEAICE_multDim is now a runtime parameter;
328    C  in case SEAICE_multDim is given in data.seaice it needs to be overwritten
329    C  after PARM01 was read (see below)
330          SEAICE_multDim     = nITD
331  #else  #else
332        SEAICE_multDim     = 1        SEAICE_multDim     = 1
333  #endif  #endif
# Line 341  C     default to be set later (ocean-sea Line 342  C     default to be set later (ocean-sea
342        SEAICE_gamma_t_frz    = UNSET_RL        SEAICE_gamma_t_frz    = UNSET_RL
343        SEAICE_availHeatFrac  = UNSET_RL        SEAICE_availHeatFrac  = UNSET_RL
344        SEAICE_availHeatFracFrz = UNSET_RL        SEAICE_availHeatFracFrz = UNSET_RL
 #ifndef SEAICE_GROWTH_LEGACY  
345        SEAICE_doOpenWaterGrowth=.TRUE.        SEAICE_doOpenWaterGrowth=.TRUE.
346        SEAICE_doOpenWaterMelt=.FALSE.        SEAICE_doOpenWaterMelt=.FALSE.
347        SEAICE_areaLossFormula=1        SEAICE_areaLossFormula=1
348        SEAICE_areaGainFormula=1        SEAICE_areaGainFormula=1
 #else  
       SEAICE_doOpenWaterGrowth=.FALSE.  
       SEAICE_doOpenWaterMelt=.FALSE.  
       SEAICE_areaGainFormula=2  
       SEAICE_areaLossFormula=3  
 #endif  
349        SEAICE_tempFrz0    = 0.0901 _d 0        SEAICE_tempFrz0    = 0.0901 _d 0
350        SEAICE_dTempFrz_dS = -0.0575 _d 0        SEAICE_dTempFrz_dS = -0.0575 _d 0
351  C     old default for constant freezing point  C     old default for constant freezing point
# Line 367  c     SEAICE_dTempFrz_dS = 0. _d 0 Line 361  c     SEAICE_dTempFrz_dS = 0. _d 0
361        vIceFile   = ' '        vIceFile   = ' '
362        IMAX_TICE  = 10        IMAX_TICE  = 10
363        postSolvTempIter = 2        postSolvTempIter = 2
364    C     LSR parameters
365          SEAICE_LSRrelaxU = 0.95 _d 0
366          SEAICE_LSRrelaxV = 0.95 _d 0
367        SOLV_MAX_ITERS = UNSET_I        SOLV_MAX_ITERS = UNSET_I
368        SOLV_NCHECK= 2        SOLV_NCHECK= 2
369  C     two pseudo time steps correspond to the original modified  C     two pseudo time steps correspond to the original modified
# Line 378  C     Euler time stepping scheme of Zhan Line 375  C     Euler time stepping scheme of Zhan
375        LSR_mixIniGuess = -1        LSR_mixIniGuess = -1
376  #endif  #endif
377        LSR_ERROR  = 0.0001    _d 0        LSR_ERROR  = 0.0001    _d 0
378        DIFF1      = UNSET_RL        SEAICEuseMultiTileSolver = .FALSE.
 C--   old DIFF1 default:  
 c     DIFF1      = .004 _d 0  
379    
 #ifdef SEAICE_GROWTH_LEGACY  
       SEAICE_area_reg   = 0.15 _d 0  
       SEAICE_area_floor = 0.15 _d 0  
 #else  
380        SEAICE_area_floor = siEPS        SEAICE_area_floor = siEPS
381        SEAICE_area_reg   = siEPS        SEAICE_area_reg   = siEPS
 #endif  
382        SEAICE_hice_reg   = 0.05 _d 0        SEAICE_hice_reg   = 0.05 _d 0
383        SEAICE_area_max    = 1.00 _d 0        SEAICE_area_max   = 1.00 _d 0
384    
385        SEAICE_airTurnAngle   = 0.0 _d 0        SEAICE_airTurnAngle   = 0.0 _d 0
386        SEAICE_waterTurnAngle = 0.0 _d 0        SEAICE_waterTurnAngle = 0.0 _d 0
       MAX_HEFF          = 10.     _d 0  
387        MIN_ATEMP         = -50.    _d 0        MIN_ATEMP         = -50.    _d 0
388        MIN_LWDOWN        = 60.     _d 0        MIN_LWDOWN        = 60.     _d 0
389        MIN_TICE          = -50.    _d 0        MIN_TICE          = -50.    _d 0
390        SEAICE_EPS        = 1.      _d -10        SEAICE_EPS        = 1.      _d -10
391        SEAICE_EPS_SQ     = -99999.        SEAICE_EPS_SQ     = -99999.
392    
393          SEAICEwriteState  = .FALSE.
394          SEAICE_monFreq    = monitorFreq
395          SEAICE_dumpFreq   = dumpFreq
396          SEAICE_taveFreq   = taveFreq
397    #ifdef ALLOW_MNC
398          SEAICE_tave_mnc = timeave_mnc
399          SEAICE_dump_mnc = snapshot_mnc
400          SEAICE_mon_mnc  = monitor_mnc
401    #else
402          SEAICE_tave_mnc = .FALSE.
403          SEAICE_dump_mnc = .FALSE.
404          SEAICE_mon_mnc  = .FALSE.
405    #endif
406          SEAICE_debugPointI = UNSET_I
407          SEAICE_debugPointJ = UNSET_I
408    
409  C-    Retired parameters:  C-    Retired parameters:
410  c     LAD        = 2  c     LAD        = 2
411        LAD        = UNSET_I        LAD        = UNSET_I
# Line 432  c     MAX_TICE           = 30.     _d 0 Line 438  c     MAX_TICE           = 30.     _d 0
438        IceAgeTrFile(4)    = ' '        IceAgeTrFile(4)    = ' '
439        SEAICEturbFluxFormula =UNSET_I        SEAICEturbFluxFormula =UNSET_I
440        SEAICE_freeze      = UNSET_RL        SEAICE_freeze      = UNSET_RL
441          MAX_HEFF           = UNSET_RL
442  C-    end retired parameters  C-    end retired parameters
       SEAICE_debugPointI = UNSET_I  
       SEAICE_debugPointJ = UNSET_I  
443    
444  #ifdef ALLOW_COST  #ifdef ALLOW_COST
445        locDate(1) = 0        locDate(1) = 0
# Line 510  C--   Read settings from model parameter Line 515  C--   Read settings from model parameter
515    
516        CLOSE(iUnit)        CLOSE(iUnit)
517    
518    #ifdef SEAICE_ITD
519    C SEAICE_multDim has become a runtime parameter but if SEAICE_ITD is defined
520    C  it needs to equal nITD because of shared code (mostly in seaice_growth.F).
521    C nITD is set in SEAICE_SIZE.h
522          SEAICE_multDim     = nITD
523    #endif
524    
525        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
526       &     ' SEAICE_READPARMS: finished reading data.seaice'       &     ' SEAICE_READPARMS: finished reading data.seaice'
527        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
# Line 553  C     yet been tried nor thought through Line 565  C     yet been tried nor thought through
565        IF ( SEAICE_deltaTevp .NE. UNSET_RL ) SEAICEuseEVP = .TRUE.        IF ( SEAICE_deltaTevp .NE. UNSET_RL ) SEAICEuseEVP = .TRUE.
566        IF ( SEAICEuseEVP ) THEN        IF ( SEAICEuseEVP ) THEN
567         IF (    (SEAICE_deltaTdyn/SEAICE_deltaTevp) .NE.         IF (    (SEAICE_deltaTdyn/SEAICE_deltaTevp) .NE.
568       &      INT(SEAICE_deltaTdyn/SEAICE_deltaTevp) ) THEN       &      INT(SEAICE_deltaTdyn/SEAICE_deltaTevp) .AND.
569         &      .NOT. SEAICEuseEVPstar ) THEN
570          WRITE(msgBuf,'(A)')          WRITE(msgBuf,'(A)')
571       &       'SEAICE_deltaTevp must be a factor of SEAICE_deltaTdyn.'       &       'SEAICE_deltaTevp must be a factor of SEAICE_deltaTdyn.'
572          CALL PRINT_ERROR( msgBuf , myThid)          CALL PRINT_ERROR( msgBuf , myThid)
# Line 567  C     yet been tried nor thought through Line 580  C     yet been tried nor thought through
580         ENDIF         ENDIF
581         IF ( SEAICE_evpTauRelax .LE. 0. _d 0 )         IF ( SEAICE_evpTauRelax .LE. 0. _d 0 )
582       &      SEAICE_evpTauRelax = SEAICE_deltaTdyn*SEAICE_elasticParm       &      SEAICE_evpTauRelax = SEAICE_deltaTdyn*SEAICE_elasticParm
583           IF ( SEAICE_evpBeta .EQ. UNSET_RL ) THEN
584            SEAICE_evpBeta   = SEAICE_deltaTdyn/SEAICE_deltaTevp
585           ELSE
586            SEAICE_deltaTevp = SEAICE_deltaTdyn/SEAICE_evpBeta
587           ENDIF
588           IF ( SEAICE_evpAlpha .EQ. UNSET_RL ) THEN
589            SEAICE_evpAlpha = 2. _d 0 * SEAICE_evpTauRelax/SEAICE_deltaTevp
590           ELSE
591            SEAICE_evpTauRelax = 0.5 _d 0 *SEAICE_evpAlpha*SEAICE_deltaTevp
592           ENDIF
593    C     Check if all parameters are set.
594        ENDIF        ENDIF
595  #endif /* SEAICE_ALLOW_EVP */  #endif /* SEAICE_ALLOW_EVP */
596    
# Line 591  C     maximum number of LSOR steps in de Line 615  C     maximum number of LSOR steps in de
615  C     maximum number of LSOR steps as preconditioner in JFNK solver  C     maximum number of LSOR steps as preconditioner in JFNK solver
616         IF ( SEAICEuseJFNK ) SOLV_MAX_ITERS = 10         IF ( SEAICEuseJFNK ) SOLV_MAX_ITERS = 10
617        ENDIF        ENDIF
618    C     Turn line search with JFNK solver off by default by making this
619    C     number much larger than the maximum allowed Newton iterations
620          IF ( SEAICE_JFNK_lsIter .EQ. UNSET_I )
621         &     SEAICE_JFNK_lsIter  = 2*SEAICEnewtonIterMax
622    
623  C-    The old ways of specifying mcPheeTaper, mcPheePiston & frazilFrac:  C-    The old ways of specifying mcPheeTaper, mcPheePiston & frazilFrac:
624  C     a) prevent multiple specification of the same coeff;  C     a) prevent multiple specification of the same coeff;
# Line 674  C     to set SEAICE_mcPheePiston once dr Line 702  C     to set SEAICE_mcPheePiston once dr
702        ENDIF        ENDIF
703    
704  #ifdef SEAICE_ITD  #ifdef SEAICE_ITD
705  CToM<<<  C     The ice thickness distribution (ITD) module can only be used with
706  C     The ice thickness distribution module can only be used with  C      package seaice thermodynamics (seaice_growth)
 C      package seaice calling  
707  C      SEAICE_ADVDIFF and  C      SEAICE_ADVDIFF and
708  C      SEAICE_GROWTH, i.e. needs usePW79thermodynamics = .TRUE.  C      SEAICE_GROWTH, i.e. needs usePW79thermodynamics = .TRUE.
709        useTHSice = .FALSE.        useTHSice = .FALSE.
 C>>>ToM  
710  #endif  #endif
711        IF ( useThSice ) THEN        IF ( useThSice ) THEN
712  C     If the thsice package with the Winton thermodynamics is used  C     If the thsice package with the Winton thermodynamics is used
# Line 926  C-    Retired parameters Line 952  C-    Retired parameters
952       &  ' Set instead "SEAICE_mcPheePiston" and "SEAICE_frazilFrac"'       &  ' Set instead "SEAICE_mcPheePiston" and "SEAICE_frazilFrac"'
953         CALL PRINT_ERROR( msgBuf, myThid )         CALL PRINT_ERROR( msgBuf, myThid )
954        ENDIF        ENDIF
955          IF ( MAX_HEFF .NE. UNSET_RL ) THEN
956           nRetired = nRetired + 1
957           WRITE(msgBuf,'(A,A)')
958         &  'S/R SEAICE_READPARMS: "MAX_HEFF" ',
959         &  'is no longer allowed in file "data.seaice"'
960           CALL PRINT_ERROR( msgBuf, myThid )
961          ENDIF
962        IF ( nRetired .GT. 0 ) THEN        IF ( nRetired .GT. 0 ) THEN
963         WRITE(msgBuf,'(2A)') 'S/R SEAICE_READPARMS: ',         WRITE(msgBuf,'(2A)') 'S/R SEAICE_READPARMS: ',
964       &  'Error reading parameter file "data.seaice"'       &  'Error reading parameter file "data.seaice"'
# Line 961  C-    Set Output type flags : Line 993  C-    Set Output type flags :
993        ENDIF        ENDIF
994  #endif  #endif
995    
996    C-    store value of logical flag which might be changed in AD mode
997    #ifdef ALLOW_AUTODIFF
998          SEAICEuseFREEDRIFTinFwdMode = SEAICEuseFREEDRIFT
999          SEAICEuseDYNAMICSinFwdMode  = SEAICEuseDYNAMICS
1000    #endif /* ALLOW_AUTODIFF */
1001    
1002  C     Check the consitency of a few parameters  C     Check the consitency of a few parameters
1003        IF ( SEAICE_emissivity .LT. 1. _d -04 ) THEN        IF ( SEAICE_emissivity .LT. 1. _d -04 ) THEN
1004         WRITE(msgBuf,'(2A)')         WRITE(msgBuf,'(2A)')

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.22