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

Contents of /MITgcm/pkg/exf/exf_summary.F

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


Revision 1.34 - (show annotations) (download)
Thu Jun 5 15:37:46 2014 UTC (10 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65t, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint65, checkpoint65o, checkpoint64y, checkpoint64z
Changes since 1.33: +4 -4 lines
- new integer parameter "exf_debugLev" (default set to main model debugLevel)
  to replace logical switch "exf_verbose".

1 C $Header: /u/gcmpack/MITgcm/pkg/exf/exf_summary.F,v 1.33 2013/10/05 19:36:13 jmc Exp $
2 C $Name: $
3
4 #include "EXF_OPTIONS.h"
5
6 C-- File exf_summary.F: Routines to print out EXF settings
7 C-- Contents
8 C-- o EXF_SUMMARY
9 C-- o EXF_PRINT_INTERP
10
11 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
12
13 SUBROUTINE EXF_SUMMARY( myThid )
14
15 c ==================================================================
16 c SUBROUTINE exf_summary
17 c ==================================================================
18 c
19 c o List all the settings of the external forcing.
20 c
21 c started: Christian Eckert eckert@mit.edu 11-Jan-1999
22 c
23 c changed: Christian Eckert eckert@mit.edu 12-Feb-2000
24 c - changed routine names (package prefix: exf_)
25 c
26 c changed: Patrick Heimbach heimbach@mit.edu 04-May-2000
27 c - changed the handling of precip and sflux with respect
28 c to CPP options ALLOW_BULKFORMULAE and ALLOW_ATM_TEMP
29 c
30 c changed: Dimitris Menemenlis menemenlis@jpl.nasa.gov 20-Dec-2002
31 c - modifications for using pkg/exf with pkg/seaice
32 c
33 c ==================================================================
34 c SUBROUTINE exf_summary
35 c ==================================================================
36
37 implicit none
38
39 C == global variables ==
40
41 #include "EEPARAMS.h"
42 #include "SIZE.h"
43 #include "EXF_CONSTANTS.h"
44 #include "EXF_PARAM.h"
45
46 C == routine arguments ==
47
48 C myThid - thread number for this instance of the routine.
49
50 integer myThid
51
52 C == local variables ==
53
54 integer il
55
56 character*(max_len_mbuf) msgbuf
57
58 C == external ==
59
60 integer ilnblnk
61 external ilnblnk
62
63 C == end of interface ==
64
65 _BEGIN_MASTER( myThid )
66
67 write(msgbuf,'(a)') ' '
68 call print_message( msgbuf, standardmessageunit,
69 & SQUEEZE_RIGHT, myThid )
70 write(msgbuf,'(a)')
71 &'// ======================================================='
72 call print_message( msgbuf, standardmessageunit,
73 & SQUEEZE_RIGHT, myThid )
74 write(msgbuf,'(a)')
75 &'// External forcing (EXF) configuration >>> START <<<'
76 call print_message( msgbuf, standardmessageunit,
77 & SQUEEZE_RIGHT, myThid )
78 write(msgbuf,'(a)')
79 &'// ======================================================='
80 call print_message( msgbuf, standardmessageunit,
81 & SQUEEZE_RIGHT, myThid )
82 write(msgbuf,'(a)') ' '
83 call print_message( msgbuf, standardmessageunit,
84 & SQUEEZE_RIGHT, myThid )
85
86 C-- Print general parameters:
87 WRITE(msgBuf,'(A)') ' EXF general parameters:'
88 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
89 & SQUEEZE_RIGHT , myThid )
90 WRITE(msgBuf,'(A)') ' '
91 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
92 & SQUEEZE_RIGHT , myThid )
93 CALL WRITE_0D_I( exf_iprec, INDEX_NONE, 'exf_iprec =',
94 & ' /* exf file precision */')
95 CALL WRITE_0D_L( useExfYearlyFields, INDEX_NONE,
96 & 'useExfYearlyFields =',
97 & ' /* add extension _YEAR to input file names */')
98 CALL WRITE_0D_L( twoDigitYear, INDEX_NONE, 'twoDigitYear =',
99 & ' /* use 2-digit year extension */')
100 CALL WRITE_0D_L( useExfCheckRange, INDEX_NONE,
101 & 'useExfCheckRange =', ' /* check for fields range */')
102 CALL WRITE_0D_I( exf_debugLev, INDEX_NONE, 'exf_debugLev =',
103 & ' /* select EXF-debug printing level */')
104 CALL WRITE_0D_RL( exf_monFreq, INDEX_NONE, 'exf_monFreq =',
105 & ' /* EXF monitor frequency [ s ] */')
106 CALL WRITE_0D_RL( repeatPeriod, INDEX_NONE, 'repeatPeriod =',
107 & ' /* period for cycling forcing dataset [ s ] */')
108 CALL WRITE_0D_RL( climtempfreeze, INDEX_NONE,'climTempFreeze=',
109 & ' /* Minimum climatological temperature [deg.C] */')
110 CALL WRITE_0D_RL( windStressMax, INDEX_NONE,'windStressMax =',
111 & ' /* Maximum absolute windstress [ Pa ] */')
112 CALL WRITE_0D_L( stressIsOnCgrid,INDEX_NONE,'stressIsOnCgrid =',
113 & ' /* set u,v_stress on Arakawa C-grid */')
114 CALL WRITE_0D_RL( cen2kel, INDEX_NONE, 'cen2kel =',
115 & ' /* conversion of deg. Centigrade to Kelvin [K] */')
116 CALL WRITE_0D_RL( gravity_mks, INDEX_NONE, 'gravity_mks=',
117 & ' /* gravitational acceleration [m/s^2] */')
118 CALL WRITE_0D_RL( atmrho, INDEX_NONE, 'atmrho =',
119 & ' /* mean atmospheric density [kg/m^3] */')
120 CALL WRITE_0D_RL( atmcp, INDEX_NONE, 'atmcp =',
121 & ' /* mean atmospheric specific heat [J/kg/K] */')
122 CALL WRITE_0D_RL( flamb, INDEX_NONE, 'flamb =',
123 & ' /* latent heat of evaporation [J/kg] */')
124 CALL WRITE_0D_RL( flami, INDEX_NONE, 'flami =',
125 & ' /* latent heat of pure-ice melting [J/kg] */')
126 CALL WRITE_0D_RL( cvapor_fac, INDEX_NONE, 'cvapor_fac =',
127 & ' /* const. for Saturation calculation [?] */')
128 CALL WRITE_0D_RL( cvapor_exp, INDEX_NONE, 'cvapor_exp =',
129 & ' /* const. for Saturation calculation [?] */')
130 CALL WRITE_0D_RL( cvapor_fac_ice, INDEX_NONE, 'cvapor_fac_ice=',
131 & ' /* const. for Saturation calculation [?] */')
132 CALL WRITE_0D_RL( cvapor_exp_ice, INDEX_NONE, 'cvapor_exp_ice=',
133 & ' /* const. for Saturation calculation [?] */')
134 CALL WRITE_0D_RL( humid_fac, INDEX_NONE, 'humid_fac =',
135 & ' /* humidity coef. in virtual temp. [(kg/kg)^-1] */')
136 CALL WRITE_0D_RL( gamma_blk, INDEX_NONE, 'gamma_blk =',
137 & ' /* adiabatic lapse rate [?] */')
138 CALL WRITE_0D_RL( saltsat, INDEX_NONE, 'saltsat =',
139 & ' /* reduction of Qsat over salty water [-] */')
140 CALL WRITE_0D_L( noNegativeEvap,INDEX_NONE,'noNegativeEvap =',
141 & ' /* prevent negative Evaporation */')
142 CALL WRITE_0D_RL( sstExtrapol, INDEX_NONE, 'sstExtrapol =',
143 & ' /* extrapolation coeff from lev. 1 & 2 to surf [-] */')
144 CALL WRITE_0D_RL( cdrag_1, INDEX_NONE, 'cDrag_1 =',
145 & ' /* coef used in drag calculation [?] */')
146 CALL WRITE_0D_RL( cdrag_2, INDEX_NONE, 'cDrag_2 =',
147 & ' /* coef used in drag calculation [?] */')
148 CALL WRITE_0D_RL( cdrag_3, INDEX_NONE, 'cDrag_3 =',
149 & ' /* coef used in drag calculation [?] */')
150 CALL WRITE_0D_RL( cstanton_1, INDEX_NONE, 'cStanton_1 =',
151 & ' /* coef used in Stanton number calculation [?] */')
152 CALL WRITE_0D_RL( cstanton_2, INDEX_NONE, 'cStanton_2 =',
153 & ' /* coef used in Stanton number calculation [?] */')
154 CALL WRITE_0D_RL( cdalton, INDEX_NONE, 'cDalton =',
155 & ' /* coef used in Dalton number calculation [?] */')
156 CALL WRITE_0D_RL( exf_scal_BulkCdn, INDEX_NONE,
157 & 'exf_scal_BulkCdn=',
158 & ' /* Drag coefficient scaling factor [-] */')
159 CALL WRITE_0D_RL( zolmin, INDEX_NONE, 'zolmin =',
160 & ' /* minimum stability parameter [?] */')
161 CALL WRITE_0D_RL( psim_fac, INDEX_NONE, 'psim_fac =',
162 & ' /* coef used in turbulent fluxes calculation [-] */')
163 CALL WRITE_0D_RL( zref, INDEX_NONE, 'zref =',
164 & ' /* reference height [ m ] */')
165 CALL WRITE_0D_RL( hu, INDEX_NONE, 'hu =',
166 & ' /* height of mean wind [ m ] */')
167 CALL WRITE_0D_RL( ht, INDEX_NONE, 'ht =',
168 & ' /* height of mean temperature [ m ] */')
169 CALL WRITE_0D_RL( hq, INDEX_NONE, 'hq =',
170 & ' /* height of mean spec.humidity [ m ] */')
171 CALL WRITE_0D_RL( umin, INDEX_NONE, 'uMin =',
172 & ' /* minimum wind speed [m/s] */')
173 CALL WRITE_0D_L( useStabilityFct_overIce, INDEX_NONE,
174 & 'useStabilityFct_overIce=',
175 & ' /* transfert Coeffs over sea-ice depend on stability */')
176 CALL WRITE_0D_RL( exf_iceCd, INDEX_NONE, 'exf_iceCd =',
177 & ' /* drag coefficient over sea-ice (fixed) [-] */')
178 CALL WRITE_0D_RL( exf_iceCe, INDEX_NONE, 'exf_iceCe =',
179 & ' /* transfert coeff. over sea-ice, for Evap (fixed) [-] */')
180 CALL WRITE_0D_RL( exf_iceCh, INDEX_NONE, 'exf_iceCh =',
181 & ' /* transfert coeff. over sea-ice, Sens.Heat.(fixed)[-] */')
182 CALL WRITE_0D_RL( exf_albedo, INDEX_NONE, 'exf_albedo =',
183 & ' /* Sea-water albedo [-] */')
184 CALL WRITE_0D_L( useExfZenAlbedo, INDEX_NONE, 'useExfZenAlbedo =',
185 & ' /* Sea-water albedo varies with zenith angle */')
186 CALL WRITE_0D_I( select_ZenAlbedo,INDEX_NONE,'select_ZenAlbedo =',
187 & ' /* Sea-water albedo computation method */')
188 CALL WRITE_0D_L( useExfZenIncoming, INDEX_NONE,
189 & 'useExfZenIncoming =',' /* compute incoming solar radiation */')
190 CALL WRITE_0D_RL( ocean_emissivity, INDEX_NONE,
191 & 'ocean_emissivity =',
192 & ' /* longwave ocean-surface emissivity [-] */')
193 CALL WRITE_0D_RL( ice_emissivity, INDEX_NONE,'ice_emissivity =',
194 & ' /* longwave seaice emissivity [-] */')
195 CALL WRITE_0D_RL(snow_emissivity, INDEX_NONE,'snow_emissivity =',
196 & ' /* longwave snow emissivity [-] */')
197 WRITE(msgBuf,'(A)') ' '
198 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
199 & SQUEEZE_RIGHT , myThid )
200
201 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
202 C-- Print settings of some CPP flags.
203 WRITE(msgBuf,'(A)') ' EXF main CPP flags:'
204 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
205 & SQUEEZE_RIGHT , myThid )
206 WRITE(msgBuf,'(A)') ' '
207 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
208 & SQUEEZE_RIGHT , myThid )
209
210 #ifdef USE_EXF_INTERPOLATION
211 WRITE(msgBuf,'(A)')
212 &'// USE_EXF_INTERPOLATION: defined'
213 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
214 & SQUEEZE_RIGHT , myThid)
215 #else
216 WRITE(msgBuf,'(A)')
217 &'// USE_EXF_INTERPOLATION: NOT defined'
218 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
219 & SQUEEZE_RIGHT , myThid)
220 #endif
221
222 #ifdef ALLOW_ATM_TEMP
223 write(msgbuf,'(a)')
224 &'// ALLOW_ATM_TEMP: defined'
225 call print_message( msgbuf, standardmessageunit,
226 & SQUEEZE_RIGHT, myThid )
227 #else
228 write(msgbuf,'(a)')
229 &'// ALLOW_ATM_TEMP: NOT defined'
230 call print_message( msgbuf, standardmessageunit,
231 & SQUEEZE_RIGHT, myThid )
232 #endif
233
234 IF ( useAtmWind ) THEN
235 write(msgbuf,'(a)')
236 &'// ALLOW_ATM_WIND (useAtmWind): defined'
237 call print_message( msgbuf, standardmessageunit,
238 & SQUEEZE_RIGHT, myThid )
239 ELSE
240 write(msgbuf,'(a)')
241 &'// ALLOW_ATM_WIND (useAtmWind): NOT defined'
242 call print_message( msgbuf, standardmessageunit,
243 & SQUEEZE_RIGHT, myThid )
244 ENDIF
245
246 #ifdef ALLOW_DOWNWARD_RADIATION
247 write(msgbuf,'(a)')
248 &'// ALLOW_DOWNWARD_RADIATION: defined'
249 call print_message( msgbuf, standardmessageunit,
250 & SQUEEZE_RIGHT, myThid )
251 #else
252 write(msgbuf,'(a)')
253 &'// ALLOW_DOWNWARD_RADIATION: NOT defined'
254 call print_message( msgbuf, standardmessageunit,
255 & SQUEEZE_RIGHT, myThid )
256 #endif
257
258 #ifdef ALLOW_BULKFORMULAE
259 write(msgbuf,'(a)')
260 &'// ALLOW_BULKFORMULAE: defined'
261 call print_message( msgbuf, standardmessageunit,
262 & SQUEEZE_RIGHT, myThid )
263 #else
264 write(msgbuf,'(a)')
265 &'// ALLOW_BULKFORMULAE: NOT defined'
266 call print_message( msgbuf, standardmessageunit,
267 & SQUEEZE_RIGHT, myThid )
268 #endif
269
270 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
271
272 C-- For each data set used the summary prints the calendar data
273 C and the corresponding file from which the data will be read.
274
275 IF ( .NOT.useAtmWind ) THEN
276 C-- Zonal wind stress.
277 il = ilnblnk(ustressfile)
278 write(msgbuf,'(a)') ' '
279 call print_message( msgbuf, standardmessageunit,
280 & SQUEEZE_RIGHT, myThid )
281 write(msgbuf,'(a,f12.0)')
282 &' Zonal wind stress forcing starts at ',
283 & ustressstartdate
284 call print_message( msgbuf, standardmessageunit,
285 & SQUEEZE_RIGHT, myThid )
286 write(msgbuf,'(a,f12.0)')
287 &' Zonal wind stress forcing period is ',
288 & ustressperiod
289 call print_message( msgbuf, standardmessageunit,
290 & SQUEEZE_RIGHT, myThid )
291 write(msgbuf,'(a)')
292 &' Zonal wind stress forcing is read from file:'
293 call print_message( msgbuf, standardmessageunit,
294 & SQUEEZE_RIGHT, myThid )
295 write(msgbuf,'(a,a,a)')
296 &' >> ',ustressfile(1:il),' <<'
297 call print_message( msgbuf, standardmessageunit,
298 & SQUEEZE_RIGHT, myThid )
299 #ifdef USE_EXF_INTERPOLATION
300 CALL EXF_PRINT_INTERP( 'ustress',
301 & ustress_lon0, ustress_lon_inc, ustress_lat0, ustress_lat_inc,
302 & ustress_nlon, ustress_nlat, ustress_interpMethod, myThid )
303 #endif
304
305 C-- Meridional wind stress.
306 il = ilnblnk(vstressfile)
307 write(msgbuf,'(a)') ' '
308 call print_message( msgbuf, standardmessageunit,
309 & SQUEEZE_RIGHT, myThid )
310 write(msgbuf,'(a,f12.0)')
311 &' Meridional wind stress forcing starts at ',
312 & vstressstartdate
313 call print_message( msgbuf, standardmessageunit,
314 & SQUEEZE_RIGHT, myThid )
315 write(msgbuf,'(a,f12.0)')
316 &' Meridional wind stress forcing period is ',
317 & vstressperiod
318 call print_message( msgbuf, standardmessageunit,
319 & SQUEEZE_RIGHT, myThid )
320 write(msgbuf,'(a)')
321 &' Meridional wind stress forcing is read from file:'
322 call print_message( msgbuf, standardmessageunit,
323 & SQUEEZE_RIGHT, myThid )
324 write(msgbuf,'(a,a,a)')
325 &' >> ',vstressfile(1:il),' <<'
326 call print_message( msgbuf, standardmessageunit,
327 & SQUEEZE_RIGHT, myThid )
328 #ifdef USE_EXF_INTERPOLATION
329 CALL EXF_PRINT_INTERP( 'vstress',
330 & vstress_lon0, vstress_lon_inc, vstress_lat0, vstress_lat_inc,
331 & vstress_nlon, vstress_nlat, vstress_interpMethod, myThid )
332 WRITE(msgBuf,'(2A,L5)') ' Interp. U & V comp. together:',
333 & ' uvInterp_stress =', uvInterp_stress
334 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
335 & SQUEEZE_RIGHT, myThid )
336 #endif
337 ENDIF
338
339 #ifndef ALLOW_ATM_TEMP
340 C-- Heat flux.
341 il = ilnblnk(hfluxfile)
342 write(msgbuf,'(a)') ' '
343 call print_message( msgbuf, standardmessageunit,
344 & SQUEEZE_RIGHT, myThid )
345 write(msgbuf,'(a,f12.0)')
346 &' Heat flux forcing starts at ',
347 & hfluxstartdate
348 call print_message( msgbuf, standardmessageunit,
349 & SQUEEZE_RIGHT, myThid )
350 write(msgbuf,'(a,f12.0)')
351 &' Heat flux forcing period is ',
352 & hfluxperiod
353 call print_message( msgbuf, standardmessageunit,
354 & SQUEEZE_RIGHT, myThid )
355 write(msgbuf,'(a)')
356 &' Heat flux forcing is read from file: '
357 call print_message( msgbuf, standardmessageunit,
358 & SQUEEZE_RIGHT, myThid )
359 write(msgbuf,'(a,a,a)')
360 &' >> ',hfluxfile(1:il),' <<'
361 call print_message( msgbuf, standardmessageunit,
362 & SQUEEZE_RIGHT, myThid )
363 #ifdef USE_EXF_INTERPOLATION
364 CALL EXF_PRINT_INTERP( 'hflux',
365 & hflux_lon0, hflux_lon_inc, hflux_lat0, hflux_lat_inc,
366 & hflux_nlon, hflux_nlat, hflux_interpMethod, myThid )
367 #endif
368
369 C-- Salt flux.
370 il = ilnblnk(sfluxfile)
371 write(msgbuf,'(a)') ' '
372 call print_message( msgbuf, standardmessageunit,
373 & SQUEEZE_RIGHT, myThid )
374 write(msgbuf,'(a,f12.0)')
375 &' Salt flux forcing starts at ',
376 & sfluxstartdate
377 call print_message( msgbuf, standardmessageunit,
378 & SQUEEZE_RIGHT, myThid )
379 write(msgbuf,'(a,f12.0)')
380 &' Salt flux forcing period is ',
381 & sfluxperiod
382 call print_message( msgbuf, standardmessageunit,
383 & SQUEEZE_RIGHT, myThid )
384 write(msgbuf,'(a)')
385 &' Salt flux forcing is read from file: '
386 call print_message( msgbuf, standardmessageunit,
387 & SQUEEZE_RIGHT, myThid )
388 write(msgbuf,'(a,a,a)')
389 &' >> ',sfluxfile(1:il),' <<'
390 call print_message( msgbuf, standardmessageunit,
391 & SQUEEZE_RIGHT, myThid )
392 #ifdef USE_EXF_INTERPOLATION
393 CALL EXF_PRINT_INTERP( 'sflux',
394 & sflux_lon0, sflux_lon_inc, sflux_lat0, sflux_lat_inc,
395 & sflux_nlon, sflux_nlat, sflux_interpMethod, myThid )
396 #endif
397 #endif /* ndef ALLOW_ATM_TEMP */
398
399 #if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING)
400 C-- Net shortwave.
401 il = ilnblnk(swfluxfile)
402 write(msgbuf,'(a)') ' '
403 call print_message( msgbuf, standardmessageunit,
404 & SQUEEZE_RIGHT, myThid )
405 write(msgbuf,'(a,f12.0)')
406 &' Net shortwave flux forcing starts at ',
407 & swfluxstartdate
408 call print_message( msgbuf, standardmessageunit,
409 & SQUEEZE_RIGHT, myThid )
410 write(msgbuf,'(a,f12.0)')
411 &' Net shortwave flux forcing period is ',
412 & swfluxperiod
413 call print_message( msgbuf, standardmessageunit,
414 & SQUEEZE_RIGHT, myThid )
415 write(msgbuf,'(a)')
416 &' Net shortwave flux forcing is read from file:'
417 call print_message( msgbuf, standardmessageunit,
418 & SQUEEZE_RIGHT, myThid )
419 write(msgbuf,'(a,a,a)')
420 &' >> ',swfluxfile(1:il),' <<'
421 call print_message( msgbuf, standardmessageunit,
422 & SQUEEZE_RIGHT, myThid )
423 #ifdef USE_EXF_INTERPOLATION
424 CALL EXF_PRINT_INTERP( 'swflux',
425 & swflux_lon0, swflux_lon_inc, swflux_lat0, swflux_lat_inc,
426 & swflux_nlon, swflux_nlat, swflux_interpMethod, myThid )
427 #endif
428 #endif /* ALLOW_ATM_TEMP or SHORTWAVE_HEATING */
429
430 IF ( useAtmWind ) THEN
431 C-- Zonal wind.
432 il = ilnblnk(uwindfile)
433 write(msgbuf,'(a)') ' '
434 call print_message( msgbuf, standardmessageunit,
435 & SQUEEZE_RIGHT, myThid )
436 write(msgbuf,'(a,f12.0)')
437 &' Zonal wind forcing starts at ',
438 & uwindstartdate
439 call print_message( msgbuf, standardmessageunit,
440 & SQUEEZE_RIGHT, myThid )
441 write(msgbuf,'(a,f12.0)')
442 &' Zonal wind forcing period is ',
443 & uwindperiod
444 call print_message( msgbuf, standardmessageunit,
445 & SQUEEZE_RIGHT, myThid )
446 write(msgbuf,'(a)')
447 &' Zonal wind forcing is read from file:'
448 call print_message( msgbuf, standardmessageunit,
449 & SQUEEZE_RIGHT, myThid )
450 write(msgbuf,'(a,a,a)')
451 &' >> ',uwindfile(1:il),' <<'
452 call print_message( msgbuf, standardmessageunit,
453 & SQUEEZE_RIGHT, myThid )
454 #ifdef USE_EXF_INTERPOLATION
455 CALL EXF_PRINT_INTERP( 'uwind',
456 & uwind_lon0, uwind_lon_inc, uwind_lat0, uwind_lat_inc,
457 & uwind_nlon, uwind_nlat, uwind_interpMethod, myThid )
458 #endif
459
460 C-- Meridional wind.
461 il = ilnblnk(vwindfile)
462 write(msgbuf,'(a)') ' '
463 call print_message( msgbuf, standardmessageunit,
464 & SQUEEZE_RIGHT, myThid )
465 write(msgbuf,'(a,f12.0)')
466 &' Meridional wind forcing starts at ',
467 & vwindstartdate
468 call print_message( msgbuf, standardmessageunit,
469 & SQUEEZE_RIGHT, myThid )
470 write(msgbuf,'(a,f12.0)')
471 &' Meridional wind forcing period is ',
472 & vwindperiod
473 call print_message( msgbuf, standardmessageunit,
474 & SQUEEZE_RIGHT, myThid )
475 write(msgbuf,'(a)')
476 &' Meridional wind forcing is read from file:'
477 call print_message( msgbuf, standardmessageunit,
478 & SQUEEZE_RIGHT, myThid )
479 write(msgbuf,'(a,a,a)')
480 &' >> ',vwindfile(1:il),' <<'
481 call print_message( msgbuf, standardmessageunit,
482 & SQUEEZE_RIGHT, myThid )
483 #ifdef USE_EXF_INTERPOLATION
484 CALL EXF_PRINT_INTERP( 'vwind',
485 & vwind_lon0, vwind_lon_inc, vwind_lat0, vwind_lat_inc,
486 & vwind_nlon, vwind_nlat, vwind_interpMethod, myThid )
487 WRITE(msgBuf,'(2A,L5)') ' Interp. U & V comp. together:',
488 & ' uvInterp_wind =', uvInterp_wind
489 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
490 & SQUEEZE_RIGHT, myThid )
491 #endif
492 ENDIF
493
494 #ifdef ALLOW_ATM_TEMP
495 C-- Atmospheric temperature.
496 il = ilnblnk(atempfile)
497 write(msgbuf,'(a)') ' '
498 call print_message( msgbuf, standardmessageunit,
499 & SQUEEZE_RIGHT, myThid )
500 write(msgbuf,'(a,f12.0)')
501 &' Atmospheric temperature starts at ',
502 & atempstartdate
503 call print_message( msgbuf, standardmessageunit,
504 & SQUEEZE_RIGHT, myThid )
505 write(msgbuf,'(a,f12.0)')
506 &' Atmospheric temperature period is ',
507 & atempperiod
508 call print_message( msgbuf, standardmessageunit,
509 & SQUEEZE_RIGHT, myThid )
510 write(msgbuf,'(a)')
511 &' Atmospheric temperature is read from file:'
512 call print_message( msgbuf, standardmessageunit,
513 & SQUEEZE_RIGHT, myThid )
514 write(msgbuf,'(a,a,a)')
515 &' >> ',atempfile(1:il),' <<'
516 call print_message( msgbuf, standardmessageunit,
517 & SQUEEZE_RIGHT, myThid )
518 #ifdef USE_EXF_INTERPOLATION
519 CALL EXF_PRINT_INTERP( 'atemp',
520 & atemp_lon0, atemp_lon_inc, atemp_lat0, atemp_lat_inc,
521 & atemp_nlon, atemp_nlat, atemp_interpMethod, myThid )
522 #endif
523
524 C-- Atmospheric specific humidity.
525 il = ilnblnk(aqhfile)
526 write(msgbuf,'(a)') ' '
527 call print_message( msgbuf, standardmessageunit,
528 & SQUEEZE_RIGHT, myThid )
529 write(msgbuf,'(a,f12.0)')
530 &' Atmospheric specific humidity starts at ',
531 & aqhstartdate
532 call print_message( msgbuf, standardmessageunit,
533 & SQUEEZE_RIGHT, myThid )
534 write(msgbuf,'(a,f12.0)')
535 &' Atmospheric specific humidity period is ',
536 & aqhperiod
537 call print_message( msgbuf, standardmessageunit,
538 & SQUEEZE_RIGHT, myThid )
539 write(msgbuf,'(a)')
540 &' Atmospheric specific humidity is read from file:'
541 call print_message( msgbuf, standardmessageunit,
542 & SQUEEZE_RIGHT, myThid )
543 write(msgbuf,'(a,a,a)')
544 &' >> ',aqhfile(1:il),' <<'
545 call print_message( msgbuf, standardmessageunit,
546 & SQUEEZE_RIGHT, myThid )
547 #ifdef USE_EXF_INTERPOLATION
548 CALL EXF_PRINT_INTERP( 'aqh',
549 & aqh_lon0, aqh_lon_inc, aqh_lat0, aqh_lat_inc,
550 & aqh_nlon, aqh_nlat, aqh_interpMethod, myThid )
551 #endif
552
553 C-- Net longwave.
554 il = ilnblnk(lwfluxfile)
555 write(msgbuf,'(a)') ' '
556 call print_message( msgbuf, standardmessageunit,
557 & SQUEEZE_RIGHT, myThid )
558 write(msgbuf,'(a,f12.0)')
559 &' Net longwave flux forcing starts at ',
560 & lwfluxstartdate
561 call print_message( msgbuf, standardmessageunit,
562 & SQUEEZE_RIGHT, myThid )
563 write(msgbuf,'(a,f12.0)')
564 &' Net longwave flux forcing period is ',
565 & lwfluxperiod
566 call print_message( msgbuf, standardmessageunit,
567 & SQUEEZE_RIGHT, myThid )
568 write(msgbuf,'(a)')
569 &' Net longwave flux forcing is read from file:'
570 call print_message( msgbuf, standardmessageunit,
571 & SQUEEZE_RIGHT, myThid )
572 write(msgbuf,'(a,a,a)')
573 &' >> ',lwfluxfile(1:il),' <<'
574 call print_message( msgbuf, standardmessageunit,
575 & SQUEEZE_RIGHT, myThid )
576 #ifdef USE_EXF_INTERPOLATION
577 CALL EXF_PRINT_INTERP( 'lwflux',
578 & lwflux_lon0, lwflux_lon_inc, lwflux_lat0, lwflux_lat_inc,
579 & lwflux_nlon, lwflux_nlat, lwflux_interpMethod, myThid )
580 #endif
581
582 C-- Precipitation.
583 il = ilnblnk(precipfile)
584 write(msgbuf,'(a)') ' '
585 call print_message( msgbuf, standardmessageunit,
586 & SQUEEZE_RIGHT, myThid )
587 write(msgbuf,'(a,f12.0)')
588 &' Precipitation data set starts at ',
589 & precipstartdate
590 call print_message( msgbuf, standardmessageunit,
591 & SQUEEZE_RIGHT, myThid )
592 write(msgbuf,'(a,f12.0)')
593 &' Precipitation data period is ',
594 & precipperiod
595 call print_message( msgbuf, standardmessageunit,
596 & SQUEEZE_RIGHT, myThid )
597 write(msgbuf,'(a)')
598 &' Precipitation data is read from file: '
599 call print_message( msgbuf, standardmessageunit,
600 & SQUEEZE_RIGHT, myThid )
601 write(msgbuf,'(a,a,a)')
602 &' >> ',precipfile(1:il),' <<'
603 call print_message( msgbuf, standardmessageunit,
604 & SQUEEZE_RIGHT, myThid )
605 #ifdef USE_EXF_INTERPOLATION
606 CALL EXF_PRINT_INTERP( 'precip',
607 & precip_lon0, precip_lon_inc, precip_lat0, precip_lat_inc,
608 & precip_nlon, precip_nlat, precip_interpMethod, myThid )
609 #endif
610 #endif /* ALLOW_ATM_TEMP */
611
612 C-- Evaporation.
613 write(msgbuf,'(a)') ' '
614 call print_message( msgbuf, standardmessageunit,
615 & SQUEEZE_RIGHT, myThid )
616 #ifdef EXF_READ_EVAP
617 write(msgbuf,'(a)')
618 &'// EXF_READ_EVAP: defined'
619 call print_message( msgbuf, standardmessageunit,
620 & SQUEEZE_RIGHT, myThid )
621 il = ilnblnk(evapfile)
622 write(msgbuf,'(a,f12.0)')
623 &' Evaporation starts at ',
624 & evapstartdate
625 call print_message( msgbuf, standardmessageunit,
626 & SQUEEZE_RIGHT, myThid )
627 write(msgbuf,'(a,f12.0)')
628 &' Evaporation period is ',
629 & evapperiod
630 call print_message( msgbuf, standardmessageunit,
631 & SQUEEZE_RIGHT, myThid )
632 write(msgbuf,'(a)')
633 &' Evaporation is read from file:'
634 call print_message( msgbuf, standardmessageunit,
635 & SQUEEZE_RIGHT, myThid )
636 write(msgbuf,'(a,a,a)')
637 &' >> ',evapfile(1:il),' <<'
638 call print_message( msgbuf, standardmessageunit,
639 & SQUEEZE_RIGHT, myThid )
640 #ifdef USE_EXF_INTERPOLATION
641 CALL EXF_PRINT_INTERP( 'evap',
642 & evap_lon0, evap_lon_inc, evap_lat0, evap_lat_inc,
643 & evap_nlon, evap_nlat, evap_interpMethod, myThid )
644 #endif
645 #else /* EXF_READ_EVAP */
646 write(msgbuf,'(a)')
647 &'// EXF_READ_EVAP: NOT defined'
648 call print_message( msgbuf, standardmessageunit,
649 & SQUEEZE_RIGHT, myThid )
650 #endif /* EXF_READ_EVAP */
651
652 C-- Runoff.
653 write(msgbuf,'(a)') ' '
654 call print_message( msgbuf, standardmessageunit,
655 & SQUEEZE_RIGHT, myThid )
656 #ifdef ALLOW_RUNOFF
657 write(msgbuf,'(a)')
658 &'// ALLOW_RUNOFF: defined'
659 call print_message( msgbuf, standardmessageunit,
660 & SQUEEZE_RIGHT, myThid )
661 il = ilnblnk(runofffile)
662 write(msgbuf,'(a,f12.0)')
663 &' Runoff starts at ',
664 & runoffstartdate
665 call print_message( msgbuf, standardmessageunit,
666 & SQUEEZE_RIGHT, myThid )
667 write(msgbuf,'(a,f12.0)')
668 &' Runoff period is ',
669 & runoffperiod
670 call print_message( msgbuf, standardmessageunit,
671 & SQUEEZE_RIGHT, myThid )
672 write(msgbuf,'(a)')
673 &' Runoff is read from file:'
674 call print_message( msgbuf, standardmessageunit,
675 & SQUEEZE_RIGHT, myThid )
676 write(msgbuf,'(a,a,a)')
677 &' >> ',runofffile(1:il),' <<'
678 call print_message( msgbuf, standardmessageunit,
679 & SQUEEZE_RIGHT, myThid )
680 # ifdef ALLOW_RUNOFTEMP
681 write(msgbuf,'(a)')
682 &'// ALLOW_RUNOFTEMP: defined'
683 call print_message( msgbuf, standardmessageunit,
684 & SQUEEZE_RIGHT, myThid )
685 il = ilnblnk(runoftempfile)
686 write(msgbuf,'(a)')
687 &' Runoff temp. is read from file:'
688 call print_message( msgbuf, standardmessageunit,
689 & SQUEEZE_RIGHT, myThid )
690 write(msgbuf,'(a,a,a)')
691 &' >> ',runoftempfile(1:il),' <<'
692 call print_message( msgbuf, standardmessageunit,
693 & SQUEEZE_RIGHT, myThid )
694 # else /* ALLOW_RUNOFTEMP */
695 write(msgbuf,'(a)')
696 &'// ALLOW_RUNOFTEMP: NOT defined'
697 call print_message( msgbuf, standardmessageunit,
698 & SQUEEZE_RIGHT, myThid )
699 # endif /* ALLOW_RUNOFTEMP */
700 # ifdef USE_EXF_INTERPOLATION
701 CALL EXF_PRINT_INTERP( 'runoff',
702 & runoff_lon0, runoff_lon_inc, runoff_lat0, runoff_lat_inc,
703 & runoff_nlon, runoff_nlat, runoff_interpMethod, myThid )
704 # endif /* USE_EXF_INTERPOLATION */
705 #else /* ALLOW_RUNOFF */
706 write(msgbuf,'(a)')
707 &'// ALLOW_RUNOFF: NOT defined'
708 call print_message( msgbuf, standardmessageunit,
709 & SQUEEZE_RIGHT, myThid )
710 #endif /* ALLOW_RUNOFF */
711
712 #ifdef ALLOW_DOWNWARD_RADIATION
713 C-- Downward shortwave.
714 il = ilnblnk(swdownfile)
715 write(msgbuf,'(a)') ' '
716 call print_message( msgbuf, standardmessageunit,
717 & SQUEEZE_RIGHT, myThid )
718 write(msgbuf,'(a,f12.0)')
719 &' Downward shortwave flux forcing starts at ',
720 & swdownstartdate
721 call print_message( msgbuf, standardmessageunit,
722 & SQUEEZE_RIGHT, myThid )
723 write(msgbuf,'(a,f12.0)')
724 &' Downward shortwave flux forcing period is ',
725 & swdownperiod
726 call print_message( msgbuf, standardmessageunit,
727 & SQUEEZE_RIGHT, myThid )
728 write(msgbuf,'(a)')
729 &' Downward shortwave flux forcing is read from file:'
730 call print_message( msgbuf, standardmessageunit,
731 & SQUEEZE_RIGHT, myThid )
732 write(msgbuf,'(a,a,a)')
733 &' >> ',swdownfile(1:il),' <<'
734 call print_message( msgbuf, standardmessageunit,
735 & SQUEEZE_RIGHT, myThid )
736 #ifdef USE_EXF_INTERPOLATION
737 CALL EXF_PRINT_INTERP( 'swdown',
738 & swdown_lon0, swdown_lon_inc, swdown_lat0, swdown_lat_inc,
739 & swdown_nlon, swdown_nlat, swdown_interpMethod, myThid )
740 #endif
741
742 C-- Downward longwave.
743 il = ilnblnk(lwdownfile)
744 write(msgbuf,'(a)') ' '
745 call print_message( msgbuf, standardmessageunit,
746 & SQUEEZE_RIGHT, myThid )
747 write(msgbuf,'(a,f12.0)')
748 &' Downward longwave flux forcing starts at ',
749 & lwdownstartdate
750 call print_message( msgbuf, standardmessageunit,
751 & SQUEEZE_RIGHT, myThid )
752 write(msgbuf,'(a,f12.0)')
753 &' Downward longwave flux forcing period is ',
754 & lwdownperiod
755 call print_message( msgbuf, standardmessageunit,
756 & SQUEEZE_RIGHT, myThid )
757 write(msgbuf,'(a)')
758 &' Downward longwave flux forcing is read from file:'
759 call print_message( msgbuf, standardmessageunit,
760 & SQUEEZE_RIGHT, myThid )
761 write(msgbuf,'(a,a,a)')
762 &' >> ',lwdownfile(1:il),' <<'
763 call print_message( msgbuf, standardmessageunit,
764 & SQUEEZE_RIGHT, myThid )
765 #ifdef USE_EXF_INTERPOLATION
766 CALL EXF_PRINT_INTERP( 'lwdown',
767 & lwdown_lon0, lwdown_lon_inc, lwdown_lat0, lwdown_lat_inc,
768 & lwdown_nlon, lwdown_nlat, lwdown_interpMethod, myThid )
769 #endif
770 #endif /* ALLOW_DOWNWARD_RADIATION */
771
772 #ifdef ATMOSPHERIC_LOADING
773 C-- Atmospheric pressure.
774 il = ilnblnk(apressurefile)
775 write(msgbuf,'(a)') ' '
776 call print_message( msgbuf, standardmessageunit,
777 & SQUEEZE_RIGHT, myThid )
778 write(msgbuf,'(a,f12.0)')
779 &' Atmospheric pressure forcing starts at ',
780 & apressurestartdate
781 call print_message( msgbuf, standardmessageunit,
782 & SQUEEZE_RIGHT, myThid )
783 write(msgbuf,'(a,f12.0)')
784 &' Atmospheric pressure forcing period is ',
785 & apressureperiod
786 call print_message( msgbuf, standardmessageunit,
787 & SQUEEZE_RIGHT, myThid )
788 write(msgbuf,'(a)')
789 &' Atmospheric pressureforcing is read from file:'
790 call print_message( msgbuf, standardmessageunit,
791 & SQUEEZE_RIGHT, myThid )
792 write(msgbuf,'(a,a,a)')
793 &' >> ',apressurefile(1:il),' <<'
794 call print_message( msgbuf, standardmessageunit,
795 & SQUEEZE_RIGHT, myThid )
796 #ifdef USE_EXF_INTERPOLATION
797 CALL EXF_PRINT_INTERP( 'apressure', apressure_lon0,
798 & apressure_lon_inc, apressure_lat0, apressure_lat_inc,
799 & apressure_nlon, apressure_nlat, apressure_interpMethod, myThid )
800 #endif
801 #endif /* ATMOSPHERIC_LOADING */
802
803 #ifdef EXF_SEAICE_FRACTION
804 C-- fractional ice-covered area MASK.
805 il = ilnblnk(areamaskfile)
806 write(msgbuf,'(a)') ' '
807 call print_message( msgbuf, standardmessageunit,
808 & SQUEEZE_RIGHT, myThid )
809 write(msgbuf,'(a,f12.0)')
810 &' fractional ice-covered area MASK starts at ',
811 & areamaskstartdate
812 call print_message( msgbuf, standardmessageunit,
813 & SQUEEZE_RIGHT, myThid )
814 write(msgbuf,'(a,f12.0)')
815 &' fractional ice-covered area MASK period is ',
816 & areamaskperiod
817 call print_message( msgbuf, standardmessageunit,
818 & SQUEEZE_RIGHT, myThid )
819 write(msgbuf,'(a)')
820 &' fractional ice-covered area MASK is read from file:'
821 call print_message( msgbuf, standardmessageunit,
822 & SQUEEZE_RIGHT, myThid )
823 write(msgbuf,'(a,a,a)')
824 &' >> ',areamaskfile(1:il),' <<'
825 call print_message( msgbuf, standardmessageunit,
826 & SQUEEZE_RIGHT, myThid )
827 #ifdef USE_EXF_INTERPOLATION
828 CALL EXF_PRINT_INTERP( 'areamask', areamask_lon0,
829 & areamask_lon_inc, areamask_lat0, areamask_lat_inc,
830 & areamask_nlon, areamask_nlat, areamask_interpMethod, myThid )
831 #endif
832 #endif /* EXF_SEAICE_FRACTION */
833
834 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
835
836 write(msgbuf,'(a)') ' '
837 call print_message( msgbuf, standardmessageunit,
838 & SQUEEZE_RIGHT, myThid )
839 write(msgbuf,'(a)')
840 &'// ======================================================='
841 call print_message( msgbuf, standardmessageunit,
842 & SQUEEZE_RIGHT, myThid )
843 write(msgbuf,'(a)')
844 &'// External forcing (EXF) climatology configuration :'
845 call print_message( msgbuf, standardmessageunit,
846 & SQUEEZE_RIGHT, myThid )
847 write(msgbuf,'(a)')
848 &'// ======================================================='
849 call print_message( msgbuf, standardmessageunit,
850 & SQUEEZE_RIGHT, myThid )
851 write(msgbuf,'(a)') ' '
852 call print_message( msgbuf, standardmessageunit,
853 & SQUEEZE_RIGHT, myThid )
854
855 C For each data set used the summary prints the calendar data
856 C and the corresponding file from which the data will be read.
857
858 #ifdef ALLOW_CLIMSST_RELAXATION
859 write(msgbuf,'(a)')
860 &'// ALLOW_CLIMSST_RELAXATION: defined'
861 call print_message( msgbuf, standardmessageunit,
862 & SQUEEZE_RIGHT, myThid )
863 #else
864 write(msgbuf,'(a)')
865 &'// ALLOW_CLIMSST_RELAXATION: NOT defined'
866 call print_message( msgbuf, standardmessageunit,
867 & SQUEEZE_RIGHT, myThid )
868 #endif
869
870 #ifdef ALLOW_CLIMSSS_RELAXATION
871 write(msgbuf,'(a)')
872 &'// ALLOW_CLIMSSS_RELAXATION: defined'
873 call print_message( msgbuf, standardmessageunit,
874 & SQUEEZE_RIGHT, myThid )
875 #else
876 write(msgbuf,'(a)')
877 &'// ALLOW_CLIMSSS_RELAXATION: NOT defined'
878 call print_message( msgbuf, standardmessageunit,
879 & SQUEEZE_RIGHT, myThid )
880 #endif
881
882 C The climatological data sets are assumed to contain monthly
883 C data. This can be changed in a later version to an arbitrary
884 C number of intervals during a given year.
885
886 #ifdef ALLOW_CLIMSST_RELAXATION
887 C Relaxation to SST climatology.
888 il = ilnblnk(climsstfile)
889 write(msgbuf,'(a)')
890 &' '
891 call print_message( msgbuf, standardmessageunit,
892 & SQUEEZE_RIGHT, myThid )
893 write(msgbuf,'(a,f12.0)')
894 &' Climatological SST starts at ',
895 & climsststartdate
896 call print_message( msgbuf, standardmessageunit,
897 & SQUEEZE_RIGHT, myThid )
898 write(msgbuf,'(a,f12.0)')
899 &' Climatological SST period is ',
900 & climsstperiod
901 call print_message( msgbuf, standardmessageunit,
902 & SQUEEZE_RIGHT, myThid )
903 write(msgbuf,'(a)')
904 &' Climatological SST is read from file:'
905 call print_message( msgbuf, standardmessageunit,
906 & SQUEEZE_RIGHT, myThid )
907 write(msgbuf,'(a,a,a)')
908 &' >> ',climsstfile(1:il),' <<'
909 call print_message( msgbuf, standardmessageunit,
910 & SQUEEZE_RIGHT, myThid )
911 #ifdef USE_EXF_INTERPOLATION
912 CALL EXF_PRINT_INTERP( 'climsst',
913 & climsst_lon0, climsst_lon_inc, climsst_lat0, climsst_lat_inc,
914 & climsst_nlon, climsst_nlat, climsst_interpMethod, myThid )
915 #endif
916 #endif /* ALLOW_CLIMSST_RELAXATION */
917
918 #ifdef ALLOW_CLIMSSS_RELAXATION
919 C Relaxation to SSS climatology.
920 il = ilnblnk(climsssfile)
921 write(msgbuf,'(a)')
922 &' '
923 call print_message( msgbuf, standardmessageunit,
924 & SQUEEZE_RIGHT, myThid )
925 write(msgbuf,'(a,f12.0)')
926 &' Climatological SSS starts at ',
927 & climsssstartdate
928 call print_message( msgbuf, standardmessageunit,
929 & SQUEEZE_RIGHT, myThid )
930 write(msgbuf,'(a,f12.0)')
931 &' Climatological SSS period is ',
932 & climsssperiod
933 call print_message( msgbuf, standardmessageunit,
934 & SQUEEZE_RIGHT, myThid )
935 write(msgbuf,'(a)')
936 &' Climatological SSS is read from file:'
937 call print_message( msgbuf, standardmessageunit,
938 & SQUEEZE_RIGHT, myThid )
939 write(msgbuf,'(a,a,a)')
940 &' >> ',climsssfile(1:il),' <<'
941 call print_message( msgbuf, standardmessageunit,
942 & SQUEEZE_RIGHT, myThid )
943 #ifdef USE_EXF_INTERPOLATION
944 CALL EXF_PRINT_INTERP( 'climsss',
945 & climsss_lon0, climsss_lon_inc, climsss_lat0, climsss_lat_inc,
946 & climsss_nlon, climsss_nlat, climsss_interpMethod, myThid )
947 #endif
948 #endif /* ALLOW_CLIMSSS_RELAXATION */
949
950 write(msgbuf,'(a)') ' '
951 call print_message( msgbuf, standardmessageunit,
952 & SQUEEZE_RIGHT, myThid )
953 write(msgbuf,'(a)')
954 &'// ======================================================='
955 call print_message( msgbuf, standardmessageunit,
956 & SQUEEZE_RIGHT, myThid )
957 write(msgbuf,'(a)')
958 &'// External forcing (EXF) configuration >>> END <<<'
959 call print_message( msgbuf, standardmessageunit,
960 & SQUEEZE_RIGHT, myThid )
961 write(msgbuf,'(a)')
962 &'// ======================================================='
963 call print_message( msgbuf, standardmessageunit,
964 & SQUEEZE_RIGHT, myThid )
965 write(msgbuf,'(a)') ' '
966 call print_message( msgbuf, standardmessageunit,
967 & SQUEEZE_RIGHT, myThid )
968
969 _END_MASTER( myThid )
970
971 RETURN
972 END
973
974 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
975 #ifdef USE_EXF_INTERPOLATION
976
977 CBOP
978 C !ROUTINE: EXF_PRINT_INTERP
979 C !INTERFACE:
980 SUBROUTINE EXF_PRINT_INTERP( var_name,
981 I var_lon0, var_lon_inc, var_lat0, var_lat_inc,
982 I var_nlon, var_nlat, var_interpMethod, myThid )
983
984 C !DESCRIPTION:
985 C Print EXF interpolation parameters for one EXF input field
986
987 C !USES:
988 IMPLICIT NONE
989
990 #include "EEPARAMS.h"
991
992 C !INPUT PARAMETERS:
993 C myThid :: My Thread Id number
994 CHARACTER*(*) var_name
995 _RL var_lon0, var_lon_inc, var_lat0
996 _RL var_lat_inc(*)
997 INTEGER var_nlon, var_nlat, var_interpMethod
998 INTEGER myThid
999
1000 C !FUNCTIONS:
1001 c INTEGER ILNBLNK
1002 c EXTERNAL ILNBLNK
1003
1004 C !LOCAL VARIABLES:
1005 INTEGER i
1006 _RL var_min, var_max
1007 CHARACTER*(MAX_LEN_MBUF) msgBuf
1008 CEOP
1009
1010 IF ( var_interpMethod.EQ.0 ) THEN
1011 WRITE(msgBuf,'(3X,A,A,A)')
1012 & 'assume "',var_name,'" on model-grid (no interpolation)'
1013 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
1014 & SQUEEZE_RIGHT , myThid )
1015 ELSE
1016 WRITE(msgBuf,'(3X,A,A,A,I3,A)')
1017 & 'interpolate "',var_name,'" (method=',var_interpMethod,' ):'
1018 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
1019 & SQUEEZE_RIGHT , myThid )
1020 C- print input-field longitude position:
1021 IF ( ABS(var_lon0).LT.1000. .AND. var_lon_inc.GT.-10.
1022 & .AND. var_lon_inc.LT.100. ) THEN
1023 WRITE(msgBuf,'(3X,A,F10.5,A,I6,A,F10.7)')
1024 & 'lon0=', var_lon0, ', nlon=', var_nlon,
1025 & ', lon_inc=',var_lon_inc
1026 ELSE
1027 WRITE(msgBuf,'(3X,A,1PE10.3,A,I6,A,1PE10.3)')
1028 & 'lon0=', var_lon0, ', nlon=', var_nlon,
1029 & ', lon_inc=',var_lon_inc
1030 ENDIF
1031 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
1032 & SQUEEZE_RIGHT , myThid )
1033 C- print input-field latitude position:
1034 var_min = var_lat_inc(1)
1035 var_max = var_lat_inc(1)
1036 DO i=1,var_nlat-1
1037 var_min = MIN( var_lat_inc(i), var_min )
1038 var_max = MAX( var_lat_inc(i), var_max )
1039 ENDDO
1040 IF ( ABS(var_lat0).LT.1000. .AND. var_min.GT.-10.
1041 & .AND. var_max.LT.100. ) THEN
1042 IF ( var_min.EQ.var_max ) THEN
1043 WRITE(msgBuf,'(3X,A,F10.5,A,I6,A,F10.7)')
1044 & 'lat0=', var_lat0, ', nlat=', var_nlat,
1045 & ', lat_inc=', var_min
1046 ELSE
1047 WRITE(msgBuf,'(3X,A,F10.5,A,I6,A,2F8.5)')
1048 & 'lat0=', var_lat0, ', nlat=', var_nlat,
1049 & ', inc(min,max)=', var_min, var_max
1050 ENDIF
1051 ELSE
1052 IF ( var_min.EQ.var_max ) THEN
1053 WRITE(msgBuf,'(3X,A,1PE10.3,A,I6,A,1PE10.3)')
1054 & 'lat0=', var_lat0, ', nlat=', var_nlat,
1055 & ', lat_inc=', var_min
1056 ELSE
1057 WRITE(msgBuf,'(3X,A,1PE10.3,A,I6,A,1P2E10.3)')
1058 & 'lat0=', var_lat0, ', nlat=', var_nlat,
1059 & ', inc(min,max)=', var_min, var_max
1060 ENDIF
1061 ENDIF
1062 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
1063 & SQUEEZE_RIGHT , myThid )
1064 ENDIF
1065
1066 RETURN
1067 END
1068 #endif /* USE_EXF_INTERPOLATION */

  ViewVC Help
Powered by ViewVC 1.1.22