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

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

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

revision 1.3 by heimbach, Tue Nov 12 20:34:41 2002 UTC revision 1.13 by dimitri, Mon Oct 20 06:25:16 2003 UTC
# Line 1  Line 1 
1  c $Header$  C $Header$
2    C $Name$
3    
4  #include "EXF_CPPOPTIONS.h"  #include "EXF_OPTIONS.h"
5  #ifdef ALLOW_OBCS  #ifdef ALLOW_OBCS
6  # include "OBCS_OPTIONS.h"  # include "OBCS_OPTIONS.h"
7  #endif  #endif
# Line 14  c Line 15  c
15  c     o This routine initialises the package that calculates external  c     o This routine initialises the package that calculates external
16  c       forcing fields for a given timestep of the MITgcmUV. Parameters  c       forcing fields for a given timestep of the MITgcmUV. Parameters
17  c       for this package are set in "data.externalforcing". Some additional  c       for this package are set in "data.externalforcing". Some additional
18  c       precompiler switches have to be specified in "EXF_CPPOPTIONS.h".  c       precompiler switches have to be specified in "EXF_OPTIONS.h".
19  c  c
20  c     started: Christian Eckert eckert@mit.edu  30-Jun-1999  c     started: Christian Eckert eckert@mit.edu  30-Jun-1999
21  c  c
# Line 34  c     changed: Virginie Thierry, vthierr Line 35  c     changed: Virginie Thierry, vthierr
35  c              - added new obcs parameters (for each boundaries)  c              - added new obcs parameters (for each boundaries)
36  c     included runoff D. Stammer, Nov. 25, 2001  c     included runoff D. Stammer, Nov. 25, 2001
37  c     included pressure forcing. heimbach@mit.edu 05-Nov-2002  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  c
41  c     ==================================================================  c     ==================================================================
42  c     SUBROUTINE exf_readparms  c     SUBROUTINE exf_readparms
# Line 57  c     == routine arguments == Line 60  c     == routine arguments ==
60  c     == local variables ==  c     == local variables ==
61    
62        integer i        integer i
63          integer date_array(4), difftime(4)
64    
65  c     == external ==  c     == external ==
66    
# Line 67  c     == end of interface == Line 71  c     == end of interface ==
71    
72  c     Surface flux data.  c     Surface flux data.
73        namelist /exf_nml/        namelist /exf_nml/
74         &    repeatPeriod,
75       &    hfluxstartdate1,    hfluxstartdate2,   hfluxperiod,       &    hfluxstartdate1,    hfluxstartdate2,   hfluxperiod,
76       &    atempstartdate1,    atempstartdate2,   atempperiod,       &    atempstartdate1,    atempstartdate2,   atempperiod,
77       &      aqhstartdate1,      aqhstartdate2,     aqhperiod,       &      aqhstartdate1,      aqhstartdate2,     aqhperiod,
78       &    sfluxstartdate1,    sfluxstartdate2,   sfluxperiod,       &    sfluxstartdate1,    sfluxstartdate2,   sfluxperiod,
79         &     evapstartdate1,     evapstartdate2,    evapperiod,
80       &   precipstartdate1,   precipstartdate2,  precipperiod,       &   precipstartdate1,   precipstartdate2,  precipperiod,
81       &   runoffstartdate1,   runoffstartdate2,  runoffperiod,       &   runoffstartdate1,   runoffstartdate2,  runoffperiod,
82       &  ustressstartdate1,  ustressstartdate2, ustressperiod,       &  ustressstartdate1,  ustressstartdate2, ustressperiod,
# Line 79  c     Surface flux data. Line 85  c     Surface flux data.
85       &    vwindstartdate1,    vwindstartdate2,   vwindperiod,       &    vwindstartdate1,    vwindstartdate2,   vwindperiod,
86       &   swfluxstartdate1,   swfluxstartdate2,  swfluxperiod,       &   swfluxstartdate1,   swfluxstartdate2,  swfluxperiod,
87       &   lwfluxstartdate1,   lwfluxstartdate2,  lwfluxperiod,       &   lwfluxstartdate1,   lwfluxstartdate2,  lwfluxperiod,
88         &   swdownstartdate1,   swdownstartdate2,  swdownperiod,
89         &   lwdownstartdate1,   lwdownstartdate2,  lwdownperiod,
90       &    obcsNstartdate1,    obcsNstartdate2,   obcsNperiod,       &    obcsNstartdate1,    obcsNstartdate2,   obcsNperiod,
91       &    obcsSstartdate1,    obcsSstartdate2,   obcsSperiod,       &    obcsSstartdate1,    obcsSstartdate2,   obcsSperiod,
92       &    obcsEstartdate1,    obcsEstartdate2,   obcsEperiod,       &    obcsEstartdate1,    obcsEstartdate2,   obcsEperiod,
# Line 86  c     Surface flux data. Line 94  c     Surface flux data.
94       &apressurestartdate1,apressurestartdate2,apressureperiod,       &apressurestartdate1,apressurestartdate2,apressureperiod,
95       &          hfluxfile,          atempfile,       aqhfile,       &          hfluxfile,          atempfile,       aqhfile,
96       &          sfluxfile,         precipfile,    runofffile,       &          sfluxfile,         precipfile,    runofffile,
97       &        ustressfile,        vstressfile,       &        ustressfile,        vstressfile,      evapfile,
98       &          uwindfile,          vwindfile,       &          uwindfile,          vwindfile,
99       &         swfluxfile,         lwfluxfile, apressurefile,       &         swfluxfile,         lwfluxfile, apressurefile,
100         &         swdownfile,         lwdownfile,
101       &          exf_iprec,         exf_yftype,       &          exf_iprec,         exf_yftype,
102       &           scal_hfl,           scal_ust,       scal_vst,       &   exf_inscal_hflux,   exf_inscal_sflux,
103       &           scal_swf,           scal_sst,       scal_sss,       & exf_inscal_ustress, exf_inscal_vstress,
104       &     scal_apressure,           scal_prc,       scal_sfl       &   exf_inscal_uwind,   exf_inscal_vwind,
105         &    exf_inscal_evap,   exf_inscal_atemp, exf_inscal_aqh,
106         &     exf_inscal_sst,     exf_inscal_sss,
107         &  exf_inscal_swflux,  exf_inscal_lwflux, exf_inscal_precip,
108         &  exf_inscal_runoff,               exf_inscal_apressure,
109         &  exf_inscal_swdown,  exf_inscal_lwdown,
110         &  exf_outscal_hflux,  exf_outscal_ustress, exf_outscal_vstress,
111         & exf_outscal_swflux,    exf_outscal_sst,exf_outscal_sss,
112         &  exf_outscal_sflux,  exf_outscal_apressure,
113         &         hfluxconst,
114         &         atempconst,
115         &         aqhconst,
116         &         sfluxconst,
117         &         evapconst,
118         &         precipconst,
119         &         runoffconst,
120         &         ustressconst,
121         &         vstressconst,
122         &         uwindconst,
123         &         vwindconst,
124         &         swfluxconst,
125         &         lwfluxconst,
126         &         swdownconst,
127         &         lwdownconst,
128         &         apressureconst
129    #ifdef USE_EXF_INTERPOLATION
130         & ,ustress_lon0, ustress_lon_inc, ustress_lat0, ustress_lat_inc,
131         & ustress_nlon, ustress_nlat,
132         & vstress_lon0, vstress_lon_inc, vstress_lat0, vstress_lat_inc,
133         & vstress_nlon, vstress_nlat,
134         & hflux_lon0, hflux_lon_inc, hflux_lat0, hflux_lat_inc,
135         & hflux_nlon, hflux_nlat,
136         & sflux_lon0, sflux_lon_inc, sflux_lat0, sflux_lat_inc,
137         & sflux_nlon, sflux_nlat,
138         & swflux_lon0, swflux_lon_inc, swflux_lat0, swflux_lat_inc,
139         & swflux_nlon, swflux_nlat,
140         & runoff_lon0, runoff_lon_inc, runoff_lat0, runoff_lat_inc,
141         & runoff_nlon, runoff_nlat,
142         & atemp_lon0, atemp_lon_inc, atemp_lat0, atemp_lat_inc,
143         & atemp_nlon, atemp_nlat,
144         & aqh_lon0, aqh_lon_inc, aqh_lat0, aqh_lat_inc,
145         & aqh_nlon, aqh_nlat,
146         & evap_lon0, evap_lon_inc, evap_lat0, evap_lat_inc,
147         & evap_nlon, evap_nlat,
148         & precip_lon0, precip_lon_inc, precip_lat0, precip_lat_inc,
149         & precip_nlon, precip_nlat,
150         & uwind_lon0, uwind_lon_inc, uwind_lat0, uwind_lat_inc,
151         & uwind_nlon, uwind_nlat,
152         & vwind_lon0, vwind_lon_inc, vwind_lat0, vwind_lat_inc,
153         & vwind_nlon, vwind_nlat,
154         & lwflux_lon0, lwflux_lon_inc, lwflux_lat0, lwflux_lat_inc,
155         & lwflux_nlon, lwflux_nlat,
156         & swdown_lon0, swdown_lon_inc, swdown_lat0, swdown_lat_inc,
157         & swdown_nlon, swdown_nlat,
158         & lwdown_lon0, lwdown_lon_inc, lwdown_lat0, lwdown_lat_inc,
159         & lwdown_nlon, lwdown_nlat,
160         & apressure_lon0,apressure_lon_inc,
161         & apressure_lat0,apressure_lat_inc,
162         & apressure_nlon,apressure_nlat
163    #endif
164    
165        _BEGIN_MASTER(mythid)        _BEGIN_MASTER(mythid)
166    
# Line 102  c     Calendar data. Line 170  c     Calendar data.
170        hfluxstartdate1    = 0        hfluxstartdate1    = 0
171        hfluxstartdate2    = 0        hfluxstartdate2    = 0
172        hfluxperiod        = 0.0 _d 0        hfluxperiod        = 0.0 _d 0
173          hfluxconst         = 0.0 _d 0
174    
175        atempstartdate1    = 0        atempstartdate1    = 0
176        atempstartdate2    = 0        atempstartdate2    = 0
177        atempperiod        = 0.0 _d 0        atempperiod        = 0.0 _d 0
178          atempconst         = 0.0 _d 0
179    
180        aqhstartdate1      = 0        aqhstartdate1      = 0
181        aqhstartdate2      = 0        aqhstartdate2      = 0
182        aqhperiod          = 0.0 _d 0        aqhperiod          = 0.0 _d 0
183          aqhconst           = 0.0 _d 0
184    
185        sfluxstartdate1    = 0        sfluxstartdate1    = 0
186        sfluxstartdate2    = 0        sfluxstartdate2    = 0
187        sfluxperiod        = 0.0 _d 0        sfluxperiod        = 0.0 _d 0
188          sfluxconst         = 0.0 _d 0
189    
190          evapstartdate1   = 0
191          evapstartdate2   = 0
192          evapperiod       = 0.0 _d 0
193          evapconst        = 0.0 _d 0
194    
195        precipstartdate1   = 0        precipstartdate1   = 0
196        precipstartdate2   = 0        precipstartdate2   = 0
197        precipperiod       = 0.0 _d 0        precipperiod       = 0.0 _d 0
198          precipconst        = 0.0 _d 0
199    
200        runoffstartdate1   = 0        runoffstartdate1   = 0
201        runoffstartdate2   = 0        runoffstartdate2   = 0
202        runoffperiod       = 0.0 _d 0        runoffperiod       = 0.0 _d 0
203          runoffconst        = 0.0 _d 0
204    
205        ustressstartdate1  = 0        ustressstartdate1  = 0
206        ustressstartdate2  = 0        ustressstartdate2  = 0
207        ustressperiod      = 0.0 _d 0        ustressperiod      = 0.0 _d 0
208          ustressconst       = 0.0 _d 0
209    
210        vstressstartdate1  = 0        vstressstartdate1  = 0
211        vstressstartdate2  = 0        vstressstartdate2  = 0
212        vstressperiod      = 0.0 _d 0        vstressperiod      = 0.0 _d 0
213          vstressconst       = 0.0 _d 0
214    
215        uwindstartdate1    = 0        uwindstartdate1    = 0
216        uwindstartdate2    = 0        uwindstartdate2    = 0
217        uwindperiod        = 0.0 _d 0        uwindperiod        = 0.0 _d 0
218          uwindconst         = 0.0 _d 0
219    
220        vwindstartdate1    = 0        vwindstartdate1    = 0
221        vwindstartdate2    = 0        vwindstartdate2    = 0
222        vwindperiod        = 0.0 _d 0        vwindperiod        = 0.0 _d 0
223          vwindconst         = 0.0 _d 0
224    
225        swfluxstartdate1   = 0        swfluxstartdate1   = 0
226        swfluxstartdate2   = 0        swfluxstartdate2   = 0
227        swfluxperiod       = 0.0 _d 0        swfluxperiod       = 0.0 _d 0
228          swfluxconst        = 0.0 _d 0
229    
230        lwfluxstartdate1   = 0        lwfluxstartdate1   = 0
231        lwfluxstartdate2   = 0        lwfluxstartdate2   = 0
232        lwfluxperiod       = 0.0 _d 0        lwfluxperiod       = 0.0 _d 0
233          lwfluxconst        = 0.0 _d 0
234    
235          swdownstartdate1   = 0
236          swdownstartdate2   = 0
237          swdownperiod       = 0.0 _d 0
238          swdownconst        = 0.0 _d 0
239    
240          lwdownstartdate1   = 0
241          lwdownstartdate2   = 0
242          lwdownperiod       = 0.0 _d 0
243          lwdownconst        = 0.0 _d 0
244    
245        obcsNstartdate1    = 0        obcsNstartdate1    = 0
246        obcsNstartdate2    = 0        obcsNstartdate2    = 0
# Line 166  c     Calendar data. Line 261  c     Calendar data.
261        apressurestartdate1    = 0        apressurestartdate1    = 0
262        apressurestartdate2    = 0        apressurestartdate2    = 0
263        apressureperiod        = 0.0 _d 0        apressureperiod        = 0.0 _d 0
264          apressureconst         = 0.0 _d 0
265    
266          repeatPeriod           = 0.0 _d 0
267    
268  c     Data files.  c     Data files.
269        hfluxfile          = ' '        hfluxfile          = ' '
270        atempfile          = ' '        atempfile          = ' '
271        aqhfile            = ' '        aqhfile            = ' '
272          evapfile           = ' '
273        precipfile         = ' '        precipfile         = ' '
274        sfluxfile          = ' '        sfluxfile          = ' '
275        runofffile         = ' '        runofffile         = ' '
# Line 180  c     Data files. Line 279  c     Data files.
279        vwindfile          = ' '        vwindfile          = ' '
280        swfluxfile         = ' '        swfluxfile         = ' '
281        lwfluxfile         = ' '        lwfluxfile         = ' '
282          swdownfile         = ' '
283          lwdownfile         = ' '
284        apressurefile      = ' '        apressurefile      = ' '
285    
286  c     Initialise the date arrays.  c     Start dates.
287        do i = 1,4        hfluxstartdate     = 0
288           hfluxstartdate(i)    = 0        atempstartdate     = 0
289           atempstartdate(i)    = 0        aqhstartdate       = 0
290           aqhstartdate(i)      = 0        evapstartdate      = 0
291           precipstartdate(i)   = 0        precipstartdate    = 0
292           sfluxstartdate(i)    = 0        sfluxstartdate     = 0
293           runoffstartdate(i)   = 0        runoffstartdate    = 0
294           ustressstartdate(i)  = 0        ustressstartdate   = 0
295           vstressstartdate(i)  = 0        vstressstartdate   = 0
296           uwindstartdate(i)    = 0        uwindstartdate     = 0
297           vwindstartdate(i)    = 0        vwindstartdate     = 0
298           swfluxstartdate(i)   = 0        swfluxstartdate    = 0
299           lwfluxstartdate(i)   = 0        lwfluxstartdate    = 0
300           obcsNstartdate(i)    = 0        swdownstartdate    = 0
301           obcsSstartdate(i)    = 0        lwdownstartdate    = 0
302           obcsEstartdate(i)    = 0        obcsNstartdate     = 0
303           obcsWstartdate(i)    = 0        obcsSstartdate     = 0
304           apressurestartdate(i)= 0        obcsEstartdate     = 0
305        enddo        obcsWstartdate     = 0
306          apressurestartdate = 0
307    
308  c     Initialise file type and field precision  c     Initialise file type and field precision
309        exf_iprec       = 32        exf_iprec       = 32
310        exf_yftype      = 'RL'        exf_yftype      = 'RL'
311    
312  c     scaling between exf units and MITgcm units  c     Input scaling factors.
313        scal_hfl       =  1. _d 0        exf_inscal_hflux     =  1. _d 0
314        scal_ust       =  1. _d 0        exf_inscal_sflux     =  1. _d 0
315        scal_vst       =  1. _d 0        exf_inscal_ustress   =  1. _d 0
316        scal_swf       =  1. _d 0        exf_inscal_vstress   =  1. _d 0
317        scal_sst       =  1. _d 0        exf_inscal_uwind     =  1. _d 0
318        scal_sss       =  1. _d 0        exf_inscal_vwind     =  1. _d 0
319        scal_apressure =  1. _d 0        exf_inscal_swflux    =  1. _d 0
320  #if (defined (ALLOW_BULKFORMULAE) && defined (ALLOW_ATM_TEMP))        exf_inscal_lwflux    =  1. _d 0
321        scal_prc       =  1. _d 0        exf_inscal_precip    =  1. _d 0
322  #else        exf_inscal_sst       =  1. _d 0
323        scal_sfl       =  1. _d 0            exf_inscal_sss       =  1. _d 0
324  #endif        exf_inscal_atemp     =  1. _d 0
325          exf_inscal_aqh       =  1. _d 0
326          exf_inscal_evap      =  1. _d 0
327          exf_inscal_apressure =  1. _d 0
328    cds   convert runoff from m/yr to m/s and change sign.
329          exf_inscal_runoff    = -1.0/(86400.*365.0)
330          exf_inscal_swdown    =  1. _d 0
331          exf_inscal_lwdown    =  1. _d 0
332    
333    c     Output scaling factors.
334          exf_outscal_hflux    =  1. _d 0
335          exf_outscal_sflux    =  1. _d 0
336          exf_outscal_ustress  =  1. _d 0
337          exf_outscal_vstress  =  1. _d 0
338          exf_outscal_swflux   =  1. _d 0
339          exf_outscal_sst      =  1. _d 0
340          exf_outscal_sss      =  1. _d 0
341          exf_outscal_apressure=  1. _d 0
342    
343  c     Check for the availability of the right calendar version.  c     Check for the availability of the right calendar version.
344        if ( calendarversion .ne. usescalendarversion ) then        if ( calendarversion .ne. usescalendarversion ) then
# Line 255  c     check for consistency Line 374  c     check for consistency
374           stop 'stop in exf_readparms: value of exf_yftype not allowed'           stop 'stop in exf_readparms: value of exf_yftype not allowed'
375        end if        end if
376    
 #ifdef ALLOW_RUNOFF  
       call cal_FullDate(  runoffstartdate1,  runoffstartdate2,  
      &                    runoffstartdate,            mythid )  
 #endif  
   
 #ifdef ALLOW_BULKFORMULAE  
   
 #ifdef ALLOW_ATM_TEMP  
       call cal_FullDate(   atempstartdate1,   atempstartdate2,  
      &                     atempstartdate,            mythid )  
       call cal_FullDate(     aqhstartdate1,     aqhstartdate2,  
      &                       aqhstartdate,            mythid )  
       call cal_FullDate(  swfluxstartdate1,  swfluxstartdate2,  
      &                    swfluxstartdate,            mythid )  
       call cal_FullDate(  lwfluxstartdate1,  lwfluxstartdate2,  
      &                    lwfluxstartdate,            mythid )  
       call cal_FullDate(  precipstartdate1,  precipstartdate2,  
      &                    precipstartdate,            mythid )  
 #else  
       call cal_FullDate(   hfluxstartdate1,   hfluxstartdate2,  
      &                     hfluxstartdate,            mythid )  
       call cal_FullDate(   sfluxstartdate1,  sfluxstartdate2,  
      &                     sfluxstartdate,           mythid )  
 #ifdef ALLOW_KPP  
       call cal_FullDate(  swfluxstartdate1,  swfluxstartdate2,  
      &                    swfluxstartdate,            mythid )  
 #endif  
   
 #endif  
   
