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

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

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


Revision 1.4 - (hide annotations) (download)
Sat Dec 4 00:19:32 2004 UTC (19 years, 5 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57a_post, checkpoint57a_pre, checkpoint57
Changes since 1.3: +3 -3 lines
depth convergence accelerator: replace deltaTtracer by dTtracerLev(k)

1 jmc 1.4 C $Header: /u/gcmpack/MITgcm/pkg/thsice/thsice_readparms.F,v 1.3 2004/04/07 23:40:34 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "THSICE_OPTIONS.h"
5    
6 jmc 1.3 CBOP
7     C !ROUTINE: THSICE_READPARMS
8     C !INTERFACE:
9 jmc 1.1 SUBROUTINE THSICE_READPARMS( myThid )
10 jmc 1.3
11     C !DESCRIPTION: \bv
12     C *==========================================================*
13     C | S/R THSICE_READPARMS
14 jmc 1.1 C | o Routine to initialize THSICE parameters and constants
15 jmc 1.3 C *==========================================================*
16 jmc 1.1 C | Initialize Th-Sea-ICE parameters, read in data.ice
17 jmc 1.3 C *==========================================================*
18     C \ev
19    
20     C !USES:
21 jmc 1.1 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 jmc 1.3 C !INPUT/OUTPUT PARAMETERS:
31 jmc 1.1 C === Routine arguments ===
32     INTEGER myThid
33 jmc 1.3 CEOP
34 jmc 1.1
35     #ifdef ALLOW_THSICE
36    
37     C === Local variables ===
38 jmc 1.3 C msgBuf - Informational/error message buffer
39 jmc 1.1 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 jmc 1.2 & albColdSnow, albWarmSnow, albOldSnow, hNewSnowAge,
50     & albIceMax, albIceMin, hAlbIce, hAlbSnow,
51 jmc 1.1 & 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 jmc 1.3 & startIceModel, stepFwd_oceMxL,
60     & thSIce_deltaT, ocean_deltaT, tauRelax_MxL,
61     & hMxL_default, sMxL_default, vMxL_default,
62 jmc 1.1 & 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 jmc 1.2 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 jmc 1.1 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 jmc 1.3 stepFwd_oceMxL = .FALSE.
115     startIceModel = 0
116 jmc 1.4 thSIce_deltaT = dTtracerLev(1)
117     ocean_deltaT = dTtracerLev(1)
118 jmc 1.3 tauRelax_MxL = 0. _d 0
119     hMxL_default = 50. _d 0
120     sMxL_default = 35. _d 0
121     vMxL_default = 5. _d -2
122 jmc 1.1 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 jmc 1.2 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 jmc 1.1 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 jmc 1.3 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 jmc 1.1 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