/[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.2 by dimitri, Fri Apr 27 22:25:23 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_CAL  #ifdef ALLOW_AUTODIFF
39  # include "cal.h"  # include "AUTODIFF_PARAMS.h"
40  #endif  #endif
41    
42  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
# Line 55  C     iUnit      :: Work variable for IO Line 55  C     iUnit      :: Work variable for IO
55  #ifdef ALLOW_SITRACER  #ifdef ALLOW_SITRACER
56        INTEGER iTracer        INTEGER iTracer
57  #endif  #endif
58    #ifdef ALLOW_COST
59          INTEGER locDate(4)
60    #endif /* ALLOW_COST */
61        INTEGER nRetired        INTEGER nRetired
62    
63  C-    Old parameters (to be retired one day):  C-    Old parameters (to be retired one day):
# 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_monFreq, SEAICE_dumpFreq, SEAICE_taveFreq,       & SEAICE_zetaMin, SEAICE_zetaMaxFac,
105         & SEAICEuseJFNK, SEAICEnewtonIterMax, SEAICEkrylovIterMax,
106         & 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,
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 122  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,
135       & SOLV_MAX_ITERS, SOLV_NCHECK, NPSEUDOTIMESTEPS, LSR_mixIniGuess,       & SEAICEheatConsFix, SEAICE_multDim, SEAICE_useMultDimSnow,
      & LSR_ERROR, DIFF1, SEAICEuseFREEDRIFT,  
      & SEAICEheatConsFix, SEAICE_multDim,  
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  CToM<<<  #ifdef SEAICE_ITD
145  C     & SEAICE_debugPointI, SEAICE_debugPointJ       & Hlimit_c1, Hlimit_c2, Hlimit_c3,
146       & SEAICE_debugPointI, SEAICE_debugPointJ,  #endif
147       & Hlimit_c1, Hlimit_c2, Hlimit_c3       & SEAICE_debugPointI, SEAICE_debugPointJ
 C>>>ToM  
148    
149  #ifdef ALLOW_COST  #ifdef ALLOW_COST
150        NAMELIST /SEAICE_PARM02/        NAMELIST /SEAICE_PARM02/
# Line 164  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 172  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.
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 197  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 206  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
224    C     JFNK stuff
225          SEAICEuseJFNK       = .FALSE.
226          SEAICEnewtonIterMax = 10
227          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
233          JFNKgamma_lin_min   = 0.10 _d 0
234          JFNKgamma_lin_max   = 0.99 _d 0
235          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
241        SEAICE_zetaMaxFac  = 2.5 _d 8        SEAICE_zetaMaxFac  = 2.5 _d 8
242        SEAICE_monFreq     = monitorFreq        SEAICEpresH0       = 1. _d 0
243        SEAICE_dumpFreq    = dumpFreq        SEAICEpresPow0     = 1
244        SEAICE_taveFreq    = taveFreq        SEAICEpresPow1     = 1
       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  CToM<<<  #ifdef SEAICE_ITD
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        Hlimit_c1          = 3.0  C     choose between
255    C      - original parameters of Lipscomb et al. (2001):
256    C        c1=3.0/N, c2=15*c1, c3=3.0
257    C      - and a higher resolution of thin end of ITD:
258    C        c1=1.5/N, c2=42*c1, c3=3.3
259          Hlimit_c1          = 3.0
260        Hlimit_c2          = 15.        Hlimit_c2          = 15.
261        Hlimit_c3          = 3.0        Hlimit_c3          = 3.0
262  C>>>ToM  #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
265        ICE2WATR           = UNSET_RL        ICE2WATR           = UNSET_RL
# Line 295  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>>>ToM  c      SEAICE_multDim     = MULTDIM
326        SEAICE_multDim     = MULTDIM  C the switch MULTICATEGORY (and with it parameter MULTDIM) has been retired
327    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
334          SEAICE_useMultDimSnow = .FALSE.
335  C     default to be set later (ocean-seaice turbulent flux coeff):  C     default to be set later (ocean-seaice turbulent flux coeff):
336        SEAICE_mcPheeStepFunc = .FALSE.        SEAICE_mcPheeStepFunc = .FALSE.
337        SEAICE_mcPheeTaper    = UNSET_RL        SEAICE_mcPheeTaper    = UNSET_RL
# Line 314  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 340  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        SOLV_MAX_ITERS = 1500  C     LSR parameters
365          SEAICE_LSRrelaxU = 0.95 _d 0
366          SEAICE_LSRrelaxV = 0.95 _d 0
367          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
370  C     Euler time stepping scheme of Zhang+Hibler (1997)  C     Euler time stepping scheme of Zhang+Hibler (1997)
# Line 351  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 405  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
446          locDate(2) = 0
447    # ifdef ALLOW_CAL
448          CALL CAL_GETDATE( -1, startTime, locDate, myThid )
449    # endif /* ALLOW_CAL */
450        mult_ice_export   =  0. _d 0        mult_ice_export   =  0. _d 0
451        mult_ice          =  0. _d 0        mult_ice          =  0. _d 0
452        costIceStart1     =  0        costIceStart1     = locDate(1)
453        costIceStart2     =  0        costIceStart2     = locDate(2)
454        costIceEnd1       =  0        costIceEnd1       =  0
455        costIceEnd2       =  0        costIceEnd2       =  0
456        cost_ice_flag     =  1        cost_ice_flag     =  1
# Line 430  c Line 467  c
467        smrareabarfile    =  'smrareabar'        smrareabarfile    =  'smrareabar'
468        smrareadatfile    =  ' '        smrareadatfile    =  ' '
469        smrarea_errfile   =  ' '        smrarea_errfile   =  ' '
470  # ifdef ALLOW_CAL        smrareastartdate1 = locDate(1)
471        smrareastartdate1 = startDate_1        smrareastartdate2 = locDate(2)
       smrareastartdate2 = startDate_2  
 # endif  
472  #endif /* ALLOW_COST */  #endif /* ALLOW_COST */
473    
474  #ifdef ALLOW_SITRACER  #ifdef ALLOW_SITRACER
# Line 456  c Line 491  c
491  C     Open and read the data.seaice file  C     Open and read the data.seaice file
492        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
493       &' '       &' '
494        CALL PRINT_MESSAGE( msgBuf, standardmessageunit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
495       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT , myThid)
496        WRITE(msgBuf,'(A)') ' SEAICE_READPARMS: opening data.seaice'        WRITE(msgBuf,'(A)') ' SEAICE_READPARMS: opening data.seaice'
497        CALL PRINT_MESSAGE( msgBuf, standardmessageunit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
498       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT , myThid)
499    
500        CALL OPEN_COPY_DATA_FILE(        CALL OPEN_COPY_DATA_FILE(
# Line 480  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 523  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 537  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  C  
597  #ifdef SEAICE_ALLOW_FREEDRIFT  #ifdef SEAICE_ALLOW_FREEDRIFT
598        IF ( SEAICEuseFREEDRIFT ) SEAICEuseEVP = .FALSE.        IF ( SEAICEuseFREEDRIFT ) SEAICEuseEVP = .FALSE.
599        IF ( SEAICEuseFREEDRIFT ) THEN        IF ( SEAICEuseFREEDRIFT ) THEN
# Line 554  C Line 608  C
608  C     Make sure that we have least two pseudo time steps  C     Make sure that we have least two pseudo time steps
609        NPSEUDOTIMESTEPS = MAX(NPSEUDOTIMESTEPS,2)        NPSEUDOTIMESTEPS = MAX(NPSEUDOTIMESTEPS,2)
610    
611    C-    limit preconditioner steps
612          IF ( SOLV_MAX_ITERS .EQ. UNSET_I ) THEN
613    C     maximum number of LSOR steps in default Picard solver
614           SOLV_MAX_ITERS = 1500
615    C     maximum number of LSOR steps as preconditioner in JFNK solver
616           IF ( SEAICEuseJFNK ) SOLV_MAX_ITERS = 10
617          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;
625  C     b) if specified, then try to recover old way of setting & default.  C     b) if specified, then try to recover old way of setting & default.
# Line 635  C     to set SEAICE_mcPheePiston once dr Line 701  C     to set SEAICE_mcPheePiston once dr
701          STOP 'ABNORMAL END: S/R SEAICE_READPARMS'          STOP 'ABNORMAL END: S/R SEAICE_READPARMS'
702        ENDIF        ENDIF
703    
 CToM<<<  
704  #ifdef SEAICE_ITD  #ifdef SEAICE_ITD
705  C     The ice thickness distribution module can only be used with  C     The ice thickness distribution (ITD) module can only be used with
706  C      package seaice calling  C      package seaice thermodynamics (seaice_growth)
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.
710  #endif  #endif
 C>>>ToM  
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
713  C     is does not make sense to have the following parameters defined,  C     is does not make sense to have the following parameters defined,
# Line 888  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 923  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.2  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.22