/[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.91 - (hide annotations) (download)
Tue Feb 7 00:17:21 2017 UTC (7 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66d
Changes since 1.90: +42 -42 lines
call new S/R EXF_GETFFIELD_START in exf_init_fixed.F + change default
 {FLD}StartTime in exf_readparms.F

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

  ViewVC Help
Powered by ViewVC 1.1.22