32 |
|
|
33 |
C !INPUT/OUTPUT PARAMETERS: |
C !INPUT/OUTPUT PARAMETERS: |
34 |
C === Routine arguments === |
C === Routine arguments === |
35 |
|
C myThid :: My Thread Id. number |
36 |
INTEGER myThid |
INTEGER myThid |
37 |
CEOP |
CEOP |
38 |
|
|
39 |
#ifdef ALLOW_THSICE |
#ifdef ALLOW_THSICE |
40 |
|
|
41 |
C === Local variables === |
C === Local variables === |
42 |
C msgBuf - Informational/error message buffer |
C msgBuf :: Informational/error message buffer |
43 |
C iUnit - Work variable for IO unit number |
C iUnit :: Work variable for IO unit number |
44 |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
45 |
INTEGER iUnit |
INTEGER iUnit |
46 |
|
|
62 |
|
|
63 |
NAMELIST /THSICE_PARM01/ |
NAMELIST /THSICE_PARM01/ |
64 |
& startIceModel, stepFwd_oceMxL, |
& startIceModel, stepFwd_oceMxL, |
65 |
& thSIce_deltaT, ocean_deltaT, tauRelax_MxL, |
& thSIce_deltaT, thSIce_dtTemp, |
66 |
|
& ocean_deltaT, tauRelax_MxL, |
67 |
& hMxL_default, sMxL_default, vMxL_default, |
& hMxL_default, sMxL_default, vMxL_default, |
68 |
& stressReduction, |
& thSIce_diffK, thSIceAdvScheme, stressReduction, |
69 |
& thSIce_taveFreq, thSIce_diagFreq, thSIce_monFreq, |
& thSIce_taveFreq, thSIce_diagFreq, thSIce_monFreq, |
70 |
& thSIce_tave_mnc, thSIce_snapshot_mnc, thSIce_mon_mnc, |
& thSIce_tave_mnc, thSIce_snapshot_mnc, thSIce_mon_mnc, |
71 |
& thSIce_pickup_read_mnc, thSIce_pickup_write_mnc, |
& thSIce_pickup_read_mnc, thSIce_pickup_write_mnc, |
127 |
stepFwd_oceMxL = .FALSE. |
stepFwd_oceMxL = .FALSE. |
128 |
startIceModel = 0 |
startIceModel = 0 |
129 |
thSIce_deltaT = dTtracerLev(1) |
thSIce_deltaT = dTtracerLev(1) |
130 |
|
thSIce_dtTemp = UNSET_RL |
131 |
ocean_deltaT = dTtracerLev(1) |
ocean_deltaT = dTtracerLev(1) |
132 |
tauRelax_MxL = 0. _d 0 |
tauRelax_MxL = 0. _d 0 |
133 |
hMxL_default = 50. _d 0 |
hMxL_default = 50. _d 0 |
134 |
sMxL_default = 35. _d 0 |
sMxL_default = 35. _d 0 |
135 |
vMxL_default = 5. _d -2 |
vMxL_default = 5. _d -2 |
136 |
|
thSIce_diffK = 0. _d 0 |
137 |
|
thSIceAdvScheme = 0 |
138 |
stressReduction = 1. _d 0 |
stressReduction = 1. _d 0 |
139 |
IF ( useSEAICE ) stressReduction = 0. _d 0 |
IF ( useSEAICE ) stressReduction = 0. _d 0 |
140 |
thSIce_taveFreq = taveFreq |
thSIce_taveFreq = taveFreq |
175 |
C-- Close the open data file |
C-- Close the open data file |
176 |
CLOSE(iUnit) |
CLOSE(iUnit) |
177 |
|
|
178 |
|
C If using the same time step for both icetop temp solver |
179 |
|
C and ice thickness/growth, use thSIce_deltaT value |
180 |
|
IF ( thSIce_dtTemp .EQ. UNSET_RL ) thSIce_dtTemp=thSIce_deltaT |
181 |
|
|
182 |
C- Define other constants (from previous ones): |
C- Define other constants (from previous ones): |
183 |
Tmlt1=-mu_Tf*S_winton |
Tmlt1=-mu_Tf*S_winton |
184 |
rhoiw = rhosw - rhoi |
rhoiw = rhosw - rhoi |
203 |
ENDIF |
ENDIF |
204 |
#endif |
#endif |
205 |
|
|
206 |
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
207 |
C-- Check parameter consistency: |
C-- Check parameter consistency: |
208 |
|
IF ( thSIceAdvScheme.EQ.0 .AND. thSIce_diffK.NE.0. ) THEN |
209 |
|
WRITE(msgBuf,'(2A)') |
210 |
|
& 'THSICE_READPARMS: to use thSIce_diffK, needs to select', |
211 |
|
& ' one advection scheme (thSIceAdvScheme<>0)' |
212 |
|
CALL PRINT_ERROR( msgBuf , myThid ) |
213 |
|
STOP 'ABNORMAL END: THSICE_READPARMS' |
214 |
|
ENDIF |
215 |
|
#ifndef ALLOW_GENERIC_ADVDIFF |
216 |
|
IF ( thSIceAdvScheme.NE.0 ) THEN |
217 |
|
WRITE(msgBuf,'(2A)') |
218 |
|
& 'THSICE_READPARMS: Need to compile "generic_advdiff" pkg', |
219 |
|
& ' in order to use thSIceAdvScheme' |
220 |
|
CALL PRINT_ERROR( msgBuf , myThid ) |
221 |
|
STOP 'ABNORMAL END: THSICE_READPARMS' |
222 |
|
ENDIF |
223 |
|
#endif /* ndef ALLOW_GENERIC_ADVDIFF */ |
224 |
|
|
225 |
IF ( useSEAICE .AND. stressReduction.NE.0. _d 0 ) THEN |
IF ( useSEAICE .AND. stressReduction.NE.0. _d 0 ) THEN |
226 |
C-- If useSEAICE=.true., the stress is computed in seaice_model, |
C-- If useSEAICE=.true., the stress is computed in seaice_model, |
227 |
C-- so that it does not need any further reduction |
C-- so that it does not need any further reduction |
281 |
WRITE(iUnit,*) 'ThSI: frac_energy',frac_energy |
WRITE(iUnit,*) 'ThSI: frac_energy',frac_energy |
282 |
WRITE(iUnit,*) 'ThSI: hihig =',hihig |
WRITE(iUnit,*) 'ThSI: hihig =',hihig |
283 |
WRITE(iUnit,*) 'ThSI: stressReduction =',stressReduction |
WRITE(iUnit,*) 'ThSI: stressReduction =',stressReduction |
284 |
|
WRITE(iUnit,*) 'ThSI: thSIceAdvScheme =',thSIceAdvScheme |
285 |
|
WRITE(iUnit,*) 'ThSI: thSIce_diffK =',thSIce_diffK |
286 |
WRITE(iUnit,*) 'ThSI: thSIce_deltaT =',thSIce_deltaT |
WRITE(iUnit,*) 'ThSI: thSIce_deltaT =',thSIce_deltaT |
287 |
WRITE(iUnit,*) 'ThSI: ocean_deltaT =',ocean_deltaT |
WRITE(iUnit,*) 'ThSI: ocean_deltaT =',ocean_deltaT |
288 |
WRITE(iUnit,*) 'ThSI: stepFwd_oceMxL=',stepFwd_oceMxL |
WRITE(iUnit,*) 'ThSI: stepFwd_oceMxL=',stepFwd_oceMxL |