/[MITgcm]/MITgcm/pkg/thsice/thsice_readparms.F
ViewVC logotype

Contents of /MITgcm/pkg/thsice/thsice_readparms.F

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


Revision 1.3 - (show annotations) (download)
Wed Apr 7 23:40:34 2004 UTC (20 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint52n_post, checkpoint53d_post, checkpoint54a_pre, checkpoint55c_post, checkpoint54e_post, checkpoint54a_post, checkpoint53c_post, checkpoint55d_pre, checkpoint55j_post, checkpoint56b_post, checkpoint55h_post, checkpoint53b_post, checkpoint54b_post, checkpoint53b_pre, checkpoint55b_post, checkpoint54d_post, checkpoint56c_post, checkpoint52m_post, checkpoint55, checkpoint53a_post, checkpoint54, checkpoint54f_post, checkpoint55g_post, checkpoint55f_post, checkpoint55i_post, checkpoint56, checkpoint53, checkpoint53g_post, checkpoint55e_post, checkpoint53f_post, checkpoint55a_post, checkpoint53d_pre, checkpoint54c_post, checkpoint56a_post, checkpoint55d_post
Changes since 1.2: +33 -11 lines
major changes in pkg/thsice: allows atmospheric model (AIM) to use thsice.
- split thsice_therm.F in 2 S/R: thsice_solve4temp.F & thsice_calc_thickn.F
- move most of the ocean & bulk_force interface in thsice_main.F
- add a "slab ocean" component to be used with atmospheric model

1 C $Header: /u/gcmpack/MITgcm/pkg/thsice/thsice_readparms.F,v 1.2 2003/12/31 17:44:32 jmc Exp $
2 C $Name: $
3
4 #include "THSICE_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: THSICE_READPARMS
8 C !INTERFACE:
9 SUBROUTINE THSICE_READPARMS( myThid )
10
11 C !DESCRIPTION: \bv
12 C *==========================================================*
13 C | S/R THSICE_READPARMS
14 C | o Routine to initialize THSICE parameters and constants
15 C *==========================================================*
16 C | Initialize Th-Sea-ICE parameters, read in data.ice
17 C *==========================================================*
18 C \ev
19
20 C !USES:
21 IMPLICIT NONE
22
23 C === Global variables ===
24 #include "SIZE.h"
25 #include "EEPARAMS.h"
26 #include "PARAMS.h"
27 #include "GRID.h"
28 #include "THSICE_PARAMS.h"
29
30 C !INPUT/OUTPUT PARAMETERS:
31 C === Routine arguments ===
32 INTEGER myThid
33 CEOP
34
35 #ifdef ALLOW_THSICE
36
37 C === Local variables ===
38 C msgBuf - Informational/error message buffer
39 C iUnit - Work variable for IO unit number
40 CHARACTER*(MAX_LEN_MBUF) msgBuf
41 INTEGER iUnit
42
43 C-- Th-Sea-ICE parameter
44 NAMELIST /THSICE_CONST/
45 & rhos, rhoi, rhosw, rhofw,
46 & cpice, cpwater,
47 & kice, ksnow,
48 & transcoef, Lfresh, qsnow,
49 & albColdSnow, albWarmSnow, albOldSnow, hNewSnowAge,
50 & albIceMax, albIceMin, hAlbIce, hAlbSnow,
51 & i0, ksolar,
52 & saltice, S_winton, mu_Tf,
53 & Tf0kel,
54 & himin, Terrmax, nitMaxTsf, hiMax, hsMax,
55 & iceMaskmax, iceMaskmin, himin0,
56 & frac_energy, hihig
57
58 NAMELIST /THSICE_PARM01/
59 & startIceModel, stepFwd_oceMxL,
60 & thSIce_deltaT, ocean_deltaT, tauRelax_MxL,
61 & hMxL_default, sMxL_default, vMxL_default,
62 & stressReduction,
63 & thSIce_taveFreq, thSIce_diagFreq, thSIce_monFreq
64
65 _BEGIN_MASTER(myThid)
66
67 WRITE(msgBuf,'(A)') ' THSICE_READPARMS: opening data.ice'
68 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
69 & SQUEEZE_RIGHT , 1)
70
71 CALL OPEN_COPY_DATA_FILE(
72 I 'data.ice', 'THSICE_READPARMS',
73 O iUnit,
74 I myThid )
75
76 C-- Default values (constants)
77 rhos = 330. _d 0
78 rhoi = 900. _d 0
79 rhosw = rhoConst
80 rhofw = rhoConstFresh
81 cpice = 2106. _d 0
82 cpwater = HeatCapacity_Cp
83 kice = 2.03 _d 0
84 ksnow = 0.30 _d 0
85 transcoef=0.006 _d 0
86 Lfresh = 3.34 _d 5
87 qsnow = Lfresh
88 albColdSnow= 0.85 _d 0
89 albWarmSnow= 0.70 _d 0
90 albOldSnow = 0.55 _d 0
91 albIceMax = 0.65 _d 0
92 albIceMin = 0.20 _d 0
93 hAlbIce = 0.50 _d 0
94 hAlbSnow = 0.30 _d 0
95 hNewSnowAge= 2. _d -3
96 i0 = 0.3 _d 0
97 ksolar = 1.5 _d 0
98 saltice = 4. _d 0
99 S_winton = 1. _d 0
100 mu_Tf = 0.054 _d 0
101 Tf0kel = celsius2K
102 himin = 0.01 _d 0
103 Terrmax = 5.0 _d -1
104 nitMaxTsf= 20
105 hiMax = 10. _d 0
106 hsMax = 10. _d 0
107 iceMaskmax = 1. _d 0
108 iceMaskmin = .1 _d 0
109 himin0 = 0.2 _d 0
110 frac_energy= .4 _d 0
111 hihig = 2.5 _d 0
112
113 C-- Default values (parameters)
114 stepFwd_oceMxL = .FALSE.
115 startIceModel = 0
116 thSIce_deltaT = deltaTtracer
117 ocean_deltaT = deltaTtracer
118 tauRelax_MxL = 0. _d 0
119 hMxL_default = 50. _d 0
120 sMxL_default = 35. _d 0
121 vMxL_default = 5. _d -2
122 stressReduction = 1. _d 0
123 thSIce_taveFreq = taveFreq
124 thSIce_diagFreq = dumpFreq
125 thSIce_monFreq = monitorFreq
126
127 C-- Read parameters from open data file
128 READ(UNIT=iUnit,NML=THSICE_CONST)
129 WRITE(msgBuf,'(A)') ' THSICE_READPARMS: read THSICE_CONST'
130 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
131 & SQUEEZE_RIGHT , 1)
132
133 READ(UNIT=iUnit,NML=THSICE_PARM01)
134 WRITE(msgBuf,'(A)') ' THSICE_READPARMS: read THSICE_PARM01'
135 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
136 & SQUEEZE_RIGHT , 1)
137
138 C-- Close the open data file
139 CLOSE(iUnit)
140
141 C- Define other constants (from previous ones):
142 Tmlt1=-mu_Tf*S_winton
143 rhoiw = rhosw - rhoi
144
145 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
146 iUnit = standardMessageUnit
147 c iUnit = 88
148 c OPEN(iUnit,file='thsice_check_params',status='unknown')
149 WRITE(iUnit,*) 'ThSI: rhos =',rhos
150 WRITE(iUnit,*) 'ThSI: rhoi =',rhoi
151 WRITE(iUnit,*) 'ThSI: rhosw =',rhosw
152 WRITE(iUnit,*) 'ThSI: rhofw =',rhofw
153 WRITE(iUnit,*) 'ThSI: rhoiw =',rhoiw
154 WRITE(iUnit,*) 'ThSI: cpice =',cpice
155 WRITE(iUnit,*) 'ThSI: cpwater =',cpwater
156 WRITE(iUnit,*) 'ThSI: kice =',kice
157 WRITE(iUnit,*) 'ThSI: ksnow =',ksnow
158 WRITE(iUnit,*) 'ThSI: transcoef=',transcoef
159 WRITE(iUnit,*) 'ThSI: Lfresh =',Lfresh
160 WRITE(iUnit,*) 'ThSI: qsnow =',qsnow
161 WRITE(iUnit,*) 'ThSI: albColdSnow=',albColdSnow
162 WRITE(iUnit,*) 'ThSI: albWarmSnow=',albWarmSnow
163 WRITE(iUnit,*) 'ThSI: albOldSnow =',albOldSnow
164 WRITE(iUnit,*) 'ThSI: hNewSnowAge=',hNewSnowAge
165 WRITE(iUnit,*) 'ThSI: albIceMax =',albIceMax
166 WRITE(iUnit,*) 'ThSI: albIceMin =',albIceMin
167 WRITE(iUnit,*) 'ThSI: hAlbIce =',hAlbIce
168 WRITE(iUnit,*) 'ThSI: hAlbSnow =',hAlbSnow
169 WRITE(iUnit,*) 'ThSI: i0 =',i0
170 WRITE(iUnit,*) 'ThSI: ksolar =',ksolar
171 WRITE(iUnit,*) 'ThSI: saltice =',saltice
172 WRITE(iUnit,*) 'ThSI: S_winton=',S_winton
173 WRITE(iUnit,*) 'ThSI: mu_Tf =',mu_Tf
174 WRITE(iUnit,*) 'ThSI: Tf0kel =',Tf0kel
175 WRITE(iUnit,*) 'ThSI: Tmlt1 =',Tmlt1
176 WRITE(iUnit,*) 'ThSI: himin =',himin
177 WRITE(iUnit,*) 'ThSI: Terrmax =',Terrmax
178 WRITE(iUnit,*) 'ThSI: nitMaxTsf=',nitMaxTsf
179 WRITE(iUnit,*) 'ThSI: hiMax =',hiMax
180 WRITE(iUnit,*) 'ThSI: hsMax =',hsMax
181 WRITE(iUnit,*) 'ThSI: iceMaskmax=',iceMaskmax
182 WRITE(iUnit,*) 'ThSI: iceMaskmin=',iceMaskmin
183 WRITE(iUnit,*) 'ThSI: himin0 =',himin0
184 WRITE(iUnit,*) 'ThSI: frac_energy',frac_energy
185 WRITE(iUnit,*) 'ThSI: hihig =',hihig
186 WRITE(iUnit,*) 'ThSI: stressReduction =',stressReduction
187 WRITE(iUnit,*) 'ThSI: thSIce_deltaT =',thSIce_deltaT
188 WRITE(iUnit,*) 'ThSI: ocean_deltaT =',ocean_deltaT
189 WRITE(iUnit,*) 'ThSI: stepFwd_oceMxL=',stepFwd_oceMxL
190 WRITE(iUnit,*) 'ThSI: tauRelax_MxL =',tauRelax_MxL
191 WRITE(iUnit,*) 'ThSI: hMxL_default =',hMxL_default
192 WRITE(iUnit,*) 'ThSI: sMxL_default =',sMxL_default
193 WRITE(iUnit,*) 'ThSI: vMxL_default =',vMxL_default
194 WRITE(iUnit,*) 'ThSI: thSIce_taveFreq=',thSIce_taveFreq
195 WRITE(iUnit,*) 'ThSI: thSIce_diagFreq=',thSIce_diagFreq
196 WRITE(iUnit,*) 'ThSI: thSIce_monFreq =',thSIce_monFreq
197 WRITE(iUnit,*) 'ThSI: startIceModel =',startIceModel
198 IF (iUnit.EQ.88) CLOSE(iUnit)
199 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
200
201 _END_MASTER(myThid)
202
203 C-- Everyone else must wait for the parameters to be loaded
204 _BARRIER
205
206 #endif /* ALLOW_THSICE */
207
208 RETURN
209 END

  ViewVC Help
Powered by ViewVC 1.1.22