/[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.1.4.7 by dimitri, Wed Feb 12 07:55:53 2003 UTC revision 1.4.2.1 by cheisey, Fri Dec 27 15:09:45 2002 UTC
# Line 34  c     changed: Virginie Thierry, vthierr Line 34  c     changed: Virginie Thierry, vthierr
34  c              - added new obcs parameters (for each boundaries)  c              - added new obcs parameters (for each boundaries)
35  c     included runoff D. Stammer, Nov. 25, 2001  c     included runoff D. Stammer, Nov. 25, 2001
36  c     included pressure forcing. heimbach@mit.edu 05-Nov-2002  c     included pressure forcing. heimbach@mit.edu 05-Nov-2002
 c     mods for pkg/seaice: menemenlis@jpl.nasa.gov 20-Dec-2002  
37  c  c
38    c     added "repeatPeriod" for cycling of forcing datasets 19-Dec-2002
39  c     ==================================================================  c     ==================================================================
40  c     SUBROUTINE exf_readparms  c     SUBROUTINE exf_readparms
41  c     ==================================================================  c     ==================================================================
# Line 68  c     == end of interface == Line 68  c     == end of interface ==
68    
69  c     Surface flux data.  c     Surface flux data.
70        namelist /exf_nml/        namelist /exf_nml/
71         &    repeatPeriod,
72       &    hfluxstartdate1,    hfluxstartdate2,   hfluxperiod,       &    hfluxstartdate1,    hfluxstartdate2,   hfluxperiod,
73       &    atempstartdate1,    atempstartdate2,   atempperiod,       &    atempstartdate1,    atempstartdate2,   atempperiod,
74       &      aqhstartdate1,      aqhstartdate2,     aqhperiod,       &      aqhstartdate1,      aqhstartdate2,     aqhperiod,
75       &    sfluxstartdate1,    sfluxstartdate2,   sfluxperiod,       &    sfluxstartdate1,    sfluxstartdate2,   sfluxperiod,
      &     evapstartdate1,     evapstartdate2,    evapperiod,  
76       &   precipstartdate1,   precipstartdate2,  precipperiod,       &   precipstartdate1,   precipstartdate2,  precipperiod,
77       &   runoffstartdate1,   runoffstartdate2,  runoffperiod,       &   runoffstartdate1,   runoffstartdate2,  runoffperiod,
78       &  ustressstartdate1,  ustressstartdate2, ustressperiod,       &  ustressstartdate1,  ustressstartdate2, ustressperiod,
# Line 81  c     Surface flux data. Line 81  c     Surface flux data.
81       &    vwindstartdate1,    vwindstartdate2,   vwindperiod,       &    vwindstartdate1,    vwindstartdate2,   vwindperiod,
82       &   swfluxstartdate1,   swfluxstartdate2,  swfluxperiod,       &   swfluxstartdate1,   swfluxstartdate2,  swfluxperiod,
83       &   lwfluxstartdate1,   lwfluxstartdate2,  lwfluxperiod,       &   lwfluxstartdate1,   lwfluxstartdate2,  lwfluxperiod,
      &   swdownstartdate1,   swdownstartdate2,  swdownperiod,  
      &   lwdownstartdate1,   lwdownstartdate2,  lwdownperiod,  
84       &    obcsNstartdate1,    obcsNstartdate2,   obcsNperiod,       &    obcsNstartdate1,    obcsNstartdate2,   obcsNperiod,
85       &    obcsSstartdate1,    obcsSstartdate2,   obcsSperiod,       &    obcsSstartdate1,    obcsSstartdate2,   obcsSperiod,
86       &    obcsEstartdate1,    obcsEstartdate2,   obcsEperiod,       &    obcsEstartdate1,    obcsEstartdate2,   obcsEperiod,
# Line 90  c     Surface flux data. Line 88  c     Surface flux data.
88       &apressurestartdate1,apressurestartdate2,apressureperiod,       &apressurestartdate1,apressurestartdate2,apressureperiod,
89       &          hfluxfile,          atempfile,       aqhfile,       &          hfluxfile,          atempfile,       aqhfile,
90       &          sfluxfile,         precipfile,    runofffile,       &          sfluxfile,         precipfile,    runofffile,
91       &        ustressfile,        vstressfile,      evapfile,       &        ustressfile,        vstressfile,
92       &          uwindfile,          vwindfile,       &          uwindfile,          vwindfile,
93       &         swfluxfile,         lwfluxfile, apressurefile,       &         swfluxfile,         lwfluxfile, apressurefile,
      &         swdownfile,         lwdownfile,  
94       &          exf_iprec,         exf_yftype,       &          exf_iprec,         exf_yftype,
95       &     exf_inscal_hfl,     exf_inscal_ust, exf_inscal_vst,       &           scal_hfl,           scal_ust,       scal_vst,
96       &     exf_inscal_swf,     exf_inscal_sst, exf_inscal_sss,       &           scal_swf,           scal_sst,       scal_sss,
97       &     exf_inscal_sfl,  exf_inscal_runoff,exf_inscal_apressure,       &     scal_apressure,           scal_prc,       scal_sfl,
98       &    exf_outscal_hfl,    exf_outscal_ust,exf_outscal_vst,       &    windspeedstartdate1,    windspeedstartdate2,  
99       &    exf_outscal_swf,    exf_outscal_sst,exf_outscal_sss,       &    windspeedperiod, windspeedfile
      &    exf_outscal_sfl,  exf_outscal_apressure,  
      &     EXFwindOnBgrid  
   
100        _BEGIN_MASTER(mythid)        _BEGIN_MASTER(mythid)
101    
102  c     Set default values.  c     Set default values.
# Line 124  c     Calendar data. Line 118  c     Calendar data.
118        sfluxstartdate2    = 0        sfluxstartdate2    = 0
119        sfluxperiod        = 0.0 _d 0        sfluxperiod        = 0.0 _d 0
120    
       evapstartdate1   = 0  
       evapstartdate2   = 0  
       evapperiod       = 0.0 _d 0  
   
121        precipstartdate1   = 0        precipstartdate1   = 0
122        precipstartdate2   = 0        precipstartdate2   = 0
123        precipperiod       = 0.0 _d 0        precipperiod       = 0.0 _d 0
# Line 160  c     Calendar data. Line 150  c     Calendar data.
150        lwfluxstartdate2   = 0        lwfluxstartdate2   = 0
151        lwfluxperiod       = 0.0 _d 0        lwfluxperiod       = 0.0 _d 0
152    
       swdownstartdate1   = 0  
       swdownstartdate2   = 0  
       swdownperiod       = 0.0 _d 0  
   
       lwdownstartdate1   = 0  
       lwdownstartdate2   = 0  
       lwdownperiod       = 0.0 _d 0  
   
153        obcsNstartdate1    = 0        obcsNstartdate1    = 0
154        obcsNstartdate2    = 0        obcsNstartdate2    = 0
155        obcsNperiod        = 0.0 _d 0        obcsNperiod        = 0.0 _d 0
# Line 188  c     Calendar data. Line 170  c     Calendar data.
170        apressurestartdate2    = 0        apressurestartdate2    = 0
171        apressureperiod        = 0.0 _d 0        apressureperiod        = 0.0 _d 0
172    
173          windspeedstartdate1    = 0
174          windspeedstartdate2    = 0
175          windspeedperiod        = 0.0 _d 0
176    
177    
178          repeatPeriod           = 0.0 _d 0
179    
180    
181  c     Data files.  c     Data files.
182        hfluxfile          = ' '        hfluxfile          = ' '
183        atempfile          = ' '        atempfile          = ' '
184        aqhfile            = ' '        aqhfile            = ' '
       evapfile           = ' '  
185        precipfile         = ' '        precipfile         = ' '
186        sfluxfile          = ' '        sfluxfile          = ' '
187        runofffile         = ' '        runofffile         = ' '
# Line 202  c     Data files. Line 191  c     Data files.
191        vwindfile          = ' '        vwindfile          = ' '
192        swfluxfile         = ' '        swfluxfile         = ' '
193        lwfluxfile         = ' '        lwfluxfile         = ' '
       swdownfile         = ' '  
       lwdownfile         = ' '  
194        apressurefile      = ' '        apressurefile      = ' '
195          windspeedfile      = ' '
196    
197  c     Initialise the date arrays.  c     Initialise the date arrays.
198        do i = 1,4        do i = 1,4
199           hfluxstartdate(i)    = 0           hfluxstartdate(i)    = 0
200           atempstartdate(i)    = 0           atempstartdate(i)    = 0
201           aqhstartdate(i)      = 0           aqhstartdate(i)      = 0
          evapstartdate(i)     = 0  
202           precipstartdate(i)   = 0           precipstartdate(i)   = 0
203           sfluxstartdate(i)    = 0           sfluxstartdate(i)    = 0
204           runoffstartdate(i)   = 0           runoffstartdate(i)   = 0
# Line 221  c     Initialise the date arrays. Line 208  c     Initialise the date arrays.
208           vwindstartdate(i)    = 0           vwindstartdate(i)    = 0
209           swfluxstartdate(i)   = 0           swfluxstartdate(i)   = 0
210           lwfluxstartdate(i)   = 0           lwfluxstartdate(i)   = 0
          swdownstartdate(i)   = 0  
          lwdownstartdate(i)   = 0  
211           obcsNstartdate(i)    = 0           obcsNstartdate(i)    = 0
212           obcsSstartdate(i)    = 0           obcsSstartdate(i)    = 0
213           obcsEstartdate(i)    = 0           obcsEstartdate(i)    = 0
214           obcsWstartdate(i)    = 0           obcsWstartdate(i)    = 0
215           apressurestartdate(i)= 0           apressurestartdate(i)= 0
216             windspeedstartdate(i)= 0
217        enddo        enddo
218    
219  c     Initialise file type and field precision  c     Initialise file type and field precision
220        exf_iprec       = 32        exf_iprec       = 32
221        exf_yftype      = 'RL'        exf_yftype      = 'RL'
222    
223  c     Input scaling factors.  c     scaling between exf units and MITgcm units
224        exf_inscal_hfl       =  1. _d 0        scal_hfl       =  1. _d 0
225        exf_inscal_ust       =  1. _d 0        scal_ust       =  1. _d 0
226        exf_inscal_vst       =  1. _d 0        scal_vst       =  1. _d 0
227        exf_inscal_swf       =  1. _d 0        scal_swf       =  1. _d 0
228        exf_inscal_sst       =  1. _d 0        scal_sst       =  1. _d 0
229        exf_inscal_sss       =  1. _d 0        scal_sss       =  1. _d 0
230        exf_inscal_apressure =  1. _d 0        scal_apressure =  1. _d 0
231        exf_inscal_sfl       =  1. _d 0  #if (defined (ALLOW_BULKFORMULAE) && defined (ALLOW_ATM_TEMP))
232  cds   convert runoff from m/yr to m/s and change sign.        scal_prc       =  1. _d 0
233        exf_inscal_runoff    = -1.0/(86400.*365.0)  #else
234          scal_sfl       =  1. _d 0    
235  c     Output scaling factors.  #endif
       exf_outscal_hfl      =  1. _d 0  
       exf_outscal_ust      =  1. _d 0  
       exf_outscal_vst      =  1. _d 0  
       exf_outscal_swf      =  1. _d 0  
       exf_outscal_sst      =  1. _d 0  
       exf_outscal_sss      =  1. _d 0  
       exf_outscal_apressure=  1. _d 0  
       exf_outscal_sfl      =  1. _d 0  
 c  
       EXFwindOnBgrid = .FALSE.  
236    
237  c     Check for the availability of the right calendar version.  c     Check for the availability of the right calendar version.
238        if ( calendarversion .ne. usescalendarversion ) then        if ( calendarversion .ne. usescalendarversion ) then
# Line 292  c     check for consistency Line 268  c     check for consistency
268           stop 'stop in exf_readparms: value of exf_yftype not allowed'           stop 'stop in exf_readparms: value of exf_yftype not allowed'
269        end if        end if
270    
271  #ifdef ALLOW_ATM_WIND  #ifdef ALLOW_RUNOFF
272        call cal_FullDate(    uwindstartdate1,    uwindstartdate2,        call cal_FullDate(  runoffstartdate1,  runoffstartdate2,
273       &                      uwindstartdate ,             mythid )       &                    runoffstartdate,            mythid )
       call cal_FullDate(    vwindstartdate1,    vwindstartdate2,  
      &                      vwindstartdate ,             mythid )  
 #else  
       call cal_FullDate(  ustressstartdate1,  ustressstartdate2,  
      &                    ustressstartdate ,             mythid )  
       call cal_FullDate(  vstressstartdate1,  vstressstartdate2,  
      &                    vstressstartdate ,             mythid )  
274  #endif  #endif
275    
276    #ifdef ALLOW_BULKFORMULAE
277    
278  #ifdef ALLOW_ATM_TEMP  #ifdef ALLOW_ATM_TEMP
279        call cal_FullDate(    atempstartdate1,    atempstartdate2,        call cal_FullDate(   atempstartdate1,   atempstartdate2,
280       &                      atempstartdate ,             mythid )       &                     atempstartdate,            mythid )
281        call cal_FullDate(      aqhstartdate1,      aqhstartdate2,        call cal_FullDate(     aqhstartdate1,     aqhstartdate2,
282       &                        aqhstartdate ,             mythid )       &                       aqhstartdate,            mythid )
283        call cal_FullDate(   lwfluxstartdate1,   lwfluxstartdate2,        call cal_FullDate(  swfluxstartdate1,  swfluxstartdate2,
284       &                     lwfluxstartdate ,             mythid )       &                    swfluxstartdate,            mythid )
285        call cal_FullDate(   precipstartdate1,   precipstartdate2,        call cal_FullDate(  lwfluxstartdate1,  lwfluxstartdate2,
286       &                     precipstartdate ,             mythid )       &                    lwfluxstartdate,            mythid )
287          call cal_FullDate(  precipstartdate1,  precipstartdate2,
288         &                    precipstartdate,            mythid )
289          call cal_FullDate(windspeedstartdate1, windspeedstartdate2,
290         &                     windspeedstartdate,            mythid )
291  #else  #else
292        call cal_FullDate(    hfluxstartdate1,    hfluxstartdate2,        call cal_FullDate(   hfluxstartdate1,   hfluxstartdate2,
293       &                      hfluxstartdate ,             mythid )       &                     hfluxstartdate,            mythid )
294        call cal_FullDate(    sfluxstartdate1,    sfluxstartdate2,        call cal_FullDate(   sfluxstartdate1,  sfluxstartdate2,
295       &                      sfluxstartdate ,             mythid )       &                     sfluxstartdate,           mythid )
296    #ifdef ALLOW_KPP
297          call cal_FullDate(  swfluxstartdate1,  swfluxstartdate2,
298         &                    swfluxstartdate,            mythid )
299  #endif  #endif
300    
 #if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING)  
       call cal_FullDate(   swfluxstartdate1,   swfluxstartdate2,  
      &                     swfluxstartdate ,             mythid )  
301  #endif  #endif
302    
303  #ifdef EXF_READ_EVAP  #ifdef ALLOW_ATM_WIND
304        call cal_FullDate(     evapstartdate1,     evapstartdate2,        call cal_FullDate(   uwindstartdate1,   uwindstartdate2,
305       &                       evapstartdate ,             mythid )       &                     uwindstartdate,            mythid )
306  #endif EXF_READ_EVAP        call cal_FullDate(   vwindstartdate1,   vwindstartdate2,
307         &                     vwindstartdate,            mythid )
308    #else
309          call cal_FullDate( ustressstartdate1, ustressstartdate2,
310         &                   ustressstartdate,            mythid )
311          call cal_FullDate( vstressstartdate1, vstressstartdate2,
312         &                   vstressstartdate,            mythid )
313    #endif
314    
315  #ifdef ALLOW_RUNOFF  #else
316        call cal_FullDate(   runoffstartdate1,   runoffstartdate2,        call cal_FullDate(   hfluxstartdate1,  hfluxstartdate2,
317       &                     runoffstartdate ,             mythid )       &                     hfluxstartdate,           mythid )
318          call cal_FullDate(   sfluxstartdate1,  sfluxstartdate2,
319         &                     sfluxstartdate,           mythid )
320          call cal_FullDate( ustressstartdate1, ustressstartdate2,
321         &                   ustressstartdate,            mythid )
322          call cal_FullDate( vstressstartdate1, vstressstartdate2,
323         &                   vstressstartdate,            mythid )
324    #ifdef ALLOW_KPP
325          call cal_FullDate(  swfluxstartdate1,  swfluxstartdate2,
326         &                    swfluxstartdate,            mythid )
327  #endif  #endif
328    
 #ifdef ALLOW_DOWNWARD_RADIATION  
       call cal_FullDate(   swdownstartdate1,   swdownstartdate2,  
      &                     swdownstartdate ,             mythid )  
       call cal_FullDate(   lwdownstartdate1,   lwdownstartdate2,  
      &                     lwdownstartdate ,             mythid )  
