/[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.2 - (show annotations) (download)
Wed Dec 31 17:44:32 2003 UTC (20 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint52l_pre, checkpoint52e_pre, hrcube4, checkpoint52j_post, checkpoint52e_post, hrcube_1, checkpoint52l_post, checkpoint52k_post, checkpoint52f_post, hrcube5, checkpoint52i_post, checkpoint52j_pre, checkpoint52i_pre, checkpoint52h_pre, checkpoint52f_pre, hrcube_2, hrcube_3
Changes since 1.1: +19 -12 lines
change how Albedo is computed over sea-ice:
 - separate albedo S/R (thsice_albedo.F) from thsice_therm.F file.
 - use GISS formulation for snow-covered area ; turn on snow-aging ;
 - bare-ice albedo as in LANL code ;
 - addd diagnostic of surface albedo.

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

  ViewVC Help
Powered by ViewVC 1.1.22