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 === |
90 |
& SEAICEadvHeff, SEAICEadvArea, SEAICEadvSnow, |
& SEAICEadvHeff, SEAICEadvArea, SEAICEadvSnow, |
91 |
& SEAICEadvSalt, SEAICEadvAge, |
& SEAICEadvSalt, SEAICEadvAge, |
92 |
& SEAICE_clipVelocities, SEAICE_maskRHS, SEAICE_no_slip, |
& SEAICE_clipVelocities, SEAICE_maskRHS, SEAICE_no_slip, |
93 |
& LAD, IMAX_TICE, postSolvTempIter, |
& SEAICEetaZmethod, LAD, IMAX_TICE, postSolvTempIter, |
94 |
& SEAICEadvScheme, SEAICEadvSchArea, |
& SEAICEadvScheme, SEAICEadvSchArea, |
95 |
& SEAICEadvSchHeff, SEAICEadvSchSnow, |
& SEAICEadvSchHeff, SEAICEadvSchSnow, |
96 |
& SEAICEadvSchSalt, SEAICEadvSchAge, |
& SEAICEadvSchSalt, SEAICEadvSchAge, |
97 |
& SEAICEdiffKhHeff, SEAICEdiffKhSnow, SEAICEdiffKhArea, |
& SEAICEdiffKhHeff, SEAICEdiffKhSnow, SEAICEdiffKhArea, |
98 |
& SEAICEdiffKhSalt, SEAICEdiffKhAge, |
& SEAICEdiffKhSalt, SEAICEdiffKhAge, |
99 |
& SEAICE_deltaTtherm, SEAICE_deltaTdyn, |
& SEAICE_deltaTtherm, SEAICE_deltaTdyn, |
100 |
|
& SEAICE_LSRrelaxU, SEAICE_LSRrelaxV, |
101 |
& SEAICE_deltaTevp, SEAICE_elasticParm, SEAICE_evpTauRelax, |
& SEAICE_deltaTevp, SEAICE_elasticParm, SEAICE_evpTauRelax, |
102 |
& SEAICE_evpDampC, SEAICE_zetaMin, SEAICE_zetaMaxFac, |
& SEAICE_evpDampC, SEAICE_zetaMin, SEAICE_zetaMaxFac, |
103 |
& SEAICEuseJFNK, SEAICEnewtonIterMax, SEAICEkrylovIterMax, |
& SEAICEuseJFNK, SEAICEnewtonIterMax, SEAICEkrylovIterMax, |
139 |
& SEAICE_EPS, SEAICE_EPS_SQ, |
& SEAICE_EPS, SEAICE_EPS_SQ, |
140 |
& SEAICE_tave_mnc, SEAICE_dump_mnc, SEAICE_mon_mnc, |
& SEAICE_tave_mnc, SEAICE_dump_mnc, SEAICE_mon_mnc, |
141 |
#ifdef SEAICE_ITD |
#ifdef SEAICE_ITD |
|
CToM<<< |
|
142 |
& SEAICE_debugPointI, SEAICE_debugPointJ, |
& SEAICE_debugPointI, SEAICE_debugPointJ, |
143 |
& Hlimit_c1, Hlimit_c2, Hlimit_c3 |
& Hlimit_c1, Hlimit_c2, Hlimit_c3 |
|
C>>>ToM |
|
144 |
#else |
#else |
145 |
& SEAICE_debugPointI, SEAICE_debugPointJ |
& SEAICE_debugPointI, SEAICE_debugPointJ |
146 |
#endif |
#endif |
206 |
SEAICE_no_slip = .FALSE. |
SEAICE_no_slip = .FALSE. |
207 |
SEAICE_clipVelocities = .FALSE. |
SEAICE_clipVelocities = .FALSE. |
208 |
SEAICE_maskRHS = .FALSE. |
SEAICE_maskRHS = .FALSE. |
209 |
|
SEAICEetaZmethod = 0 |
210 |
SEAICEadvScheme = 2 |
SEAICEadvScheme = 2 |
211 |
SEAICEadvSchArea = UNSET_I |
SEAICEadvSchArea = UNSET_I |
212 |
SEAICEadvSchHeff = UNSET_I |
SEAICEadvSchHeff = UNSET_I |
253 |
CToM<<< |
CToM<<< |
254 |
C Coefficients used to calculate sea ice thickness category limits |
C Coefficients used to calculate sea ice thickness category limits |
255 |
C after Lipscomb et al. (2001, JGR), Equ. 22 |
C after Lipscomb et al. (2001, JGR), Equ. 22 |
256 |
C choose between |
C choose between |
257 |
C - original parameters of Lipscomb et al. (2001): |
C - original parameters of Lipscomb et al. (2001): |
258 |
C c1=3.0/N, c2=15*c1, c3=3.0 |
C c1=3.0/N, c2=15*c1, c3=3.0 |
259 |
C - and a higher resolution of thin end of ITD: |
C - and a higher resolution of thin end of ITD: |
260 |
C c1=1.5/N, c2=42*c1, c3=3.3 |
C c1=1.5/N, c2=42*c1, c3=3.3 |
261 |
Hlimit_c1 = 3.0 |
Hlimit_c1 = 3.0 |
262 |
Hlimit_c2 = 15. |
Hlimit_c2 = 15. |
263 |
Hlimit_c3 = 3.0 |
Hlimit_c3 = 3.0 |
264 |
C>>>ToM |
C>>>ToM |
265 |
#endif |
#endif |
266 |
SEAICE_rhoIce = 0.91 _d +03 |
SEAICE_rhoIce = 0.91 _d +03 |
370 |
vIceFile = ' ' |
vIceFile = ' ' |
371 |
IMAX_TICE = 10 |
IMAX_TICE = 10 |
372 |
postSolvTempIter = 2 |
postSolvTempIter = 2 |
373 |
|
C LSR parameters |
374 |
|
SEAICE_LSRrelaxU = 0.95 _d 0 |
375 |
|
SEAICE_LSRrelaxV = 0.95 _d 0 |
376 |
SOLV_MAX_ITERS = UNSET_I |
SOLV_MAX_ITERS = UNSET_I |
377 |
SOLV_NCHECK= 2 |
SOLV_NCHECK= 2 |
378 |
C two pseudo time steps correspond to the original modified |
C two pseudo time steps correspond to the original modified |
680 |
ENDIF |
ENDIF |
681 |
|
|
682 |
#ifdef SEAICE_ITD |
#ifdef SEAICE_ITD |
683 |
CToM<<< |
C The ice thickness distribution (ITD) module can only be used with |
684 |
C The ice thickness distribution module can only be used with |
C package seaice thermodynamics (seaice_growth) |
|
C package seaice calling |
|
685 |
C SEAICE_ADVDIFF and |
C SEAICE_ADVDIFF and |
686 |
C SEAICE_GROWTH, i.e. needs usePW79thermodynamics = .TRUE. |
C SEAICE_GROWTH, i.e. needs usePW79thermodynamics = .TRUE. |
687 |
useTHSice = .FALSE. |
useTHSice = .FALSE. |
|
C>>>ToM |
|
688 |
#endif |
#endif |
689 |
IF ( useThSice ) THEN |
IF ( useThSice ) THEN |
690 |
C If the thsice package with the Winton thermodynamics is used |
C If the thsice package with the Winton thermodynamics is used |
965 |
ENDIF |
ENDIF |
966 |
#endif |
#endif |
967 |
|
|
968 |
|
C- store value of logical flag which might be changed in AD mode |
969 |
|
#ifdef ALLOW_AUTODIFF |
970 |
|
SEAICEuseFREEDRIFTinFwdMode = SEAICEuseFREEDRIFT |
971 |
|
SEAICEuseDYNAMICSinFwdMode = SEAICEuseDYNAMICS |
972 |
|
#endif /* ALLOW_AUTODIFF */ |
973 |
|
|
974 |
C Check the consitency of a few parameters |
C Check the consitency of a few parameters |
975 |
IF ( SEAICE_emissivity .LT. 1. _d -04 ) THEN |
IF ( SEAICE_emissivity .LT. 1. _d -04 ) THEN |
976 |
WRITE(msgBuf,'(2A)') |
WRITE(msgBuf,'(2A)') |