377  #ifdef ALLOW_ATM_WIND  #ifdef ALLOW_ATM_WIND
378        call cal_FullDate(   uwindstartdate1,   uwindstartdate2,        call cal_FullDate  ( uwindstartdate1    ,      uwindstartdate2,
379       &                     uwindstartdate,            mythid )       &                     date_array                        ,mythid )
380        call cal_FullDate(   vwindstartdate1,   vwindstartdate2,        call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
381       &                     vwindstartdate,            mythid )        call cal_ToSeconds ( difftime,      uwindstartdate     ,mythid )
382          uwindstartdate     = modelstart   + uwindstartdate
383          call cal_FullDate  ( vwindstartdate1    ,      vwindstartdate2,
384         &                     date_array                        ,mythid )
385          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
386          call cal_ToSeconds ( difftime,      vwindstartdate     ,mythid )
387          vwindstartdate     = modelstart   + vwindstartdate
388  #else  #else
389        call cal_FullDate( ustressstartdate1, ustressstartdate2,        call cal_FullDate  ( ustressstartdate1  ,    ustressstartdate2,
390       &                   ustressstartdate,            mythid )       &                     date_array                        ,mythid )
391        call cal_FullDate( vstressstartdate1, vstressstartdate2,        call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
392       &                   vstressstartdate,            mythid )        call cal_ToSeconds ( difftime,    ustressstartdate     ,mythid )
393          ustressstartdate   = modelstart + ustressstartdate
394          call cal_FullDate  ( vstressstartdate1  ,    vstressstartdate2,
395         &                     date_array                        ,mythid )
396          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
397          call cal_ToSeconds ( difftime,    vstressstartdate     ,mythid )
398          vstressstartdate   = modelstart + vstressstartdate
399  #endif  #endif
400    
401    #ifdef ALLOW_ATM_TEMP
402          call cal_FullDate  ( atempstartdate1    ,      atempstartdate2,
403         &                     date_array                        ,mythid )
404          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
405          call cal_ToSeconds ( difftime,      atempstartdate     ,mythid )
406          atempstartdate     = modelstart   + atempstartdate
407          call cal_FullDate  ( aqhstartdate1      ,        aqhstartdate2,
408         &                     date_array                        ,mythid )
409          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
410          call cal_ToSeconds ( difftime,        aqhstartdate     ,mythid )
411          aqhstartdate       = modelstart     + aqhstartdate
412          call cal_FullDate  ( lwfluxstartdate1   ,     lwfluxstartdate2,
413         &                     date_array                        ,mythid )
414          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
415          call cal_ToSeconds ( difftime,     lwfluxstartdate     ,mythid )
416          lwfluxstartdate    = modelstart  + lwfluxstartdate
417          call cal_FullDate  ( precipstartdate1   ,     precipstartdate2,
418         &                     date_array                        ,mythid )
419          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
420          call cal_ToSeconds ( difftime,     precipstartdate     ,mythid )
421          precipstartdate    = modelstart  + precipstartdate
422  #else  #else
423        call cal_FullDate(   hfluxstartdate1,  hfluxstartdate2,        call cal_FullDate  ( hfluxstartdate1    ,      hfluxstartdate2,
424       &                     hfluxstartdate,           mythid )       &                     date_array                        ,mythid )
425        call cal_FullDate(   sfluxstartdate1,  sfluxstartdate2,        call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
426       &                     sfluxstartdate,           mythid )        call cal_ToSeconds ( difftime,      hfluxstartdate     ,mythid )
427        call cal_FullDate( ustressstartdate1, ustressstartdate2,        hfluxstartdate     = modelstart   + hfluxstartdate
428       &                   ustressstartdate,            mythid )        call cal_FullDate  ( sfluxstartdate1    ,      sfluxstartdate2,
429        call cal_FullDate( vstressstartdate1, vstressstartdate2,       &                     date_array                        ,mythid )
430       &                   vstressstartdate,            mythid )        call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
431  #ifdef ALLOW_KPP        call cal_ToSeconds ( difftime,      sfluxstartdate     ,mythid )
432        call cal_FullDate(  swfluxstartdate1,  swfluxstartdate2,        sfluxstartdate     = modelstart   + sfluxstartdate
433       &                    swfluxstartdate,            mythid )  #endif
434    
435    #if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING)
436          call cal_FullDate  ( swfluxstartdate1   ,     swfluxstartdate2,
437         &                     date_array                        ,mythid )
438          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
439          call cal_ToSeconds ( difftime,     swfluxstartdate     ,mythid )
440          swfluxstartdate    = modelstart  + swfluxstartdate
441    #endif
442    
443    #ifdef EXF_READ_EVAP
444          call cal_FullDate  ( evapstartdate1     ,       evapstartdate2,
445         &                     date_array                        ,mythid )
446          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
447          call cal_ToSeconds ( difftime,       evapstartdate     ,mythid )
448          evapstartdate      = modelstart    + evapstartdate
449  #endif  #endif
450    
451    #ifdef ALLOW_RUNOFF
452          call cal_FullDate  ( runoffstartdate1   ,     runoffstartdate2,
453         &                     date_array                        ,mythid )
454          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
455          call cal_ToSeconds ( difftime,     runoffstartdate     ,mythid )
456          runoffstartdate    = modelstart  + runoffstartdate
457    #endif
458    
459    #ifdef ALLOW_DOWNWARD_RADIATION
460          call cal_FullDate  ( swdownstartdate1   ,     swdownstartdate2,
461         &                     date_array                        ,mythid )
462          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
463          call cal_ToSeconds ( difftime,     swdownstartdate     ,mythid )
464          swdownstartdate    = modelstart  + swdownstartdate
465          call cal_FullDate  ( lwdownstartdate1   ,     lwdownstartdate2,
466         &                     date_array                        ,mythid )
467          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
468          call cal_ToSeconds ( difftime,     lwdownstartdate     ,mythid )
469          lwdownstartdate    = modelstart  + lwdownstartdate
470  #endif  #endif
471    
472  #ifdef ALLOW_OBCS  #ifdef ALLOW_OBCS
473  #ifdef ALLOW_OBCS_NORTH  #ifdef ALLOW_OBCS_NORTH
474        call cal_FullDate(  obcsNstartdate1,  obcsNstartdate2,        call cal_FullDate  ( obcsNstartdate1    ,      obcsNstartdate2,
475       &                    obcsNstartdate,           mythid )       &                     date_array                        ,mythid )
476          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
477          call cal_ToSeconds ( difftime,     obcsNstartdate      ,mythid )
478          obcsNstartdate     = modelstart + obcsNstartdate
479  #endif  #endif
480  #ifdef ALLOW_OBCS_SOUTH  #ifdef ALLOW_OBCS_SOUTH
481        call cal_FullDate(  obcsSstartdate1,  obcsSstartdate2,        call cal_FullDate  ( obcsSstartdate1    ,      obcsSstartdate2,
482       &                    obcsSstartdate,           mythid )       &                     date_array                        ,mythid )
483          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
484          call cal_ToSeconds ( difftime,     obcsSstartdate      ,mythid )
485          obcsSstartdate     = modelstart + obcsSstartdate
486  #endif  #endif
487  #ifdef ALLOW_OBCS_EAST  #ifdef ALLOW_OBCS_EAST
488        call cal_FullDate(  obcsEstartdate1,  obcsEstartdate2,        call cal_FullDate  ( obcsEstartdate1    ,      obcsEstartdate2,
489       &                    obcsEstartdate,           mythid )       &                     date_array                        ,mythid )
490          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
491          call cal_ToSeconds ( difftime,     obcsEstartdate      ,mythid )
492          obcsEstartdate     = modelstart + obcsEstartdate
493  #endif  #endif
494  #ifdef ALLOW_OBCS_WEST  #ifdef ALLOW_OBCS_WEST
495        call cal_FullDate(  obcsWstartdate1,  obcsWstartdate2,        call cal_FullDate  ( obcsWstartdate1    ,      obcsWstartdate2,
496       &                    obcsWstartdate,           mythid )       &                     date_array                        ,mythid )
497  #endif        call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
498          call cal_ToSeconds ( difftime,    obcsWstartdate       ,mythid )
499          obcsWstartdate     = modelstart + obcsWstartdate
500  #endif  #endif
501    #endif /* ALLOW_OBCS */
502    
503  #ifdef ATMOSPHERIC_LOADING  #ifdef ATMOSPHERIC_LOADING
504        call cal_FullDate(   apressurestartdate1, apressurestartdate2,        call cal_FullDate  ( apressurestartdate1,  apressurestartdate2,
505       &                     apressurestartdate,          mythid )       &                     date_array                        ,mythid )
506          call cal_TimePassed( modelstartdate,date_array,difftime,mythid )
507          call cal_ToSeconds ( difftime,    apressurestartdate   ,mythid )
508          apressurestartdate = modelstart + apressurestartdate
509  #endif  #endif
510    
511        _END_MASTER( mythid )        _END_MASTER( mythid )
# Line 344  c     check for consistency Line 515  c     check for consistency
515  c--   Summarize the External forcing's setup.  c--   Summarize the External forcing's setup.
516        call exf_summary( mythid )        call exf_summary( mythid )
517    
   
518  c--   set climatology parameters  c--   set climatology parameters
519        call exf_clim_readparms( mythid )        call exf_clim_readparms( mythid )
520    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.22