/[MITgcm]/MITgcm/pkg/land/land_readparms.F
ViewVC logotype

Annotation of /MITgcm/pkg/land/land_readparms.F

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


Revision 1.15 - (hide annotations) (download)
Wed Aug 9 15:23:37 2017 UTC (6 years, 10 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, HEAD
Changes since 1.14: +6 -2 lines
replace CLOSE(nmlfileUnit) with CLOSE(nmlfileUnit,STATUS='DELETE') to remove
scratchfiles after closing, except for SINGLE_DISK_IO, when everything
stays the same

1 mlosch 1.15 C $Header: /u/gcmpack/MITgcm/pkg/land/land_readparms.F,v 1.14 2014/05/28 21:59:32 jmc Exp $
2     C $Name: BASE $
3 jmc 1.1
4     #include "LAND_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: LAND_READPARMS
8     C !INTERFACE:
9     SUBROUTINE LAND_READPARMS( myThid )
10    
11     C !DESCRIPTION: \bv
12     C *==========================================================*
13     C | S/R LAND_READPARMS
14 jmc 1.14 C | o Read Land package parameters from parameter
15     C | file "data.land"
16 jmc 1.1 C *==========================================================*
17     C \ev
18 jmc 1.10
19 jmc 1.1 C !USES:
20     IMPLICIT NONE
21    
22     C == Global variables ===
23     C-- size for MITgcm & Land package :
24     #include "LAND_SIZE.h"
25    
26     #include "EEPARAMS.h"
27     #include "PARAMS.h"
28     #include "LAND_PARAMS.h"
29 edhill 1.9 #ifdef ALLOW_MNC
30 jmc 1.14 # include "MNC_PARAMS.h"
31 edhill 1.9 #endif
32 jmc 1.1
33     C !INPUT/OUTPUT PARAMETERS:
34 jmc 1.14 C myThid :: my Thread Id number
35 jmc 1.1 INTEGER myThid
36    
37     #ifdef ALLOW_LAND
38 jmc 1.14 C !LOCAL VARIABLES:
39     C msgBuf :: Informational/error message buffer
40 jmc 1.1 C iUnit :: Work variable for IO unit number
41     C k :: loop counter
42     CHARACTER*(MAX_LEN_MBUF) msgBuf
43 jmc 1.14 INTEGER iUnit, k
44 jmc 1.1 _RL tmpvar
45 jmc 1.14 CEOP
46 jmc 1.1
47     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
48    
49     C-- Land model parameters:
50 jmc 1.4 C land_calc_grT :: step forward ground Temperature
51     C land_calc_grW :: step forward soil moiture
52     C land_impl_grT :: solve ground Temperature implicitly
53     C land_calc_snow :: step forward snow thickness
54     C land_calc_alb :: compute albedo of snow over land
55     C land_oldPickup :: restart from an old pickup (= before checkpoint 52j)
56     C land_grT_iniFile :: File containing initial ground Temp.
57     C land_grW_iniFile :: File containing initial ground Water.
58     C land_snow_iniFile :: File containing initial snow thickness.
59     C land_deltaT :: land model time-step
60     C land_taveFreq :: Frequency^-1 for time-Aver. output (s)
61     C land_diagFreq :: Frequency^-1 for diagnostic output (s)
62     C land_monFreq :: Frequency^-1 for monitor output (s)
63     C land_dzF :: layer thickness
64 jmc 1.1 NAMELIST /LAND_MODEL_PAR/
65 jmc 1.10 & land_calc_grT, land_calc_grW,
66 jmc 1.4 & land_impl_grT, land_calc_snow,
67 jmc 1.10 & land_calc_alb, land_oldPickup,
68 jmc 1.4 & land_grT_iniFile, land_grW_iniFile, land_snow_iniFile,
69     & land_deltaT, land_taveFreq, land_diagFreq, land_monFreq,
70 edhill 1.9 & land_dzF,
71 jmc 1.10 & land_timeave_mnc, land_snapshot_mnc, land_mon_mnc,
72     & land_pickup_write_mnc, land_pickup_read_mnc
73 edhill 1.9
74 jmc 1.1 C-- Physical constants :
75     C land_grdLambda :: Thermal conductivity of the ground
76 jmc 1.4 C land_heatCs :: Heat capacity of dry soil (J/m3/K)
77     C land_CpWater :: Heat capacity of water (J/kg/K)
78 jmc 1.1 C land_wTauDiff :: soil moisture diffusion time scale
79     C land_waterCap :: field capacity per meter of soil
80     C land_fractRunOff:: fraction of water in excess which run-off
81 jmc 1.4 C land_rhoLiqW :: density of liquid water (kg/m3)
82     C land_rhoSnow :: density of snow (kg/m3)
83     C land_Lfreez :: Latent heat of freezing (J/kg)
84 jmc 1.5 C land_hMaxSnow :: Maximum snow-thickness (m)
85     C diffKsnow :: thermal conductivity of snow (W/m/K)
86 jmc 1.4 C timeSnowAge :: snow aging time scale (s)
87     C hNewSnowAge :: new snow thickness that refresh the snow-age (by 1/e)
88     C albColdSnow :: albedo of cold (=dry) new snow (Tsfc < -10)
89     C albWarmSnow :: albedo of warm (=wet) new snow (Tsfc = 0)
90     C albOldSnow :: albedo of old snow (snowAge > 35.d)
91     C hAlbSnow :: snow thickness for albedo transition: snow/ground
92 jmc 1.1
93     NAMELIST /LAND_PHYS_PAR/
94 jmc 1.4 & land_grdLambda, land_heatCs, land_CpWater,
95     & land_wTauDiff, land_waterCap, land_fractRunOff,
96     & land_rhoLiqW,
97 jmc 1.10 & land_rhoSnow, land_Lfreez,
98 jmc 1.5 & land_hMaxSnow, diffKsnow, timeSnowAge, hNewSnowAge,
99 dfer 1.12 & albColdSnow, albWarmSnow, tempSnowAlbL, albOldSnow, hAlbSnow
100 jmc 1.1
101     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
102    
103 jmc 1.14 IF ( .NOT.useLand ) THEN
104     C- pkg LAND is not used
105     _BEGIN_MASTER(myThid)
106     C- Track pkg activation status:
107     C print a (weak) warning if data.land is found
108     CALL PACKAGES_UNUSED_MSG( 'useLand', ' ', ' ' )
109     _END_MASTER(myThid)
110     RETURN
111     ENDIF
112    
113 jmc 1.11 _BEGIN_MASTER(myThid)
114    
115 jmc 1.1 C- Set default value:
116 jmc 1.10 land_calc_grT = .TRUE.
117 jmc 1.1 land_calc_grW = .TRUE.
118 jmc 1.10 land_impl_grT = .TRUE.
119     land_calc_snow= .TRUE.
120     land_calc_alb = .TRUE.
121     land_oldPickup= .FALSE.
122 jmc 1.2 land_grT_iniFile = ' '
123     land_grW_iniFile = ' '
124 jmc 1.4 land_snow_iniFile= ' '
125 jmc 1.1 land_deltaT = deltaTclock
126     land_taveFreq = taveFreq
127     land_diagFreq = dumpFreq
128 jmc 1.4 land_monFreq = monitorFreq
129 edhill 1.9 #ifdef ALLOW_MNC
130     land_timeave_mnc = timeave_mnc .AND. useMNC
131     land_snapshot_mnc = snapshot_mnc .AND. useMNC
132 jmc 1.10 land_mon_mnc = monitor_mnc .AND. useMNC
133 edhill 1.9 land_pickup_write_mnc = pickup_write_mnc .AND. useMNC
134     land_pickup_read_mnc = pickup_read_mnc .AND. useMNC
135     #else
136     land_timeave_mnc = .FALSE.
137     land_snapshot_mnc = .FALSE.
138 jmc 1.10 land_mon_mnc = .FALSE.
139 edhill 1.9 land_pickup_write_mnc = .FALSE.
140     land_pickup_read_mnc = .FALSE.
141     #endif
142 jmc 1.1 land_grdLambda= 0.42 _d 0
143     land_heatCs = 1.13 _d 6
144 jmc 1.4 land_CpWater = 4.2 _d 3
145     c land_CpWater = HeatCapacity_Cp
146 jmc 1.1 land_wTauDiff = 48. _d 0*3600. _d 0
147     land_waterCap = 0.24 _d 0
148     land_fractRunOff = 0.5 _d 0
149 jmc 1.4 land_rhoLiqW = rhoConstFresh
150     C- snow parameters:
151     land_rhoSnow = 330. _d 0
152     land_Lfreez = 334. _d 3
153 jmc 1.5 land_hMaxSnow = 1. _d 3
154 jmc 1.4 diffKsnow = 0.30 _d 0
155     timeSnowAge = 50. _d 0 * 86400. _d 0
156     hNewSnowAge = 2. _d -3
157     albColdSnow = 0.85 _d 0
158     albWarmSnow = 0.70 _d 0
159 dfer 1.12 tempSnowAlbL = -10. _d 0
160 jmc 1.4 albOldSnow = 0.55 _d 0
161     hAlbSnow = 0.30 _d 0
162     C- layer thickness:
163 jmc 1.1 DO k=1,land_nLev
164     land_dzF(k) = -1.
165     land_rec_dzC(k) = -1.
166     ENDDO
167 jmc 1.10
168 jmc 1.1 WRITE(msgBuf,'(A)') ' LAND_READPARMS: opening data.land'
169 jmc 1.11 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
170     I SQUEEZE_RIGHT, myThid )
171 jmc 1.1
172     CALL OPEN_COPY_DATA_FILE( 'data.land', 'LAND_READPARMS',
173     O iUnit, myThid )
174    
175     C-- Read parameters from open data file:
176    
177     C- Parameters for Land model:
178     READ(UNIT=iUnit,NML=LAND_MODEL_PAR)
179    
180     C- Physical Constants for Land package
181     READ(UNIT=iUnit,NML=LAND_PHYS_PAR)
182    
183 jmc 1.10 WRITE(msgBuf,'(A)')
184 jmc 1.1 & ' LAND_READPARMS: finished reading data.land'
185 jmc 1.11 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
186     I SQUEEZE_RIGHT, myThid )
187 jmc 1.10
188 jmc 1.1 C-- Close the open data file
189 mlosch 1.15 #ifdef SINGLE_DISK_IO
190 jmc 1.1 CLOSE(iUnit)
191 mlosch 1.15 #else
192     CLOSE(iUnit,STATUS='DELETE')
193     #endif /* SINGLE_DISK_IO */
194 jmc 1.1
195     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
196 jmc 1.14 C-- Derive other parameters:
197 jmc 1.4
198     land_impl_grT = land_calc_grT .AND. land_impl_grT
199    
200     tmpvar = 0. _d 0
201     DO k=1,land_nLev
202     tmpvar = tmpvar+land_dzF(k)
203     IF (tmpvar.GT.0. _d 0) land_rec_dzC(k) = 2. _d 0 / tmpvar
204     tmpvar = land_dzF(k)
205     ENDDO
206 jmc 1.10 IF ( land_Lfreez.NE. 0. _d 0 ) THEN
207 jmc 1.4 recip_Lfreez = 1. _d 0 / land_Lfreez
208     ELSE
209     recip_Lfreez = 0. _d 0
210     ENDIF
211    
212 edhill 1.9 #ifdef ALLOW_MNC
213 jmc 1.10 land_timeave_mnc = useMNC .AND. land_timeave_mnc
214     land_snapshot_mnc = useMNC .AND. land_snapshot_mnc
215     land_mon_mnc = useMNC .AND. land_mon_mnc
216     land_pickup_write_mnc = useMNC .AND. land_pickup_write_mnc
217     land_pickup_read_mnc = useMNC .AND. land_pickup_read_mnc
218    
219     land_timeave_mdsio = (.NOT.land_timeave_mnc)
220     & .OR. outputTypesInclusive
221     land_snapshot_mdsio = (.NOT.land_snapshot_mnc)
222     & .OR. outputTypesInclusive
223     land_mon_stdio = (.NOT.land_mon_mnc)
224     & .OR. outputTypesInclusive
225     land_pickup_write_mdsio = (.NOT.land_pickup_write_mnc)
226     & .OR. outputTypesInclusive
227 edhill 1.9 #else
228     land_timeave_mnc = .FALSE.
229     land_snapshot_mnc = .FALSE.
230 jmc 1.10 land_mon_mnc = .FALSE.
231 edhill 1.9 land_pickup_write_mnc = .FALSE.
232     land_pickup_read_mnc = .FALSE.
233     land_timeave_mdsio = .TRUE.
234     land_snapshot_mdsio = .TRUE.
235 jmc 1.10 land_mon_stdio = .TRUE.
236 edhill 1.9 land_pickup_write_mdsio = .TRUE.
237     #endif
238    
239 jmc 1.1 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
240    
241     _END_MASTER(myThid)
242 jmc 1.10
243 jmc 1.1 C-- Everyone else must wait for the parameters to be loaded
244     _BARRIER
245    
246     #endif /* ALLOW_LAND */
247    
248     RETURN
249     END

  ViewVC Help
Powered by ViewVC 1.1.22