/[MITgcm]/MITgcm/pkg/exf/exf_readparms.F
ViewVC logotype

Annotation of /MITgcm/pkg/exf/exf_readparms.F

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


Revision 1.69 - (hide annotations) (download)
Wed Dec 21 17:19:08 2011 UTC (12 years, 6 months ago) by jmc
Branch: MAIN
Changes since 1.68: +68 -31 lines
USE_EXF_INTERPOLATION : add a set of run-time param ({inputfield}_interpMethod),
    one for each interpolated input field, to select the interpolation method
    with a value of zero switching off the interpolation;

1 jmc 1.69 C $Header: /u/gcmpack/MITgcm/pkg/exf/exf_readparms.F,v 1.68 2011/12/12 19:02:45 jmc Exp $
2 jmc 1.11 C $Name: $
3 heimbach 1.1
4 edhill 1.12 #include "EXF_OPTIONS.h"
5 jmc 1.68 #ifdef ALLOW_EXCH2
6     # include "W2_OPTIONS.h"
7     #endif /* ALLOW_EXCH2 */
8 heimbach 1.1
9 jmc 1.48 SUBROUTINE EXF_READPARMS( myThid )
10 heimbach 1.1
11     c ==================================================================
12     c SUBROUTINE exf_readparms
13     c ==================================================================
14     c
15     c o This routine initialises the package that calculates external
16     c forcing fields for a given timestep of the MITgcmUV. Parameters
17     c for this package are set in "data.externalforcing". Some additional
18 edhill 1.12 c precompiler switches have to be specified in "EXF_OPTIONS.h".
19 heimbach 1.1 c
20     c started: Christian Eckert eckert@mit.edu 30-Jun-1999
21     c
22     c changed: Christian Eckert eckert@mit.edu 11-Jan-2000
23     c - Restructured the code in order to create a package
24     c for the MITgcmUV.
25     c Christian Eckert eckert@mit.edu 12-Feb-2000
26     c - Changed Routine names (package prefix: exf_)
27 heimbach 1.2 c changed: Patrick Heimbach, heimbach@mit.edu 04-May-2000
28 heimbach 1.1 c - changed the handling of precip and sflux with respect
29     c to CPP options ALLOW_BULKFORMULAE and ALLOW_ATM_TEMP
30     c changed: Ralf.Giering@FastOpt.de 25-Mai-20000
31 heimbach 1.2 c - moved relaxation and climatology to extra routines
32 heimbach 1.1 c Patrick Heimbach, heimbach@mit.edu 04-May-2000
33     c - added obcs parameters
34 heimbach 1.2 c changed: Virginie Thierry, vthierry@ucsd.edu 04-June-2001
35 jmc 1.53 c - added new obcs parameters (for each boundaries)
36 heimbach 1.3 c included runoff D. Stammer, Nov. 25, 2001
37     c included pressure forcing. heimbach@mit.edu 05-Nov-2002
38 dimitri 1.5 c added "repeatPeriod" for cycling of forcing datasets 19-Dec-2002
39 dimitri 1.6 c mods for pkg/seaice: menemenlis@jpl.nasa.gov 20-Dec-2002
40 heimbach 1.1 c
41     c ==================================================================
42     c SUBROUTINE exf_readparms
43     c ==================================================================
44    
45     implicit none
46    
47     c == global variables ==
48    
49     #include "EEPARAMS.h"
50     #include "SIZE.h"
51 heimbach 1.15 #include "PARAMS.h"
52 jmc 1.68 #ifdef USE_EXF_INTERPOLATION
53     # ifdef ALLOW_EXCH2
54     # include "W2_EXCH2_SIZE.h"
55     # include "W2_EXCH2_TOPOLOGY.h"
56     # endif /* ALLOW_EXCH2 */
57     # include "SET_GRID.h"
58     #endif /* USE_EXF_INTERPOLATION */
59 jmc 1.48 c#include "cal.h"
60 jmc 1.40 #include "EXF_PARAM.h"
61     #include "EXF_CONSTANTS.h"
62 heimbach 1.1
63     c == routine arguments ==
64    
65 jmc 1.48 integer myThid
66 heimbach 1.1
67     c == local variables ==
68    
69 jmc 1.55 #ifdef USE_EXF_INTERPOLATION
70 jmc 1.68 INTEGER gridNx, gridNy
71 jmc 1.55 integer i
72 jmc 1.68 #endif /* USE_EXF_INTERPOLATION */
73 heimbach 1.26 integer iUnit
74    
75 jmc 1.68 character*(max_len_mbuf) msgBuf
76 heimbach 1.1
77     c == end of interface ==
78    
79     c Surface flux data.
80 heimbach 1.43 NAMELIST /EXF_NML_01/
81 jmc 1.47 & windstressmax, repeatPeriod, exf_albedo,
82 mlosch 1.31 & ocean_emissivity, ice_emissivity, snow_emissivity,
83 jmc 1.47 & exf_iceCd, exf_iceCe, exf_iceCh,
84 heimbach 1.43 & exf_scal_BulkCdn, climtempfreeze,
85 jmc 1.63 & exf_iprec, exf_iprec_obcs, exf_yftype,
86     & exf_verbose, useExfCheckRange, exf_monFreq,
87     & useExfYearlyFields, twoDigitYear,
88 jmc 1.48 & useStabilityFct_overIce, readStressOnAgrid, readStressOnCgrid,
89 gforget 1.58 & useRelativeWind, noNegativeEvap,
90 gforget 1.59 & select_ZenAlbedo, useExfZenIncoming,
91 jmc 1.47 & hu, ht, umin, atmrho, atmcp, cen2kel, gravity_mks,
92 heimbach 1.46 & cdrag_1, cdrag_2, cdrag_3, cstanton_1, cstanton_2, cdalton,
93     & flamb, flami, zolmin, zref,
94     & cvapor_fac, cvapor_exp, cvapor_fac_ice, cvapor_exp_ice,
95 jmc 1.52 & humid_fac, gamma_blk, saltsat, sstExtrapol, psim_fac
96 heimbach 1.43
97     NAMELIST /EXF_NML_02/
98     & hfluxfile, atempfile, aqhfile,
99     & sfluxfile, precipfile, runofffile,
100     & ustressfile, vstressfile, evapfile,
101     & snowprecipfile, uwindfile, vwindfile,
102     & wspeedfile, swfluxfile, lwfluxfile,
103     & apressurefile, swdownfile, lwdownfile,
104 jmc 1.53 & areamaskfile, climsstfile, climsssfile,
105 heimbach 1.60 & climustrfile, climvstrfile,
106 heimbach 1.1 & hfluxstartdate1, hfluxstartdate2, hfluxperiod,
107     & atempstartdate1, atempstartdate2, atempperiod,
108     & aqhstartdate1, aqhstartdate2, aqhperiod,
109     & sfluxstartdate1, sfluxstartdate2, sfluxperiod,
110 dimitri 1.5 & evapstartdate1, evapstartdate2, evapperiod,
111 heimbach 1.1 & precipstartdate1, precipstartdate2, precipperiod,
112 heimbach 1.30 & snowprecipstartdate1, snowprecipstartdate2, snowprecipperiod,
113 heimbach 1.3 & runoffstartdate1, runoffstartdate2, runoffperiod,
114 heimbach 1.1 & ustressstartdate1, ustressstartdate2, ustressperiod,
115     & vstressstartdate1, vstressstartdate2, vstressperiod,
116     & uwindstartdate1, uwindstartdate2, uwindperiod,
117     & vwindstartdate1, vwindstartdate2, vwindperiod,
118 heimbach 1.30 & wspeedstartdate1, wspeedstartdate2, wspeedperiod,
119 heimbach 1.1 & swfluxstartdate1, swfluxstartdate2, swfluxperiod,
120     & lwfluxstartdate1, lwfluxstartdate2, lwfluxperiod,
121 dimitri 1.6 & swdownstartdate1, swdownstartdate2, swdownperiod,
122     & lwdownstartdate1, lwdownstartdate2, lwdownperiod,
123 heimbach 1.3 &apressurestartdate1,apressurestartdate2,apressureperiod,
124 gforget 1.51 & areamaskstartdate1,areamaskstartdate2,areamaskperiod,
125     & climsststartdate1, climsststartdate2, climsstperiod,
126 gforget 1.56 & climsssstartdate1, climsssstartdate2, climsssperiod,
127 heimbach 1.60 & climustrstartdate1, climustrstartdate2,climustrperiod,
128     & climvstrstartdate1, climvstrstartdate2,climvstrperiod,
129     & areamaskTauRelax, climsstTauRelax, climsssTauRelax,
130     & climustrTauRelax,climvstrTauRelax
131 heimbach 1.43
132     NAMELIST /EXF_NML_03/
133 heimbach 1.30 & exf_inscal_hflux, exf_inscal_sflux, exf_inscal_evap,
134 dimitri 1.14 & exf_inscal_ustress, exf_inscal_vstress,
135 heimbach 1.30 & exf_inscal_uwind, exf_inscal_vwind, exf_inscal_wspeed,
136     & exf_inscal_atemp, exf_offset_atemp, exf_inscal_aqh,
137 dimitri 1.14 & exf_inscal_sst, exf_inscal_sss,
138     & exf_inscal_swflux, exf_inscal_lwflux, exf_inscal_precip,
139 heimbach 1.30 & exf_inscal_runoff, exf_inscal_apressure, exf_inscal_snowprecip,
140 heimbach 1.8 & exf_inscal_swdown, exf_inscal_lwdown,
141 heimbach 1.43 & exf_inscal_climsst, exf_inscal_climsss,
142 heimbach 1.60 & exf_inscal_climustr, exf_inscal_climvstr,
143 heimbach 1.8 & exf_outscal_hflux, exf_outscal_ustress, exf_outscal_vstress,
144 dimitri 1.14 & exf_outscal_swflux, exf_outscal_sst, exf_outscal_sss,
145 heimbach 1.8 & exf_outscal_sflux, exf_outscal_apressure,
146 jmc 1.53 & hfluxconst, atempconst, aqhconst, sfluxconst, evapconst,
147 jmc 1.32 & precipconst, snowprecipconst, runoffconst, ustressconst,
148     & vstressconst, uwindconst, vwindconst, wspeedconst, swfluxconst,
149     & lwfluxconst, swdownconst, lwdownconst, apressureconst,
150 gforget 1.51 & areamaskconst, climsstconst, climsssconst,
151 heimbach 1.60 & climustrconst, climvstrconst,
152 heimbach 1.29 & hflux_exfremo_intercept, hflux_exfremo_slope,
153 heimbach 1.28 & atemp_exfremo_intercept, atemp_exfremo_slope,
154     & aqh_exfremo_intercept, aqh_exfremo_slope,
155     & sflux_exfremo_intercept, sflux_exfremo_slope,
156     & evap_exfremo_intercept, evap_exfremo_slope,
157     & precip_exfremo_intercept, precip_exfremo_slope,
158 heimbach 1.30 & snowprecip_exfremo_intercept, snowprecip_exfremo_slope,
159 heimbach 1.28 & runoff_exfremo_intercept, runoff_exfremo_slope,
160     & ustress_exfremo_intercept, ustress_exfremo_slope,
161     & vstress_exfremo_intercept, vstress_exfremo_slope,
162     & uwind_exfremo_intercept, uwind_exfremo_slope,
163     & vwind_exfremo_intercept, vwind_exfremo_slope,
164 heimbach 1.30 & wspeed_exfremo_intercept, wspeed_exfremo_slope,
165 heimbach 1.28 & swflux_exfremo_intercept, swflux_exfremo_slope,
166     & lwflux_exfremo_intercept, lwflux_exfremo_slope,
167     & swdown_exfremo_intercept, swdown_exfremo_slope,
168     & lwdown_exfremo_intercept, lwdown_exfremo_slope,
169 heimbach 1.43 & apressure_exfremo_intercept, apressure_exfremo_slope,
170 jmc 1.55 & areamask_exfremo_intercept, areamask_exfremo_slope,
171 heimbach 1.43 & climsst_exfremo_intercept, climsst_exfremo_slope,
172 heimbach 1.60 & climsss_exfremo_intercept, climsss_exfremo_slope,
173     & climustr_exfremo_intercept, climustr_exfremo_slope,
174     & climvstr_exfremo_intercept, climvstr_exfremo_slope
175 heimbach 1.43
176 mlosch 1.66 #ifdef USE_EXF_INTERPOLATION
177 heimbach 1.43 NAMELIST /EXF_NML_04/
178 mlosch 1.66 & ustress_lon0, ustress_lon_inc, ustress_lat0, ustress_lat_inc,
179 jmc 1.69 & ustress_nlon, ustress_nlat, ustress_interpMethod,
180 jmc 1.11 & vstress_lon0, vstress_lon_inc, vstress_lat0, vstress_lat_inc,
181 jmc 1.69 & vstress_nlon, vstress_nlat, vstress_interpMethod,
182 jmc 1.11 & hflux_lon0, hflux_lon_inc, hflux_lat0, hflux_lat_inc,
183 jmc 1.69 & hflux_nlon, hflux_nlat, hflux_interpMethod,
184 jmc 1.11 & sflux_lon0, sflux_lon_inc, sflux_lat0, sflux_lat_inc,
185 jmc 1.69 & sflux_nlon, sflux_nlat, sflux_interpMethod,
186 jmc 1.11 & swflux_lon0, swflux_lon_inc, swflux_lat0, swflux_lat_inc,
187 jmc 1.69 & swflux_nlon, swflux_nlat, swflux_interpMethod,
188 heimbach 1.35 & lwflux_lon0, lwflux_lon_inc, lwflux_lat0, lwflux_lat_inc,
189 jmc 1.69 & lwflux_nlon, lwflux_nlat, lwflux_interpMethod,
190 jmc 1.11 & atemp_lon0, atemp_lon_inc, atemp_lat0, atemp_lat_inc,
191 jmc 1.69 & atemp_nlon, atemp_nlat, atemp_interpMethod,
192     & aqh_lon0, aqh_lon_inc, aqh_lat0,aqh_lat_inc,
193     & aqh_nlon, aqh_nlat, aqh_interpMethod,
194     & evap_lon0, evap_lon_inc, evap_lat0, evap_lat_inc,
195     & evap_nlon, evap_nlat, evap_interpMethod,
196 jmc 1.32 & precip_lon0, precip_lon_inc, precip_lat0, precip_lat_inc,
197 jmc 1.69 & precip_nlon, precip_nlat, precip_interpMethod,
198 heimbach 1.35 & runoff_lon0, runoff_lon_inc, runoff_lat0, runoff_lat_inc,
199 jmc 1.69 & runoff_nlon, runoff_nlat, runoff_interpMethod,
200     & snowprecip_lon0, snowprecip_lon_inc,
201     & snowprecip_lat0, snowprecip_lat_inc,
202     & snowprecip_nlon, snowprecip_nlat, snowprecip_interpMethod,
203 jmc 1.11 & uwind_lon0, uwind_lon_inc, uwind_lat0, uwind_lat_inc,
204 jmc 1.69 & uwind_nlon, uwind_nlat, uwind_interpMethod,
205 jmc 1.11 & vwind_lon0, vwind_lon_inc, vwind_lat0, vwind_lat_inc,
206 jmc 1.69 & vwind_nlon, vwind_nlat, vwind_interpMethod,
207 heimbach 1.30 & wspeed_lon0, wspeed_lon_inc, wspeed_lat0, wspeed_lat_inc,
208 jmc 1.69 & wspeed_nlon, wspeed_nlat, wspeed_interpMethod,
209 jmc 1.11 & swdown_lon0, swdown_lon_inc, swdown_lat0, swdown_lat_inc,
210 jmc 1.69 & swdown_nlon, swdown_nlat, swdown_interpMethod,
211 jmc 1.11 & lwdown_lon0, lwdown_lon_inc, lwdown_lat0, lwdown_lat_inc,
212 jmc 1.69 & lwdown_nlon, lwdown_nlat, lwdown_interpMethod,
213     & apressure_lon0,apressure_lon_inc,apressure_lat0,apressure_lat_inc
214     & , apressure_nlon, apressure_nlat, apressure_interpMethod,
215     & areamask_lon0, areamask_lon_inc, areamask_lat0, areamask_lat_inc,
216     & areamask_nlon, areamask_nlat, areamask_interpMethod,
217     & climsst_lon0, climsst_lon_inc, climsst_lat0, climsst_lat_inc,
218     & climsst_nlon, climsst_nlat, climsst_interpMethod,
219     & climsss_lon0, climsss_lon_inc,climsss_lat0, climsss_lat_inc,
220     & climsss_nlon, climsss_nlat, climsss_interpMethod,
221     & climustr_lon0, climustr_lon_inc, climustr_lat0, climustr_lat_inc,
222     & climustr_nlon, climustr_nlat, climustr_interpMethod,
223     & climvstr_lon0, climvstr_lon_inc, climvstr_lat0, climvstr_lat_inc,
224     & climvstr_nlon, climvstr_nlat, climvstr_interpMethod
225 mlosch 1.66 #endif /* USE_EXF_INTERPOLATION */
226 heimbach 1.1
227 mlosch 1.66 #ifdef ALLOW_ICEFRONT
228 dimitri 1.61 NAMELIST /EXF_NML_SGRUNOFF/
229     & sgrunoffstartdate1, sgrunoffstartdate2,
230     & sgrunoffstartdate, sgrunoffperiod,
231     & sgrunoffconst, sgrunoff_exfremo_intercept,
232     & sgrunoff_exfremo_slope, exf_inscal_sgrunoff
233 mlosch 1.66 #endif /* ALLOW_ICEFRONT */
234 dimitri 1.61
235 mlosch 1.66 #ifdef ALLOW_OBCS
236 heimbach 1.43 NAMELIST /EXF_NML_OBCS/
237 jmc 1.65 & useOBCSYearlyFields,
238 heimbach 1.43 & obcsNstartdate1, obcsNstartdate2, obcsNperiod,
239     & obcsSstartdate1, obcsSstartdate2, obcsSperiod,
240     & obcsEstartdate1, obcsEstartdate2, obcsEperiod,
241 dimitri 1.50 & obcsWstartdate1, obcsWstartdate2, obcsWperiod,
242     & siobNstartdate1, siobNstartdate2, siobNperiod,
243     & siobSstartdate1, siobSstartdate2, siobSperiod,
244     & siobEstartdate1, siobEstartdate2, siobEperiod,
245     & siobWstartdate1, siobWstartdate2, siobWperiod
246 mlosch 1.66 #endif /* ALLOW_OBCS */
247 heimbach 1.43
248 jmc 1.68 #ifdef USE_EXF_INTERPOLATION
249     # ifdef ALLOW_EXCH2
250     gridNx = exch2_mydNx(1)
251     gridNy = exch2_mydNy(1)
252     # else /* ALLOW_EXCH2 */
253     gridNx = Nx
254     gridNy = Ny
255     # endif /* ALLOW_EXCH2 */
256     #endif /* USE_EXF_INTERPOLATION */
257    
258 heimbach 1.1 _BEGIN_MASTER(mythid)
259    
260     c Set default values.
261    
262 heimbach 1.21 year2sec = 365.*86400.
263 jmc 1.63 exf_verbose = debugMode
264 jmc 1.33 exf_monFreq = monitorFreq
265 jmc 1.48 useExfCheckRange = .TRUE.
266 gforget 1.58 useExfZenAlbedo = .FALSE.
267 gforget 1.59 select_ZenAlbedo = 0
268 gforget 1.58 useExfZenIncoming = .FALSE.
269 jmc 1.48 readStressOnAgrid = .FALSE.
270     readStressOnCgrid = .FALSE.
271 dimitri 1.49 useRelativeWind = .FALSE.
272 jmc 1.52 noNegativeEvap = .FALSE.
273 heimbach 1.21
274 jmc 1.47 C- default value should be set to main model parameter:
275     c cen2kel = celsius2K
276 jmc 1.48 c gravity_mks = gravity
277 jmc 1.47 c atmcp = atm_Cp
278     c humid_fac = atm_Rq <- default is zero !!!
279    
280     cen2kel = 273.150 _d 0
281     gravity_mks = 9.81 _d 0
282     atmrho = 1.200 _d 0
283     atmcp = 1005.000 _d 0
284     flamb = 2500000.000 _d 0
285     flami = 334000.000 _d 0
286     cvapor_fac = 640380.000 _d 0
287     cvapor_exp = 5107.400 _d 0
288     cvapor_fac_ice = 11637800.000 _d 0
289     cvapor_exp_ice = 5897.800 _d 0
290     humid_fac = 0.606 _d 0
291     gamma_blk = 0.010 _d 0
292     saltsat = 0.980 _d 0
293 jmc 1.52 sstExtrapol = 0.0 _d 0
294 jmc 1.47 cdrag_1 = 0.0027000 _d 0
295     cdrag_2 = 0.0001420 _d 0
296     cdrag_3 = 0.0000764 _d 0
297     cstanton_1 = 0.0327 _d 0
298     cstanton_2 = 0.0180 _d 0
299     cdalton = 0.0346 _d 0
300     zolmin = -100.000 _d 0
301     psim_fac = 5.000 _d 0
302     zref = 10.000 _d 0
303     hu = 10.000 _d 0
304     ht = 2.000 _d 0
305     umin = 0.5 _d 0
306     useStabilityFct_overIce = .FALSE.
307     exf_iceCd = 1.63 _d -3
308     exf_iceCe = 1.63 _d -3
309     exf_iceCh = 1.63 _d -3
310     exf_albedo = 0.1 _d 0
311     c-- this default is chosen to be backward compatible with
312     c-- an earlier setting of 5.5 = ocean_emissivity*stefanBoltzmann
313     ocean_emissivity = 5.50 _d-8 / 5.670 _d-8
314     ice_emissivity = 0.95 _d 0
315     snow_emissivity = 0.95 _d 0
316 heimbach 1.46
317 heimbach 1.1 c Calendar data.
318     hfluxstartdate1 = 0
319     hfluxstartdate2 = 0
320     hfluxperiod = 0.0 _d 0
321 heimbach 1.7 hfluxconst = 0.0 _d 0
322 heimbach 1.27 hflux_exfremo_intercept = 0.0 _d 0
323     hflux_exfremo_slope = 0.0 _d 0
324 heimbach 1.1
325     atempstartdate1 = 0
326     atempstartdate2 = 0
327     atempperiod = 0.0 _d 0
328 heimbach 1.15 atempconst = celsius2K
329 heimbach 1.27 atemp_exfremo_intercept = 0.0 _d 0
330     atemp_exfremo_slope = 0.0 _d 0
331 heimbach 1.1
332     aqhstartdate1 = 0
333     aqhstartdate2 = 0
334     aqhperiod = 0.0 _d 0
335 heimbach 1.7 aqhconst = 0.0 _d 0
336 heimbach 1.27 aqh_exfremo_intercept = 0.0 _d 0
337     aqh_exfremo_slope = 0.0 _d 0
338 heimbach 1.1
339     sfluxstartdate1 = 0
340     sfluxstartdate2 = 0
341     sfluxperiod = 0.0 _d 0
342 heimbach 1.7 sfluxconst = 0.0 _d 0
343 heimbach 1.27 sflux_exfremo_intercept = 0.0 _d 0
344     sflux_exfremo_slope = 0.0 _d 0
345 heimbach 1.1
346 dimitri 1.5 evapstartdate1 = 0
347     evapstartdate2 = 0
348     evapperiod = 0.0 _d 0
349 heimbach 1.7 evapconst = 0.0 _d 0
350 heimbach 1.27 evap_exfremo_intercept = 0.0 _d 0
351     evap_exfremo_slope = 0.0 _d 0
352 dimitri 1.5
353 heimbach 1.1 precipstartdate1 = 0
354     precipstartdate2 = 0
355     precipperiod = 0.0 _d 0
356 heimbach 1.7 precipconst = 0.0 _d 0
357 heimbach 1.27 precip_exfremo_intercept = 0.0 _d 0
358     precip_exfremo_slope = 0.0 _d 0
359 heimbach 1.1
360 heimbach 1.30 snowprecipstartdate1 = 0
361     snowprecipstartdate2 = 0
362     snowprecipperiod = 0.0 _d 0
363     snowprecipconst = 0.0 _d 0
364     snowprecip_exfremo_intercept = 0.0 _d 0
365     snowprecip_exfremo_slope = 0.0 _d 0
366    
367 heimbach 1.3 runoffstartdate1 = 0
368     runoffstartdate2 = 0
369     runoffperiod = 0.0 _d 0
370 heimbach 1.7 runoffconst = 0.0 _d 0
371 heimbach 1.27 runoff_exfremo_intercept = 0.0 _d 0
372     runoff_exfremo_slope = 0.0 _d 0
373 heimbach 1.3
374 heimbach 1.1 ustressstartdate1 = 0
375     ustressstartdate2 = 0
376     ustressperiod = 0.0 _d 0
377 heimbach 1.7 ustressconst = 0.0 _d 0
378 heimbach 1.27 ustress_exfremo_intercept = 0.0 _d 0
379     ustress_exfremo_slope = 0.0 _d 0
380 heimbach 1.1
381     vstressstartdate1 = 0
382     vstressstartdate2 = 0
383     vstressperiod = 0.0 _d 0
384 heimbach 1.7 vstressconst = 0.0 _d 0
385 heimbach 1.27 vstress_exfremo_intercept = 0.0 _d 0
386     vstress_exfremo_slope = 0.0 _d 0
387 heimbach 1.1
388     uwindstartdate1 = 0
389     uwindstartdate2 = 0
390     uwindperiod = 0.0 _d 0
391 heimbach 1.7 uwindconst = 0.0 _d 0
392 heimbach 1.27 uwind_exfremo_intercept = 0.0 _d 0
393     uwind_exfremo_slope = 0.0 _d 0
394 heimbach 1.1
395     vwindstartdate1 = 0
396     vwindstartdate2 = 0
397     vwindperiod = 0.0 _d 0
398 heimbach 1.7 vwindconst = 0.0 _d 0
399 heimbach 1.27 vwind_exfremo_intercept = 0.0 _d 0
400     vwind_exfremo_slope = 0.0 _d 0
401 heimbach 1.1
402 heimbach 1.30 wspeedstartdate1 = 0
403     wspeedstartdate2 = 0
404     wspeedperiod = 0.0 _d 0
405     wspeedconst = 0.0 _d 0
406     wspeed_exfremo_intercept = 0.0 _d 0
407     wspeed_exfremo_slope = 0.0 _d 0
408    
409 heimbach 1.1 swfluxstartdate1 = 0
410     swfluxstartdate2 = 0
411     swfluxperiod = 0.0 _d 0
412 heimbach 1.7 swfluxconst = 0.0 _d 0
413 heimbach 1.27 swflux_exfremo_intercept = 0.0 _d 0
414     swflux_exfremo_slope = 0.0 _d 0
415 heimbach 1.1
416     lwfluxstartdate1 = 0
417     lwfluxstartdate2 = 0
418     lwfluxperiod = 0.0 _d 0
419 heimbach 1.7 lwfluxconst = 0.0 _d 0
420 heimbach 1.27 lwflux_exfremo_intercept = 0.0 _d 0
421     lwflux_exfremo_slope = 0.0 _d 0
422 heimbach 1.1
423 dimitri 1.6 swdownstartdate1 = 0
424     swdownstartdate2 = 0
425     swdownperiod = 0.0 _d 0
426 heimbach 1.7 swdownconst = 0.0 _d 0
427 heimbach 1.27 swdown_exfremo_intercept = 0.0 _d 0
428     swdown_exfremo_slope = 0.0 _d 0
429 dimitri 1.6
430     lwdownstartdate1 = 0
431     lwdownstartdate2 = 0
432     lwdownperiod = 0.0 _d 0
433 heimbach 1.7 lwdownconst = 0.0 _d 0
434 heimbach 1.27 lwdown_exfremo_intercept = 0.0 _d 0
435     lwdown_exfremo_slope = 0.0 _d 0
436    
437     apressurestartdate1 = 0
438     apressurestartdate2 = 0
439     apressureperiod = 0.0 _d 0
440     apressureconst = 0.0 _d 0
441     apressure_exfremo_intercept = 0.0 _d 0
442     apressure_exfremo_slope = 0.0 _d 0
443 dimitri 1.6
444 gforget 1.51 areamaskstartdate1 = 0
445     areamaskstartdate2 = 0
446     areamaskperiod = 0.0 _d 0
447 gforget 1.56 areamaskTauRelax = 0.0 _d 0
448 gforget 1.51 areamaskconst = 0.0 _d 0
449 jmc 1.55 areamask_exfremo_intercept = 0. _d 0
450     areamask_exfremo_slope = 0. _d 0
451 gforget 1.51
452 heimbach 1.43 climsststartdate1 = 0
453     climsststartdate2 = 0
454     climsstperiod = 0
455 gforget 1.56 climsstTauRelax = 0.0 _d 0
456 heimbach 1.43 climsstconst = 0.0 _d 0
457     climsst_exfremo_intercept = 0.0 _d 0
458     climsst_exfremo_slope = 0.0 _d 0
459    
460     climsssstartdate1 = 0
461     climsssstartdate2 = 0
462     climsssperiod = 0
463 gforget 1.56 climsssTauRelax = 0.0 _d 0
464 heimbach 1.43 climsssconst = 0.0 _d 0
465     climsss_exfremo_intercept = 0.0 _d 0
466     climsss_exfremo_slope = 0.0 _d 0
467    
468 heimbach 1.60 climustrstartdate1 = 0
469     climustrstartdate2 = 0
470     climustrperiod = 0
471     climustrTauRelax = 0.0 _d 0
472     climustrconst = 0.0 _d 0
473     climustr_exfremo_intercept = 0.0 _d 0
474     climustr_exfremo_slope = 0.0 _d 0
475    
476     climvstrstartdate1 = 0
477     climvstrstartdate2 = 0
478     climvstrperiod = 0
479     climvstrTauRelax = 0.0 _d 0
480     climvstrconst = 0.0 _d 0
481     climvstr_exfremo_intercept = 0.0 _d 0
482     climvstr_exfremo_slope = 0.0 _d 0
483    
484 dimitri 1.61 sgrunoffstartdate1 = 0
485     sgrunoffstartdate2 = 0
486     sgrunoffstartdate = 0.
487     sgrunoffperiod = 0.0 _d 0
488     sgrunoffconst = 0.0 _d 0
489     sgrunoff_exfremo_intercept = 0.0 _d 0
490     sgrunoff_exfremo_slope = 0.0 _d 0
491 dimitri 1.62 exf_inscal_sgrunoff = 1. _d 0
492 dimitri 1.61
493 jmc 1.65 useOBCSYearlyFields = .FALSE.
494 heimbach 1.2 obcsNstartdate1 = 0
495     obcsNstartdate2 = 0
496     obcsNperiod = 0.0 _d 0
497     obcsSstartdate1 = 0
498     obcsSstartdate2 = 0
499     obcsSperiod = 0.0 _d 0
500     obcsEstartdate1 = 0
501     obcsEstartdate2 = 0
502     obcsEperiod = 0.0 _d 0
503     obcsWstartdate1 = 0
504     obcsWstartdate2 = 0
505     obcsWperiod = 0.0 _d 0
506 heimbach 1.1
507 dimitri 1.50 siobNstartdate1 = UNSET_I
508     siobNstartdate2 = UNSET_I
509     siobNperiod = UNSET_RL
510     siobSstartdate1 = UNSET_I
511     siobSstartdate2 = UNSET_I
512     siobSperiod = UNSET_RL
513     siobEstartdate1 = UNSET_I
514     siobEstartdate2 = UNSET_I
515     siobEperiod = UNSET_RL
516     siobWstartdate1 = UNSET_I
517     siobWstartdate2 = UNSET_I
518     siobWperiod = UNSET_RL
519    
520 heimbach 1.30 repeatPeriod = 0.0 _d 0
521     windstressmax = 2.0 _d 0
522 cheisey 1.4
523 heimbach 1.43 exf_scal_BulkCdn = 1.0 _d 0
524    
525     c Initialise freezing temperature of sea water
526     climtempfreeze = -1.9 _d 0
527 dimitri 1.36
528 heimbach 1.1 c Data files.
529     hfluxfile = ' '
530     atempfile = ' '
531     aqhfile = ' '
532 dimitri 1.5 evapfile = ' '
533 heimbach 1.1 precipfile = ' '
534 heimbach 1.30 snowprecipfile = ' '
535 heimbach 1.1 sfluxfile = ' '
536 heimbach 1.3 runofffile = ' '
537 heimbach 1.1 ustressfile = ' '
538     vstressfile = ' '
539     uwindfile = ' '
540     vwindfile = ' '
541 heimbach 1.30 wspeedfile = ' '
542 heimbach 1.1 swfluxfile = ' '
543     lwfluxfile = ' '
544 dimitri 1.6 swdownfile = ' '
545     lwdownfile = ' '
546 jmc 1.53 apressurefile = ' '
547 gforget 1.51 areamaskfile = ' '
548 heimbach 1.43 climsstfile = ' '
549     climsssfile = ' '
550 heimbach 1.60 climustrfile = ' '
551     climvstrfile = ' '
552 heimbach 1.1
553 dimitri 1.13 c Start dates.
554 dimitri 1.24 hfluxstartdate = 0.
555     atempstartdate = 0.
556     aqhstartdate = 0.
557     evapstartdate = 0.
558     precipstartdate = 0.
559 jmc 1.48 snowprecipstartdate= 0.
560 dimitri 1.24 sfluxstartdate = 0.
561     runoffstartdate = 0.
562     ustressstartdate = 0.
563     vstressstartdate = 0.
564     uwindstartdate = 0.
565     vwindstartdate = 0.
566 heimbach 1.30 wspeedstartdate = 0.
567 dimitri 1.24 swfluxstartdate = 0.
568     lwfluxstartdate = 0.
569     swdownstartdate = 0.
570     lwdownstartdate = 0.
571     obcsNstartdate = 0.
572     obcsSstartdate = 0.
573     obcsEstartdate = 0.
574     obcsWstartdate = 0.
575 dimitri 1.50 siobNstartdate = 0.
576     siobSstartdate = 0.
577     siobEstartdate = 0.
578     siobWstartdate = 0.
579 dimitri 1.24 apressurestartdate = 0.
580 gforget 1.51 areamaskstartdate = 0.
581 heimbach 1.43 climsststartdate = 0.
582     climsssstartdate = 0.
583 heimbach 1.60 climustrstartdate = 0.
584     climvstrstartdate = 0.
585 heimbach 1.1
586     c Initialise file type and field precision
587 heimbach 1.20 exf_iprec = 32
588 mlosch 1.54 exf_iprec_obcs = UNSET_I
589 heimbach 1.20 exf_yftype = 'RL'
590     useExfYearlyFields = .FALSE.
591 dimitri 1.25 twoDigitYear = .FALSE.
592 heimbach 1.1
593 dimitri 1.6 c Input scaling factors.
594 heimbach 1.8 exf_inscal_hflux = 1. _d 0
595     exf_inscal_sflux = 1. _d 0
596     exf_inscal_ustress = 1. _d 0
597     exf_inscal_vstress = 1. _d 0
598     exf_inscal_uwind = 1. _d 0
599     exf_inscal_vwind = 1. _d 0
600 heimbach 1.30 exf_inscal_wspeed = 1. _d 0
601 heimbach 1.8 exf_inscal_swflux = 1. _d 0
602     exf_inscal_lwflux = 1. _d 0
603     exf_inscal_precip = 1. _d 0
604 jmc 1.48 exf_inscal_snowprecip= 1. _d 0
605 dimitri 1.6 exf_inscal_sst = 1. _d 0
606     exf_inscal_sss = 1. _d 0
607 heimbach 1.8 exf_inscal_atemp = 1. _d 0
608 dimitri 1.14 exf_offset_atemp = 0. _d 0
609 heimbach 1.8 exf_inscal_aqh = 1. _d 0
610     exf_inscal_evap = 1. _d 0
611 dimitri 1.6 exf_inscal_apressure = 1. _d 0
612 heimbach 1.21 exf_inscal_runoff = 1. _d 0
613 heimbach 1.8 exf_inscal_swdown = 1. _d 0
614     exf_inscal_lwdown = 1. _d 0
615 heimbach 1.43 exf_inscal_climsst = 1. _d 0
616     exf_inscal_climsss = 1. _d 0
617 heimbach 1.60 exf_inscal_climustr = 1. _d 0
618     exf_inscal_climvstr = 1. _d 0
619 dimitri 1.6
620     c Output scaling factors.
621 heimbach 1.8 exf_outscal_hflux = 1. _d 0
622     exf_outscal_sflux = 1. _d 0
623     exf_outscal_ustress = 1. _d 0
624     exf_outscal_vstress = 1. _d 0
625     exf_outscal_swflux = 1. _d 0
626 dimitri 1.6 exf_outscal_sst = 1. _d 0
627     exf_outscal_sss = 1. _d 0
628     exf_outscal_apressure= 1. _d 0
629 heimbach 1.3
630 dimitri 1.19 #ifdef USE_EXF_INTERPOLATION
631 jmc 1.53 ustress_lon0 = xgOrigin
632     uwind_lon0 = xgOrigin
633     vstress_lon0 = xgOrigin + delX(1)*exf_half
634     hflux_lon0 = xgOrigin + delX(1)*exf_half
635     sflux_lon0 = xgOrigin + delX(1)*exf_half
636     swflux_lon0 = xgOrigin + delX(1)*exf_half
637     runoff_lon0 = xgOrigin + delX(1)*exf_half
638     atemp_lon0 = xgOrigin + delX(1)*exf_half
639     aqh_lon0 = xgOrigin + delX(1)*exf_half
640     evap_lon0 = xgOrigin + delX(1)*exf_half
641     precip_lon0 = xgOrigin + delX(1)*exf_half
642     snowprecip_lon0= xgOrigin + delX(1)*exf_half
643     vwind_lon0 = xgOrigin + delX(1)*exf_half
644     wspeed_lon0 = xgOrigin + delX(1)*exf_half
645     lwflux_lon0 = xgOrigin + delX(1)*exf_half
646     swdown_lon0 = xgOrigin + delX(1)*exf_half
647     lwdown_lon0 = xgOrigin + delX(1)*exf_half
648     apressure_lon0 = xgOrigin + delX(1)*exf_half
649     areamask_lon0 = xgOrigin + delX(1)*exf_half
650     vstress_lat0 = ygOrigin
651     vwind_lat0 = ygOrigin
652     wspeed_lat0 = ygOrigin
653     ustress_lat0 = ygOrigin + delY(1)*exf_half
654     hflux_lat0 = ygOrigin + delY(1)*exf_half
655     sflux_lat0 = ygOrigin + delY(1)*exf_half
656     runoff_lat0 = ygOrigin + delY(1)*exf_half
657     swflux_lat0 = ygOrigin + delY(1)*exf_half
658     atemp_lat0 = ygOrigin + delY(1)*exf_half
659     aqh_lat0 = ygOrigin + delY(1)*exf_half
660     evap_lat0 = ygOrigin + delY(1)*exf_half
661     precip_lat0 = ygOrigin + delY(1)*exf_half
662     snowprecip_lat0= ygOrigin + delY(1)*exf_half
663     uwind_lat0 = ygOrigin + delY(1)*exf_half
664     lwflux_lat0 = ygOrigin + delY(1)*exf_half
665     swdown_lat0 = ygOrigin + delY(1)*exf_half
666     lwdown_lat0 = ygOrigin + delY(1)*exf_half
667     apressure_lat0 = ygOrigin + delY(1)*exf_half
668     areamask_lat0 = ygOrigin + delY(1)*exf_half
669 jmc 1.68 ustress_nlon = gridNx
670     ustress_nlat = gridNy
671     vstress_nlon = gridNx
672     vstress_nlat = gridNy
673     hflux_nlon = gridNx
674     hflux_nlat = gridNy
675     sflux_nlon = gridNx
676     sflux_nlat = gridNy
677     swflux_nlon = gridNx
678     swflux_nlat = gridNy
679     runoff_nlon = gridNx
680     runoff_nlat = gridNy
681     atemp_nlon = gridNx
682     atemp_nlat = gridNy
683     aqh_nlon = gridNx
684     aqh_nlat = gridNy
685     evap_nlon = gridNx
686     evap_nlat = gridNy
687     precip_nlon = gridNx
688     snowprecip_nlon= gridNx
689     precip_nlat = gridNy
690     snowprecip_nlat= gridNy
691     uwind_nlon = gridNx
692     uwind_nlat = gridNy
693     vwind_nlon = gridNx
694     vwind_nlat = gridNy
695     wspeed_nlon = gridNx
696     wspeed_nlat = gridNy
697     lwflux_nlon = gridNx
698     lwflux_nlat = gridNy
699     swdown_nlon = gridNx
700     swdown_nlat = gridNy
701     lwdown_nlon = gridNx
702     lwdown_nlat = gridNy
703     apressure_nlon = gridNx
704     apressure_nlat = gridNy
705     areamask_nlon = gridNx
706     areamask_nlat = gridNy
707 heimbach 1.60 ustress_lon_inc = delX(1)
708 dimitri 1.19 vstress_lon_inc = delX(1)
709     hflux_lon_inc = delX(1)
710     sflux_lon_inc = delX(1)
711     swflux_lon_inc = delX(1)
712     runoff_lon_inc = delX(1)
713     atemp_lon_inc = delX(1)
714     aqh_lon_inc = delX(1)
715     evap_lon_inc = delX(1)
716     precip_lon_inc = delX(1)
717 jmc 1.48 snowprecip_lon_inc= delX(1)
718 dimitri 1.19 uwind_lon_inc = delX(1)
719     vwind_lon_inc = delX(1)
720 heimbach 1.30 wspeed_lon_inc = delX(1)
721 dimitri 1.19 lwflux_lon_inc = delX(1)
722     swdown_lon_inc = delX(1)
723     lwdown_lon_inc = delX(1)
724     apressure_lon_inc = delX(1)
725 jmc 1.53 areamask_lon_inc = delX(1)
726     climsst_lon0 = xgOrigin + delX(1)*exf_half
727     climsss_lon0 = xgOrigin + delX(1)*exf_half
728     climsst_lat0 = ygOrigin + delY(1)*exf_half
729     climsss_lat0 = ygOrigin + delY(1)*exf_half
730 jmc 1.68 climsst_nlon = gridNx
731     climsst_nlat = gridNy
732     climsss_nlon = gridNx
733     climsss_nlat = gridNy
734 heimbach 1.43 climsst_lon_inc = delX(1)
735     climsss_lon_inc = delX(1)
736 heimbach 1.60 climustr_lon0 = xgOrigin
737     climvstr_lon0 = xgOrigin + delX(1)*exf_half
738     climustr_lat0 = ygOrigin + delY(1)*exf_half
739     climvstr_lat0 = ygOrigin
740 jmc 1.68 climustr_nlon = gridNx
741     climustr_nlat = gridNy
742     climvstr_nlon = gridNx
743     climvstr_nlat = gridNy
744 jmc 1.69 climustr_lon_inc= delX(1)
745     climvstr_lon_inc= delX(1)
746 heimbach 1.60
747 dimitri 1.19 DO i=1,MAX_LAT_INC
748 jmc 1.68 IF (i.LT.gridNy) THEN
749 dimitri 1.19 vstress_lat_inc(i) = delY(i)
750     vwind_lat_inc(i) = delY(i)
751 heimbach 1.30 wspeed_lat_inc(i) = delY(i)
752 jmc 1.48 ustress_lat_inc(i) = (delY(i) + delY(i))*exf_half
753     hflux_lat_inc(i) = (delY(i) + delY(i))*exf_half
754     sflux_lat_inc(i) = (delY(i) + delY(i))*exf_half
755     swflux_lat_inc(i) = (delY(i) + delY(i))*exf_half
756     runoff_lat_inc(i) = (delY(i) + delY(i))*exf_half
757     atemp_lat_inc(i) = (delY(i) + delY(i))*exf_half
758     aqh_lat_inc(i) = (delY(i) + delY(i))*exf_half
759     evap_lat_inc(i) = (delY(i) + delY(i))*exf_half
760     precip_lat_inc(i) = (delY(i) + delY(i))*exf_half
761     snowprecip_lat_inc(i)= (delY(i) + delY(i))*exf_half
762     uwind_lat_inc(i) = (delY(i) + delY(i))*exf_half
763     lwflux_lat_inc(i) = (delY(i) + delY(i))*exf_half
764     swdown_lat_inc(i) = (delY(i) + delY(i))*exf_half
765     lwdown_lat_inc(i) = (delY(i) + delY(i))*exf_half
766     apressure_lat_inc(i) = (delY(i) + delY(i))*exf_half
767 gforget 1.51 areamask_lat_inc(i) = (delY(i) + delY(i))*exf_half
768 jmc 1.48 climsst_lat_inc(i) = (delY(i) + delY(i))*exf_half
769     climsss_lat_inc(i) = (delY(i) + delY(i))*exf_half
770 heimbach 1.60 climustr_lat_inc(i) = (delY(i) + delY(i))*exf_half
771     climvstr_lat_inc(i) = delY(i)
772 dimitri 1.19 ELSE
773     ustress_lat_inc(i) = 0.
774     vstress_lat_inc(i) = 0.
775     hflux_lat_inc(i) = 0.
776     sflux_lat_inc(i) = 0.
777     swflux_lat_inc(i) = 0.
778     runoff_lat_inc(i) = 0.
779     atemp_lat_inc(i) = 0.
780     aqh_lat_inc(i) = 0.
781     evap_lat_inc(i) = 0.
782     precip_lat_inc(i) = 0.
783 jmc 1.48 snowprecip_lat_inc(i)= 0.
784 dimitri 1.19 uwind_lat_inc(i) = 0.
785     vwind_lat_inc(i) = 0.
786 heimbach 1.30 wspeed_lat_inc(i) = 0.
787 dimitri 1.19 lwflux_lat_inc(i) = 0.
788     swdown_lat_inc(i) = 0.
789     lwdown_lat_inc(i) = 0.
790     apressure_lat_inc(i) = 0.
791 gforget 1.51 areamask_lat_inc(i) = 0.
792 heimbach 1.43 climsst_lat_inc(i) = 0.
793     climsss_lat_inc(i) = 0.
794 heimbach 1.60 climustr_lat_inc(i) = 0.
795     climvstr_lat_inc(i) = 0.
796 dimitri 1.19 ENDIF
797     ENDDO
798 jmc 1.69
799     ustress_interpMethod = 12
800     vstress_interpMethod = 22
801     hflux_interpMethod = 1
802     sflux_interpMethod = 1
803     swflux_interpMethod = 1
804     runoff_interpMethod = 1
805     atemp_interpMethod = 1
806     aqh_interpMethod = 1
807     evap_interpMethod = 1
808     precip_interpMethod = 1
809     snowprecip_interpMethod= 1
810     uwind_interpMethod = 12
811     vwind_interpMethod = 22
812     wspeed_interpMethod = 1
813     lwflux_interpMethod = 1
814     swdown_interpMethod = 1
815     lwdown_interpMethod = 1
816     apressure_interpMethod = 1
817     areamask_interpMethod = 1
818     climsst_interpMethod = 2
819     climsss_interpMethod = 2
820     climustr_interpMethod = 12
821     climvstr_interpMethod = 22
822    
823 dimitri 1.19 #endif /* USE_EXF_INTERPOLATION */
824    
825 heimbach 1.1 c Next, read the forcing data file.
826 heimbach 1.43 WRITE(msgBuf,'(A)') 'EXF_READPARMS: opening data.exf'
827     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
828     & SQUEEZE_RIGHT , 1)
829 heimbach 1.26
830 heimbach 1.43 CALL OPEN_COPY_DATA_FILE(
831 heimbach 1.26 I 'data.exf', 'EXF_READPARMS',
832     O iUnit,
833     I myThid )
834    
835 jmc 1.53 WRITE(msgBuf,'(A)')
836 heimbach 1.43 & 'EXF_READPARMS: reading EXF_NML_01'
837     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
838     & SQUEEZE_RIGHT , 1)
839     READ( iUnit, nml = EXF_NML_01 )
840 jmc 1.53 WRITE(msgBuf,'(A)')
841 heimbach 1.43 & 'EXF_READPARMS: reading EXF_NML_02'
842     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
843     & SQUEEZE_RIGHT , 1)
844     READ( iUnit, nml = EXF_NML_02 )
845 jmc 1.53 WRITE(msgBuf,'(A)')
846 heimbach 1.43 & 'EXF_READPARMS: reading EXF_NML_03'
847     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
848     & SQUEEZE_RIGHT , 1)
849     READ( iUnit, nml = EXF_NML_03 )
850 mlosch 1.66 #ifdef USE_EXF_INTERPOLATION
851 jmc 1.53 WRITE(msgBuf,'(A)')
852 heimbach 1.43 & 'EXF_READPARMS: reading EXF_NML_04'
853     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
854     & SQUEEZE_RIGHT , 1)
855     READ( iUnit, nml = EXF_NML_04 )
856 mlosch 1.66 #endif /* USE_EXF_INTERPOLATION */
857 dimitri 1.61
858     #ifdef ALLOW_ICEFRONT
859 mlosch 1.66 IF ( useIcefront ) THEN
860     WRITE(msgBuf,'(A)')
861     & 'EXF_READPARMS: reading EXF_NML_SGRUNOFF'
862     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
863     & SQUEEZE_RIGHT , 1)
864     READ( iUnit, nml = EXF_NML_SGRUNOFF )
865     ENDIF
866 dimitri 1.61 #endif /* ALLOW_ICEFRONT */
867    
868 heimbach 1.43 #ifdef ALLOW_OBCS
869 mlosch 1.66 IF ( useOBCS ) THEN
870     WRITE(msgBuf,'(A)')
871     & 'EXF_READPARMS: reading EXF_NML_OBCS'
872     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
873     & SQUEEZE_RIGHT , 1)
874     READ( iUnit, nml = EXF_NML_OBCS )
875 jmc 1.67 ENDIF
876 mlosch 1.66 IF(siobNstartdate1.EQ.UNSET_I ) siobNstartdate1=obcsNstartdate1
877     IF(siobNstartdate2.EQ.UNSET_I ) siobNstartdate2=obcsNstartdate2
878     IF(siobNperiod .EQ.UNSET_RL) siobNperiod =obcsNperiod
879     IF(siobSstartdate1.EQ.UNSET_I ) siobSstartdate1=obcsSstartdate1
880     IF(siobSstartdate2.EQ.UNSET_I ) siobSstartdate2=obcsSstartdate2
881     IF(siobSperiod .EQ.UNSET_RL) siobSperiod =obcsSperiod
882     IF(siobEstartdate1.EQ.UNSET_I ) siobEstartdate1=obcsEstartdate1
883     IF(siobEstartdate2.EQ.UNSET_I ) siobEstartdate2=obcsEstartdate2
884     IF(siobEperiod .EQ.UNSET_RL) siobEperiod =obcsEperiod
885     IF(siobWstartdate1.EQ.UNSET_I ) siobWstartdate1=obcsWstartdate1
886     IF(siobWstartdate2.EQ.UNSET_I ) siobWstartdate2=obcsWstartdate2
887     IF(siobWperiod .EQ.UNSET_RL) siobWperiod =obcsWperiod
888 jmc 1.55
889 mlosch 1.66 IF(exf_iprec_obcs .EQ. UNSET_I) exf_iprec_obcs =exf_iprec
890 dimitri 1.61 #endif /* ALLOW_OBCS */
891 heimbach 1.26
892 jmc 1.53 WRITE(msgBuf,'(A)')
893 heimbach 1.26 & 'EXF_READPARMS: finished reading data.exf'
894     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
895     & SQUEEZE_RIGHT , 1)
896    
897     CLOSE( iUnit )
898 heimbach 1.1
899 jmc 1.48 C-- Derive other parameters:
900 heimbach 1.46 hq = ht
901 jmc 1.69 stressIsOnCgrid = readStressOnCgrid
902     #if ( defined (ALLOW_BULKFORMULAE) && defined (ALLOW_ATM_WIND) )
903 jmc 1.48 stressIsOnCgrid = .FALSE.
904     #endif
905 jmc 1.69 #ifdef USE_EXF_INTERPOLATION
906     IF ( (ustress_interpMethod.GE.1 .AND. ustressfile.NE.' ') .OR.
907     & (vstress_interpMethod.GE.1 .AND. vstressfile.NE.' ') )
908     & stressIsOnCgrid = .FALSE.
909     #endif /* USE_EXF_INTERPOLATION */
910 heimbach 1.46
911 gforget 1.59 if ( select_ZenAlbedo.GT.0 ) then
912     useExfZenAlbedo=.TRUE.
913     endif
914    
915 gforget 1.56 #ifdef ALLOW_CLIMSST_RELAXATION
916     cgf warning before we overwrite tauThetaClimRelax/thetaClimFile:
917 jmc 1.64 IF ( doThetaClimRelax ) THEN
918     WRITE(msgBuf,'(2A)') '** WARNING ** EXF_READPARMS:',
919     & ' useEXF implies that tauThetaClimRelax'
920 gforget 1.56 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
921     & SQUEEZE_RIGHT , myThid)
922 jmc 1.64 WRITE(msgBuf,'(2A)') '** WARNING ** ',
923     & ' and thetaClimFile from "data" file are overwritten'
924 gforget 1.56 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
925     & SQUEEZE_RIGHT , myThid)
926 jmc 1.64 ENDIF
927     cgf overwrite tauThetaClimRelax/thetaClimFile:
928     tauThetaClimRelax=climsstTauRelax
929     thetaClimFile=' '
930 gforget 1.56 cgf overwrite doThetaClimRelax based on data.exf:
931     if ( climsstTauRelax.NE.0.) then
932     if (climsstfile.EQ.' ') then
933     WRITE(msgBuf,'(A)')
934     & 'S/R EXF_READPARMS: climsstTauRelax > 0 but'
935     CALL PRINT_ERROR( msgBuf, myThid )
936     WRITE(msgBuf,'(A)')
937     & 'S/R EXF_READPARMS: climsstfile is undefined'
938     CALL PRINT_ERROR( msgBuf, myThid )
939     STOP 'ABNORMAL END: S/R EXF_READPARMS'
940     else
941     doThetaClimRelax=.TRUE.
942     endif
943     else
944     doThetaClimRelax=.FALSE.
945     endif
946     #endif
947    
948     #ifdef ALLOW_CLIMSSS_RELAXATION
949     cgf warning before we overwrite tauSaltClimRelax/saltClimFile:
950 jmc 1.64 IF ( doSaltClimRelax ) THEN
951     WRITE(msgBuf,'(2A)') '** WARNING ** EXF_READPARMS:',
952     & ' useEXF implies that tauSaltClimRelax'
953 gforget 1.56 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
954     & SQUEEZE_RIGHT , myThid)
955 jmc 1.64 WRITE(msgBuf,'(2A)') '** WARNING ** ',
956     & ' and saltClimFile from "data" file are overwritten'
957 gforget 1.56 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
958     & SQUEEZE_RIGHT , myThid)
959 jmc 1.64 ENDIF
960     cgf overwrite tauSaltClimRelax/saltClimFile:
961     tauSaltClimRelax=climsssTauRelax
962     saltClimFile=' '
963 gforget 1.56 cgf overwrite doSaltClimRelax based on data.exf:
964     if ( climsssTauRelax.NE.0.) then
965     if (climsssfile.EQ.' ') then
966     WRITE(msgBuf,'(A)')
967     & 'S/R EXF_READPARMS: climsssTauRelax > 0 but'
968     CALL PRINT_ERROR( msgBuf, myThid )
969     WRITE(msgBuf,'(A)')
970     & 'S/R EXF_READPARMS: climsssfile is undefined'
971     CALL PRINT_ERROR( msgBuf, myThid )
972     STOP 'ABNORMAL END: S/R EXF_READPARMS'
973     else
974     doSaltClimRelax=.TRUE.
975     endif
976     else
977     doSaltClimRelax=.FALSE.
978     endif
979     #endif
980    
981 heimbach 1.1 c Complete the start date specifications for the forcing
982     c fields to get a complete calendar date array.
983 jmc 1.48 C => moved to EXF_INIT_FIXED
984 heimbach 1.43
985 heimbach 1.1 _END_MASTER( mythid )
986     _BARRIER
987    
988 jmc 1.47 RETURN
989     END

  ViewVC Help
Powered by ViewVC 1.1.22