329  #endif  #endif
330    
331  #ifdef ALLOW_OBCS  #ifdef ALLOW_OBCS
332  #ifdef ALLOW_OBCS_NORTH  #ifdef ALLOW_OBCS_NORTH
333        call cal_FullDate(    obcsNstartdate1,    obcsNstartdate2,        call cal_FullDate(  obcsNstartdate1,  obcsNstartdate2,
334       &                      obcsNstartdate ,             mythid )       &                    obcsNstartdate,           mythid )
335  #endif  #endif
336  #ifdef ALLOW_OBCS_SOUTH  #ifdef ALLOW_OBCS_SOUTH
337        call cal_FullDate(    obcsSstartdate1,    obcsSstartdate2,        call cal_FullDate(  obcsSstartdate1,  obcsSstartdate2,
338       &                      obcsSstartdate ,             mythid )       &                    obcsSstartdate,           mythid )
339  #endif  #endif
340  #ifdef ALLOW_OBCS_EAST  #ifdef ALLOW_OBCS_EAST
341        call cal_FullDate(    obcsEstartdate1,    obcsEstartdate2,        call cal_FullDate(  obcsEstartdate1,  obcsEstartdate2,
342       &                      obcsEstartdate ,             mythid )       &                    obcsEstartdate,           mythid )
343  #endif  #endif
344  #ifdef ALLOW_OBCS_WEST  #ifdef ALLOW_OBCS_WEST
345        call cal_FullDate(    obcsWstartdate1,    obcsWstartdate2,        call cal_FullDate(  obcsWstartdate1,  obcsWstartdate2,
346       &                      obcsWstartdate ,             mythid )       &                    obcsWstartdate,           mythid )
347    #endif
348  #endif  #endif
 #endif /* ALLOW_OBCS */  
349    
350  #ifdef ATMOSPHERIC_LOADING  #ifdef ATMOSPHERIC_LOADING
351        call cal_FullDate(apressurestartdate1,apressurestartdate2,        call cal_FullDate(   apressurestartdate1, apressurestartdate2,
352       &                  apressurestartdate ,             mythid )       &                     apressurestartdate,          mythid )
353  #endif  #endif
354    
355        _END_MASTER( mythid )        _END_MASTER( mythid )
# Line 373  c     check for consistency Line 359  c     check for consistency
359  c--   Summarize the External forcing's setup.  c--   Summarize the External forcing's setup.
360        call exf_summary( mythid )        call exf_summary( mythid )
361    
362    
363  c--   set climatology parameters  c--   set climatology parameters
364        call exf_clim_readparms( mythid )        call exf_clim_readparms( mythid )
365    

Legend:
Removed from v.1.1.4.7  
changed lines
  Added in v.1.4.2.1

  ViewVC Help
Powered by ViewVC 1.1.22