C $Header: /u/gcmpack/MITgcm/pkg/exf/EXF_PARAM.h,v 1.44 2017/10/06 00:03:56 jmc Exp $
C $Name: $
C
C ==================================================================
C HEADER EXF_PARAM.h
C ==================================================================
C
C o Header file for the surface flux data. Used by the external
C forcing package.
C
C started: Christian Eckert eckert@mit.edu 30-Jun-1999
C
C changed: Christian Eckert eckert@mit.edu 14-Jan-2000
C - Restructured the original version in order to have a
C better interface to the MITgcmUV.
C
C Christian Eckert eckert@mit.edu 12-Feb-2000
C - Changed some variables names (package prefix: exf_)
C
C Patrick Heimbach, heimbach@mit.edu 04-May-2000
C - included exf_iprec to enable easy
C switch between 32bit/64 bit data format
C
C Patrick Heimbach, heimbach@mit.edu 01-May-2001
C - added obcs parameters
C
C mods for pkg/seaice: menemenlis@jpl.nasa.gov 20-Dec-2002
C
C ==================================================================
C HEADER EXF_PARAM.h
C ==================================================================
C Repeat period for forcing fields (s)
C For example, for yearly repeat period: repeatPeriod=31556925.
C Note: this option is not yet coded for sub-daily
C forcing and for leap years but this limitation can be
C circumvented by using a 4-year (1461-day) repeatPeriod
_RL repeatPeriod
C useExfCheckRange :: check range of input/output field values
C useExfYearlyFields :: when set, automatically add extension
C _YEAR to input file names; the yearly files need
C to contain all the records that pertain to
C a particular year, including day 1, hour zero
C twoDigitYear :: when set, use 2-digit year extension YR
C instead of _YEAR for useExfYearlyFields
C useOBCSYearlyFields :: when reading Open-Boundary values, assume yearly
C climatology (def=false)
C readStressOnAgrid :: read wind-streess located on model-grid, A-grid position
C rotateStressOnAgrid :: rotate from zonal/meridional components to U/V components
C readStressOnCgrid :: read wind-streess located on model-grid, C-grid position
C stressIsOnCgrid :: ustress & vstress are positioned on Arakawa C-grid
C useStabilityFct_overIce :: over sea-ice, compute turbulent transfert
C coeff. function of stability (like over
C open ocean) rather than using fixed Coeff.
C useAtmWind :: use wind vector (uwind/vwind) to compute
C the wind stress (ustress/vstress)
C useRelativeWind :: Subtract U/VVEL or U/VICE from U/VWIND before
C computing U/VSTRESS
C noNegativeEvap :: prevent negative evap (= sea-surface condensation)
C useExfZenAlbedo :: ocean albedo (direct part) may vary
C with zenith angle (see select_ZenAlbedo)
C select_ZenAlbedo :: switch to different methods to compute albedo (direct part)
C :: 0 just use exf_albedo
C :: 1 use daily mean albedo from exf_zenithangle_table.F
C :: 2 use daily mean albedo computed as in pkg/aim_v23
C :: 3 use daily variable albedo
C useExfZenIncoming :: compute incoming solar radiation along with zenith angle
C exf_debugLev :: select message printing to STDOUT (e.g., when read rec)
C exf_monFreq :: Monitor Frequency (s) for EXF
LOGICAL useExfCheckRange
LOGICAL useExfYearlyFields, twoDigitYear
LOGICAL useOBCSYearlyFields
LOGICAL readStressOnAgrid
LOGICAL rotateStressOnAgrid
LOGICAL readStressOnCgrid
LOGICAL stressIsOnCgrid
LOGICAL useStabilityFct_overIce
LOGICAL useRelativeWind
LOGICAL noNegativeEvap
LOGICAL useAtmWind
LOGICAL useExfZenAlbedo
INTEGER select_ZenAlbedo
LOGICAL useExfZenIncoming
INTEGER exf_debugLev
_RL exf_monFreq
C Drag coefficient scaling factor
_RL exf_scal_BulkCdn
C Maximum absolute windstress, used to reset unreastically high
C data values
_RL windstressmax
C freezing temperature is the minimum temperature allowed, used
C to reset climatological temperatures fields where they have
C values below climtempfreeze
_RL climtempfreeze
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
C Description of contents of surface boundary condition files
C Note: fieldperiod=0 means input file is one time-constant field
C fieldperiod=-12 means input file contains 12 monthly means
C- for each field:
C {fld}file :: file-name for this field
C {fld}startdate1 :: field starting date (YYYYMMDD)
C {fld}startdate1 :: field starting date (YYYYMMDD)
C {fld}startdate2 :: field starting date (HHMMSS)
C {fld}StartTime :: corresponding starting time (in sec) for this field
C {fld}period :: time period (in sec) between 2 reccords
C {fld}RepCycle :: time duration of a repeating cycle
C {fld}const :: uniform default field value
INTEGER hfluxstartdate1
INTEGER hfluxstartdate2
_RL hfluxStartTime
_RL hfluxperiod
_RL hfluxRepCycle
_RL hfluxconst
_RL hflux_exfremo_intercept
_RL hflux_exfremo_slope
character*1 hfluxmask
INTEGER atempstartdate1
INTEGER atempstartdate2
_RL atempStartTime
_RL atempperiod
_RL atempRepCycle
_RL atempconst
_RL atemp_exfremo_intercept
_RL atemp_exfremo_slope
character*1 atempmask
INTEGER aqhstartdate1
INTEGER aqhstartdate2
_RL aqhStartTime
_RL aqhperiod
_RL aqhRepCycle
_RL aqhconst
_RL aqh_exfremo_intercept
_RL aqh_exfremo_slope
character*1 aqhmask
INTEGER hs_startdate1
INTEGER hs_startdate2
_RL hs_StartTime
_RL hs_period
_RL hs_RepCycle
_RL hs_const
_RL hs_exfremo_intercept
_RL hs_exfremo_slope
character*1 hs_mask
INTEGER hl_startdate1
INTEGER hl_startdate2
_RL hl_StartTime
_RL hl_period
_RL hl_RepCycle
_RL hl_const
_RL hl_exfremo_intercept
_RL hl_exfremo_slope
character*1 hl_mask
INTEGER sfluxstartdate1
INTEGER sfluxstartdate2
_RL sfluxStartTime
_RL sfluxperiod
_RL sfluxRepCycle
_RL sfluxconst
_RL sflux_exfremo_intercept
_RL sflux_exfremo_slope
character*1 sfluxmask
INTEGER evapstartdate1
INTEGER evapstartdate2
_RL evapStartTime
_RL evapperiod
_RL evapRepCycle
_RL evapconst
_RL evap_exfremo_intercept
_RL evap_exfremo_slope
character*1 evapmask
INTEGER precipstartdate1
INTEGER precipstartdate2
_RL precipStartTime
_RL precipperiod
_RL precipRepCycle
_RL precipconst
_RL precip_exfremo_intercept
_RL precip_exfremo_slope
character*1 precipmask
INTEGER snowprecipstartdate1
INTEGER snowprecipstartdate2
_RL snowprecipStartTime
_RL snowprecipperiod
_RL snowprecipRepCycle
_RL snowprecipconst
_RL snowprecip_exfremo_intercept
_RL snowprecip_exfremo_slope
character*1 snowprecipmask
INTEGER runoffstartdate1
INTEGER runoffstartdate2
_RL runoffStartTime
_RL runoffperiod
_RL runoffRepCycle
_RL runoffconst
_RL runoff_exfremo_intercept
_RL runoff_exfremo_slope
character*1 runoffmask
_RL runoftempconst
_RL runoftemp_exfremo_intercept
_RL runoftemp_exfremo_slope
INTEGER saltflxstartdate1
INTEGER saltflxstartdate2
_RL saltflxStartTime
_RL saltflxperiod
_RL saltflxRepCycle
_RL saltflxconst
_RL saltflx_exfremo_intercept
_RL saltflx_exfremo_slope
character*1 saltflxmask
INTEGER ustressstartdate1
INTEGER ustressstartdate2
_RL ustressStartTime
_RL ustressperiod
_RL ustressRepCycle
_RL ustressconst
_RL ustress_exfremo_intercept
_RL ustress_exfremo_slope
character*1 ustressmask
INTEGER vstressstartdate1
INTEGER vstressstartdate2
_RL vstressStartTime
_RL vstressperiod
_RL vstressRepCycle
_RL vstressconst
_RL vstress_exfremo_intercept
_RL vstress_exfremo_slope
character*1 vstressmask
INTEGER uwindstartdate1
INTEGER uwindstartdate2
_RL uwindStartTime
_RL uwindperiod
_RL uwindRepCycle
_RL uwindconst
_RL uwind_exfremo_intercept
_RL uwind_exfremo_slope
character*1 uwindmask
INTEGER vwindstartdate1
INTEGER vwindstartdate2
_RL vwindStartTime
_RL vwindperiod
_RL vwindRepCycle
_RL vwindconst
_RL vwind_exfremo_intercept
_RL vwind_exfremo_slope
character*1 vwindmask
INTEGER wspeedstartdate1
INTEGER wspeedstartdate2
_RL wspeedStartTime
_RL wspeedperiod
_RL wspeedRepCycle
_RL wspeedconst
_RL wspeed_exfremo_intercept
_RL wspeed_exfremo_slope
character*1 wspeedmask
INTEGER swfluxstartdate1
INTEGER swfluxstartdate2
_RL swfluxStartTime
_RL swfluxperiod
_RL swfluxRepCycle
_RL swfluxconst
_RL swflux_exfremo_intercept
_RL swflux_exfremo_slope
character*1 swfluxmask
INTEGER lwfluxstartdate1
INTEGER lwfluxstartdate2
_RL lwfluxStartTime
_RL lwfluxperiod
_RL lwfluxRepCycle
_RL lwfluxconst
_RL lwflux_exfremo_intercept
_RL lwflux_exfremo_slope
character*1 lwfluxmask
INTEGER swdownstartdate1
INTEGER swdownstartdate2
_RL swdownStartTime
_RL swdownperiod
_RL swdownRepCycle
_RL swdownconst
_RL swdown_exfremo_intercept
_RL swdown_exfremo_slope
character*1 swdownmask
INTEGER lwdownstartdate1
INTEGER lwdownstartdate2
_RL lwdownStartTime
_RL lwdownperiod
_RL lwdownRepCycle
_RL lwdownconst
_RL lwdown_exfremo_intercept
_RL lwdown_exfremo_slope
character*1 lwdownmask
INTEGER apressurestartdate1
INTEGER apressurestartdate2
_RL apressureStartTime
_RL apressureperiod
_RL apressureRepCycle
_RL apressureconst
_RL apressure_exfremo_intercept
_RL apressure_exfremo_slope
character*1 apressuremask
INTEGER tidePotStartdate1
INTEGER tidePotStartdate2
_RL tidePotStartTime
_RL tidePotPeriod
_RL tidePotRepCycle
_RL tidePotConst
_RL tidePot_exfremo_intercept
_RL tidePot_exfremo_slope
CHARACTER*1 tidePotMask
INTEGER areamaskstartdate1
INTEGER areamaskstartdate2
_RL areamaskStartTime
_RL areamaskperiod
_RL areamaskRepCycle
_RL areamaskTauRelax
_RL areamaskconst
_RL areamask_exfremo_intercept
_RL areamask_exfremo_slope
character*1 areamaskmask
C Calendar data.
INTEGER climsststartdate1
INTEGER climsststartdate2
_RL climsstStartTime
_RL climsstperiod
_RL climsstRepCycle
_RL climsstTauRelax
_RL climsstconst
_RL climsst_exfremo_intercept
_RL climsst_exfremo_slope
character*1 climsstmask
INTEGER climsssstartdate1
INTEGER climsssstartdate2
_RL climsssStartTime
_RL climsssperiod
_RL climsssRepCycle
_RL climsssTauRelax
_RL climsssconst
_RL climsss_exfremo_intercept
_RL climsss_exfremo_slope
character*1 climsssmask
INTEGER climustrstartdate1
INTEGER climustrstartdate2
_RL climustrStartTime
_RL climustrperiod
_RL climustrRepCycle
_RL climustrTauRelax
_RL climustrconst
_RL climustr_exfremo_intercept
_RL climustr_exfremo_slope
character*1 climustrmask
INTEGER climvstrstartdate1
INTEGER climvstrstartdate2
_RL climvstrStartTime
_RL climvstrperiod
_RL climvstrRepCycle
_RL climvstrTauRelax
_RL climvstrconst
_RL climvstr_exfremo_intercept
_RL climvstr_exfremo_slope
character*1 climvstrmask
C- The following variables are used in conjunction with pkg/obcs
C to describe S/T/U/V open boundary condition files
INTEGER obcsNstartdate1
INTEGER obcsNstartdate2
INTEGER obcsSstartdate1
INTEGER obcsSstartdate2
INTEGER obcsEstartdate1
INTEGER obcsEstartdate2
INTEGER obcsWstartdate1
INTEGER obcsWstartdate2
_RL obcsNstartTime
_RL obcsNperiod
_RL obcsNrepCycle
_RL obcsSstartTime
_RL obcsSperiod
_RL obcsSrepCycle
_RL obcsEstartTime
_RL obcsEperiod
_RL obcsErepCycle
_RL obcsWstartTime
_RL obcsWperiod
_RL obcsWrepCycle
C- The following variables are used in conjunction with pkg/obcs
C and pkg/seaice to describe area, heff, hsnow, hsalt, uice,
C and vice open boundary condition files
INTEGER siobNstartdate1
INTEGER siobNstartdate2
INTEGER siobSstartdate1
INTEGER siobSstartdate2
INTEGER siobEstartdate1
INTEGER siobEstartdate2
INTEGER siobWstartdate1
INTEGER siobWstartdate2
_RL siobNstartTime
_RL siobNperiod
_RL siobNrepCycle
_RL siobSstartTime
_RL siobSperiod
_RL siobSrepCycle
_RL siobEstartTime
_RL siobEperiod
_RL siobErepCycle
_RL siobWstartTime
_RL siobWperiod
_RL siobWrepCycle
C- File names.
character*(128) hfluxfile
character*(128) atempfile
character*(128) aqhfile
character*(128) hs_file
character*(128) hl_file
character*(128) evapfile
character*(128) precipfile
character*(128) snowprecipfile
character*(128) sfluxfile
character*(128) runofffile
character*(128) runoftempfile
character*(128) saltflxfile
character*(128) ustressfile
character*(128) vstressfile
character*(128) uwindfile
character*(128) vwindfile
character*(128) wspeedfile
character*(128) swfluxfile
character*(128) lwfluxfile
character*(128) swdownfile
character*(128) lwdownfile
character*(128) apressurefile
character*(128) tidePotFile
character*(128) areamaskfile
character*(128) climsstfile
character*(128) climsssfile
character*(128) climustrfile
character*(128) climvstrfile
COMMON /EXF_PARAM_L/
& useExfCheckRange,
& useExfYearlyFields, twoDigitYear,
& useOBCSYearlyFields,
& useExfZenAlbedo, useExfZenIncoming,
& readStressOnAgrid, readStressOnCgrid,
& stressIsOnCgrid, useStabilityFct_overIce,
& useAtmWind, useRelativeWind, noNegativeEvap,
& rotateStressOnAgrid
COMMON /EXF_PARAM_I/
& select_ZenAlbedo, exf_debugLev,
& hfluxstartdate1, hfluxstartdate2,
& atempstartdate1, atempstartdate2,
& aqhstartdate1, aqhstartdate2,
& hs_startdate1, hs_startdate2,
& hl_startdate1, hl_startdate2,
& sfluxstartdate1, sfluxstartdate2,
& evapstartdate1, evapstartdate2,
& runoffstartdate1, runoffstartdate2,
& saltflxstartdate1, saltflxstartdate2,
& precipstartdate1, precipstartdate2,
& snowprecipstartdate1, snowprecipstartdate2,
& ustressstartdate1, ustressstartdate2,
& vstressstartdate1, vstressstartdate2,
& uwindstartdate1, uwindstartdate2,
& vwindstartdate1, vwindstartdate2,
& wspeedstartdate1, wspeedstartdate2,
& swfluxstartdate1, swfluxstartdate2,
& lwfluxstartdate1, lwfluxstartdate2,
& swdownstartdate1, swdownstartdate2,
& lwdownstartdate1, lwdownstartdate2,
& apressurestartdate1, apressurestartdate2,
& tidePotStartdate1, tidePotStartdate2,
& areamaskstartdate1, areamaskstartdate2,
& obcsNstartdate1, obcsNstartdate2,
& obcsSstartdate1, obcsSstartdate2,
& obcsEstartdate1, obcsEstartdate2,
& obcsWstartdate1, obcsWstartdate2,
& siobNstartdate1, siobNstartdate2,
& siobSstartdate1, siobSstartdate2,
& siobEstartdate1, siobEstartdate2,
& siobWstartdate1, siobWstartdate2
COMMON /EXF_PARAM_R/
& repeatPeriod, exf_monFreq,
& exf_scal_BulkCdn, windstressmax,
& hfluxconst, hfluxRepCycle,
& hfluxperiod, hfluxStartTime,
& atempconst, atempRepCycle,
& atempperiod, atempStartTime,
& aqhconst, aqhRepCycle,
& aqhperiod, aqhStartTime,
& hs_const, hs_RepCycle,
& hs_period, hs_StartTime,
& hl_const, hl_RepCycle,
& hl_period, hl_StartTime,
& sfluxconst, sfluxRepCycle,
& sfluxperiod, sfluxStartTime,
& evapconst, evapRepCycle,
& evapperiod, evapStartTime,
& precipconst, precipRepCycle,
& precipperiod, precipStartTime,
& snowprecipconst, snowprecipRepCycle,
& snowprecipperiod, snowprecipStartTime,
& runoffconst, runoffRepCycle,
& runoffperiod, runoffStartTime,
& runoftempconst,
& saltflxconst, saltflxRepCycle,
& saltflxperiod, saltflxStartTime,
& ustressconst, ustressRepCycle,
& ustressperiod, ustressStartTime,
& vstressconst, vstressRepCycle,
& vstressperiod, vstressStartTime,
& uwindconst, uwindRepCycle,
& uwindperiod, uwindStartTime,
& vwindconst, vwindRepCycle,
& vwindperiod, vwindStartTime,
& wspeedconst, wspeedRepCycle,
& wspeedperiod, wspeedStartTime,
& swfluxconst, swfluxRepCycle,
& swfluxperiod, swfluxStartTime,
& lwfluxconst, lwfluxRepCycle,
& lwfluxperiod, lwfluxStartTime,
& swdownconst, swdownRepCycle,
& swdownperiod, swdownStartTime,
& lwdownconst, lwdownRepCycle,
& lwdownperiod, lwdownStartTime,
& apressureconst, apressureRepCycle,
& apressureperiod, apressureStartTime,
& tidePotConst, tidePotRepCycle,
& tidePotPeriod, tidePotStartTime,
& areamaskconst, areamaskRepCycle,
& areamaskperiod, areamaskStartTime,
& obcsNrepCycle, obcsNperiod, obcsNstartTime,
& obcsSrepCycle, obcsSperiod, obcsSstartTime,
& obcsErepCycle, obcsEperiod, obcsEstartTime,
& obcsWrepCycle, obcsWperiod, obcsWstartTime,
& siobNrepCycle, siobNperiod, siobNstartTime,
& siobSrepCycle, siobSperiod, siobSstartTime,
& siobErepCycle, siobEperiod, siobEstartTime,
& siobWrepCycle, siobWperiod, siobWstartTime
COMMON /EXF_PARAM_TREND_REMOVAL/
& hflux_exfremo_intercept,
& atemp_exfremo_intercept,
& aqh_exfremo_intercept,
& hs_exfremo_intercept,
& hl_exfremo_intercept,
& sflux_exfremo_intercept,
& evap_exfremo_intercept,
& precip_exfremo_intercept,
& snowprecip_exfremo_intercept,
& runoff_exfremo_intercept,
& runoftemp_exfremo_intercept,
& saltflx_exfremo_intercept,
& ustress_exfremo_intercept,
& vstress_exfremo_intercept,
& uwind_exfremo_intercept,
& vwind_exfremo_intercept,
& wspeed_exfremo_intercept,
& swflux_exfremo_intercept,
& lwflux_exfremo_intercept,
& swdown_exfremo_intercept,
& lwdown_exfremo_intercept,
& apressure_exfremo_intercept,
& tidePot_exfremo_intercept,
& areamask_exfremo_intercept,
& hflux_exfremo_slope,
& atemp_exfremo_slope,
& aqh_exfremo_slope,
& hs_exfremo_slope,
& hl_exfremo_slope,
& sflux_exfremo_slope,
& evap_exfremo_slope,
& precip_exfremo_slope,
& snowprecip_exfremo_slope,
& runoff_exfremo_slope,
& runoftemp_exfremo_slope,
& saltflx_exfremo_slope,
& ustress_exfremo_slope,
& vstress_exfremo_slope,
& uwind_exfremo_slope,
& vwind_exfremo_slope,
& wspeed_exfremo_slope,
& swflux_exfremo_slope,
& lwflux_exfremo_slope,
& swdown_exfremo_slope,
& lwdown_exfremo_slope,
& apressure_exfremo_slope,
& tidePot_exfremo_slope,
& areamask_exfremo_slope
COMMON /EXF_PARAM_C/
& hfluxfile, hfluxmask,
& atempfile, atempmask,
& aqhfile, aqhmask,
& hs_file, hs_mask,
& hl_file, hl_mask,
& sfluxfile, sfluxmask,
& evapfile, evapmask,
& precipfile, precipmask,
& snowprecipfile,snowprecipmask,
& runofffile, runoffmask,
& runoftempfile,
& saltflxfile, saltflxmask,
& ustressfile, ustressmask,
& vstressfile, vstressmask,
& uwindfile, uwindmask,
& vwindfile, vwindmask,
& wspeedfile, wspeedmask,
& swfluxfile, swfluxmask,
& lwfluxfile, lwfluxmask,
& swdownfile, swdownmask,
& lwdownfile, lwdownmask,
& apressurefile, apressuremask,
& tidePotFile, tidePotMask,
& areamaskfile, areamaskmask
COMMON /EXF_CLIM_I/
& climsststartdate1, climsststartdate2,
& climsssstartdate1, climsssstartdate2,
& climustrstartdate1, climustrstartdate2,
& climvstrstartdate1, climvstrstartdate2
COMMON /EXF_CLIM_C/
& climsstfile, climsstmask,
& climsssfile, climsssmask,
& climustrfile, climustrmask,
& climvstrfile, climvstrmask
COMMON /EXF_CLIM_R/
& climtempfreeze,
& climsstconst, climsstRepCycle,
& climsstperiod, climsstStartTime,
& climsssconst, climsssRepCycle,
& climsssperiod, climsssStartTime,
& climustrconst, climustrRepCycle,
& climustrperiod, climustrStartTime,
& climvstrconst, climvstrRepCycle,
& climvstrperiod, climvstrStartTime,
& climsstTauRelax, climsssTauRelax,
& climustrTauRelax, climvstrTauRelax,
& areamaskTauRelax,
& climsst_exfremo_intercept, climsst_exfremo_slope,
& climsss_exfremo_intercept, climsss_exfremo_slope,
& climustr_exfremo_intercept, climustr_exfremo_slope,
& climvstr_exfremo_intercept, climvstr_exfremo_slope,
& exf_inscal_climsst, exf_inscal_climsss,
& exf_inscal_climustr, exf_inscal_climvstr
C file precision and field type
COMMON /EXF_PARAM_TYPE/
& exf_iprec,
& exf_iprec_obcs
INTEGER exf_iprec
INTEGER exf_iprec_obcs
C- Scaling factors:
C exf_inscal_{fld} :: input scaling factors
C exf_offset_atemp :: input air temperature offset
C :: (for conversion from C to K, if needed)
C exf_outscale_{fld} :: output scaling factors
_RL exf_inscal_hflux
_RL exf_inscal_sflux
_RL exf_inscal_ustress
_RL exf_inscal_vstress
_RL exf_inscal_uwind
_RL exf_inscal_vwind
_RL exf_inscal_wspeed
_RL exf_inscal_swflux
_RL exf_inscal_lwflux
_RL exf_inscal_precip
_RL exf_inscal_snowprecip
c _RL exf_inscal_sst
c _RL exf_inscal_sss
_RL exf_inscal_atemp, exf_offset_atemp
_RL exf_inscal_aqh
_RL exf_inscal_hs
_RL exf_inscal_hl
_RL exf_inscal_evap
_RL exf_inscal_apressure
_RL exf_inscal_runoff
_RL exf_inscal_runoftemp
_RL exf_inscal_saltflx
_RL exf_inscal_swdown
_RL exf_inscal_lwdown
_RL exf_inscal_tidePot
_RL exf_inscal_areamask
_RL exf_inscal_climsst
_RL exf_inscal_climsss
_RL exf_inscal_climustr
_RL exf_inscal_climvstr
_RL exf_outscal_hflux
_RL exf_outscal_sflux
_RL exf_outscal_ustress
_RL exf_outscal_vstress
_RL exf_outscal_swflux
_RL exf_outscal_sst
_RL exf_outscal_sss
_RL exf_outscal_apressure
_RL exf_outscal_tidePot
_RL exf_outscal_areamask
COMMON /EXF_PARAM_SCAL/
& exf_inscal_hflux,
& exf_inscal_sflux,
& exf_inscal_ustress,
& exf_inscal_vstress,
& exf_inscal_uwind,
& exf_inscal_vwind,
& exf_inscal_wspeed,
& exf_inscal_swflux,
& exf_inscal_lwflux,
& exf_inscal_precip,
& exf_inscal_snowprecip,
c & exf_inscal_sst,
c & exf_inscal_sss,
& exf_inscal_atemp, exf_offset_atemp,
& exf_inscal_aqh,
& exf_inscal_hs,
& exf_inscal_hl,
& exf_inscal_evap,
& exf_inscal_apressure,
& exf_inscal_runoff,
& exf_inscal_runoftemp,
& exf_inscal_saltflx,
& exf_inscal_swdown,
& exf_inscal_lwdown,
& exf_inscal_tidePot,
& exf_inscal_areamask,
& exf_outscal_hflux,
& exf_outscal_sflux,
& exf_outscal_ustress,
& exf_outscal_vstress,
& exf_outscal_swflux,
& exf_outscal_sst,
& exf_outscal_sss,
& exf_outscal_apressure,
& exf_outscal_tidePot,
& exf_outscal_areamask
#ifndef USE_EXF_INTERPOLATION
C- Set dummy dimension to 1
INTEGER MAX_LAT_INC
PARAMETER(MAX_LAT_INC = 1)
#else /* USE_EXF_INTERPOLATION */
C- To read input data without dynamical allocation (INTERP_USE_DYNALLOC undef):
C Note: exf_interp_bufferSize has been moved to EXF_INTERP_SIZE.h
c INTEGER exf_interp_bufferSize
c PARAMETER( exf_interp_bufferSize = 140000 )
C-- For lat interpolation, arraysize currently set to 1279 max data values
C to accomodate ECMWF operational analysis
INTEGER MAX_LAT_INC
PARAMETER(MAX_LAT_INC = 1279)
C-- Interpolation parameters (for each input field):
C {inputField}_lon0 :: longitude of the 1rst point (South-East corner)
C {inputField}_lon_inc :: longitude increment (uniform)
C {inputField}_lat0 :: latitude of the 1rst point (South-East corner)
C {inputField}_lat_inc :: latitude increment (vector, fct of latitude only)
C {inputField}_nlon :: input filed 1rst dim, longitudinal direction
C {inputField}_nlat :: input filed 2nd dim, latitudinal direction
C {inputField}_interpMethod :: interpolation method: =0 : no interpolation ;
C :: =1,11,21 : bilinear ; =2,12,22 : bicubic ;
C :: =1,2 for tracer ; =11,12 for U ; =21,22 for V.
C- Global parameters (for all fields):
C exf_output_interp :: output directly interpolation result (before
C rescaling, rotation or time-interp)
C- Internal parameters, for 2 components vector field:
C uvInterp_stress :: interpolate wind-stress u & v components together
C uvInterp_wind :: interpolate wind u & v components together
C uvInterp_climstr :: interpolate clim stress u & v components together
_RL ustress_lon0, ustress_lon_inc
_RL ustress_lat0, ustress_lat_inc(MAX_LAT_INC)
INTEGER ustress_nlon, ustress_nlat, ustress_interpMethod
_RL vstress_lon0, vstress_lon_inc
_RL vstress_lat0, vstress_lat_inc(MAX_LAT_INC)
INTEGER vstress_nlon, vstress_nlat, vstress_interpMethod
_RL hflux_lon0, hflux_lon_inc
_RL hflux_lat0, hflux_lat_inc(MAX_LAT_INC)
INTEGER hflux_nlon, hflux_nlat, hflux_interpMethod
_RL sflux_lon0, sflux_lon_inc
_RL sflux_lat0, sflux_lat_inc(MAX_LAT_INC)
INTEGER sflux_nlon, sflux_nlat, sflux_interpMethod
_RL swflux_lon0, swflux_lon_inc
_RL swflux_lat0, swflux_lat_inc(MAX_LAT_INC)
INTEGER swflux_nlon, swflux_nlat, swflux_interpMethod
_RL runoff_lon0, runoff_lon_inc
_RL runoff_lat0, runoff_lat_inc(MAX_LAT_INC)
INTEGER runoff_nlon, runoff_nlat, runoff_interpMethod
_RL saltflx_lon0, saltflx_lon_inc
_RL saltflx_lat0, saltflx_lat_inc(MAX_LAT_INC)
INTEGER saltflx_nlon, saltflx_nlat, saltflx_interpMethod
_RL atemp_lon0, atemp_lon_inc
_RL atemp_lat0, atemp_lat_inc(MAX_LAT_INC)
INTEGER atemp_nlon, atemp_nlat, atemp_interpMethod
_RL aqh_lon0, aqh_lon_inc
_RL aqh_lat0, aqh_lat_inc(MAX_LAT_INC)
INTEGER aqh_nlon, aqh_nlat, aqh_interpMethod
_RL hs_lon0, hs_lon_inc
_RL hs_lat0, hs_lat_inc(MAX_LAT_INC)
INTEGER hs_nlon, hs_nlat, hs_interpMethod
_RL hl_lon0, hl_lon_inc
_RL hl_lat0, hl_lat_inc(MAX_LAT_INC)
INTEGER hl_nlon, hl_nlat, hl_interpMethod
_RL evap_lon0, evap_lon_inc
_RL evap_lat0, evap_lat_inc(MAX_LAT_INC)
INTEGER evap_nlon, evap_nlat, evap_interpMethod
_RL precip_lon0, precip_lon_inc
_RL precip_lat0, precip_lat_inc(MAX_LAT_INC)
INTEGER precip_nlon, precip_nlat, precip_interpMethod
_RL snowprecip_lon0, snowprecip_lon_inc
_RL snowprecip_lat0, snowprecip_lat_inc(MAX_LAT_INC)
INTEGER snowprecip_nlon, snowprecip_nlat, snowprecip_interpMethod
_RL uwind_lon0, uwind_lon_inc
_RL uwind_lat0, uwind_lat_inc(MAX_LAT_INC)
INTEGER uwind_nlon, uwind_nlat, uwind_interpMethod
_RL vwind_lon0, vwind_lon_inc
_RL vwind_lat0, vwind_lat_inc(MAX_LAT_INC)
INTEGER vwind_nlon, vwind_nlat, vwind_interpMethod
_RL wspeed_lon0, wspeed_lon_inc
_RL wspeed_lat0, wspeed_lat_inc(MAX_LAT_INC)
INTEGER wspeed_nlon, wspeed_nlat, wspeed_interpMethod
_RL lwflux_lon0, lwflux_lon_inc
_RL lwflux_lat0, lwflux_lat_inc(MAX_LAT_INC)
INTEGER lwflux_nlon, lwflux_nlat, lwflux_interpMethod
_RL swdown_lon0, swdown_lon_inc
_RL swdown_lat0, swdown_lat_inc(MAX_LAT_INC)
INTEGER swdown_nlon, swdown_nlat, swdown_interpMethod
_RL lwdown_lon0, lwdown_lon_inc
_RL lwdown_lat0, lwdown_lat_inc(MAX_LAT_INC)
INTEGER lwdown_nlon, lwdown_nlat, lwdown_interpMethod
_RL apressure_lon0,apressure_lon_inc
_RL apressure_lat0,apressure_lat_inc(MAX_LAT_INC)
INTEGER apressure_nlon,apressure_nlat,apressure_interpMethod
_RL tidePot_lon0,tidePot_lon_inc
_RL tidePot_lat0,tidePot_lat_inc(MAX_LAT_INC)
INTEGER tidePot_nlon,tidePot_nlat,tidePot_interpMethod
_RL areamask_lon0,areamask_lon_inc
_RL areamask_lat0,areamask_lat_inc(MAX_LAT_INC)
INTEGER areamask_nlon,areamask_nlat,areamask_interpMethod
LOGICAL exf_output_interp
LOGICAL uvInterp_stress
LOGICAL uvInterp_wind
LOGICAL uvInterp_climstr
COMMON /EXF_INTERPOLATION_L/
& exf_output_interp,
& uvInterp_stress, uvInterp_wind, uvInterp_climstr
COMMON /EXF_INTERPOLATION_RL/
& ustress_lon0, ustress_lon_inc,
& ustress_lat0, ustress_lat_inc,
& vstress_lon0, vstress_lon_inc,
& vstress_lat0, vstress_lat_inc,
& hflux_lon0, hflux_lon_inc,
& hflux_lat0, hflux_lat_inc,
& sflux_lon0, sflux_lon_inc,
& sflux_lat0, sflux_lat_inc,
& swflux_lon0, swflux_lon_inc,
& swflux_lat0, swflux_lat_inc,
& runoff_lon0, runoff_lon_inc,
& runoff_lat0, runoff_lat_inc,
& saltflx_lon0, saltflx_lon_inc,
& saltflx_lat0, saltflx_lat_inc,
& atemp_lon0, atemp_lon_inc,
& atemp_lat0, atemp_lat_inc,
& aqh_lon0, aqh_lon_inc,
& aqh_lat0, aqh_lat_inc,
& hs_lon0, hs_lon_inc,
& hs_lat0, hs_lat_inc,
& hl_lon0, hl_lon_inc,
& hl_lat0, hl_lat_inc,
& evap_lon0, evap_lon_inc,
& evap_lat0, evap_lat_inc,
& precip_lon0, precip_lon_inc,
& precip_lat0, precip_lat_inc,
& snowprecip_lon0, snowprecip_lon_inc,
& snowprecip_lat0, snowprecip_lat_inc,
& uwind_lon0, uwind_lon_inc,
& uwind_lat0, uwind_lat_inc,
& vwind_lon0, vwind_lon_inc,
& vwind_lat0, vwind_lat_inc,
& wspeed_lon0, wspeed_lon_inc,
& wspeed_lat0, wspeed_lat_inc,
& lwflux_lon0, lwflux_lon_inc,
& lwflux_lat0, lwflux_lat_inc,
& swdown_lon0, swdown_lon_inc,
& swdown_lat0, swdown_lat_inc,
& lwdown_lon0, lwdown_lon_inc,
& lwdown_lat0, lwdown_lat_inc,
& apressure_lon0, apressure_lon_inc,
& apressure_lat0, apressure_lat_inc,
& tidePot_lon0, tidePot_lon_inc,
& tidePot_lat0, tidePot_lat_inc,
& areamask_lon0, areamask_lon_inc,
& areamask_lat0, areamask_lat_inc
COMMON /EXF_INTERPOLATION_I/
& ustress_nlon, ustress_nlat, ustress_interpMethod,
& vstress_nlon, vstress_nlat, vstress_interpMethod,
& hflux_nlon, hflux_nlat, hflux_interpMethod,
& sflux_nlon, sflux_nlat, sflux_interpMethod,
& swflux_nlon, swflux_nlat, swflux_interpMethod,
& runoff_nlon, runoff_nlat, runoff_interpMethod,
& saltflx_nlon, saltflx_nlat, saltflx_interpMethod,
& atemp_nlon, atemp_nlat, atemp_interpMethod,
& aqh_nlon, aqh_nlat, aqh_interpMethod,
& hs_nlon, hs_nlat, hs_interpMethod,
& hl_nlon, hl_nlat, hl_interpMethod,
& evap_nlon, evap_nlat, evap_interpMethod,
& precip_nlon, precip_nlat, precip_interpMethod,
& snowprecip_nlon, snowprecip_nlat, snowprecip_interpMethod,
& uwind_nlon, uwind_nlat, uwind_interpMethod,
& vwind_nlon, vwind_nlat, vwind_interpMethod,
& wspeed_nlon, wspeed_nlat, wspeed_interpMethod,
& lwflux_nlon, lwflux_nlat, lwflux_interpMethod,
& swdown_nlon, swdown_nlat, swdown_interpMethod,
& lwdown_nlon, lwdown_nlat, lwdown_interpMethod,
& apressure_nlon, apressure_nlat, apressure_interpMethod,
& tidePot_nlon, tidePot_nlat, tidePot_interpMethod,
& areamask_nlon, areamask_nlat, areamask_interpMethod
_RL climsst_lon0, climsst_lon_inc
_RL climsst_lat0, climsst_lat_inc(MAX_LAT_INC)
INTEGER climsst_nlon, climsst_nlat, climsst_interpMethod
_RL climsss_lon0, climsss_lon_inc
_RL climsss_lat0, climsss_lat_inc(MAX_LAT_INC)
INTEGER climsss_nlon, climsss_nlat, climsss_interpMethod
_RL climustr_lon0, climustr_lon_inc
_RL climustr_lat0, climustr_lat_inc(MAX_LAT_INC)
INTEGER climustr_nlon, climustr_nlat, climustr_interpMethod
_RL climvstr_lon0, climvstr_lon_inc
_RL climvstr_lat0, climvstr_lat_inc(MAX_LAT_INC)
INTEGER climvstr_nlon, climvstr_nlat, climvstr_interpMethod
COMMON /EXF_CLIM_INTERPOLATION/
& climsst_lon0, climsst_lon_inc,
& climsst_lat0, climsst_lat_inc,
& climsss_lon0, climsss_lon_inc,
& climsss_lat0, climsss_lat_inc,
& climustr_lon0, climustr_lon_inc,
& climustr_lat0, climustr_lat_inc,
& climvstr_lon0, climvstr_lon_inc,
& climvstr_lat0, climvstr_lat_inc,
& climsst_nlon, climsst_nlat, climsst_interpMethod,
& climsss_nlon, climsss_nlat, climsss_interpMethod,
& climustr_nlon, climustr_nlat, climustr_interpMethod,
& climvstr_nlon, climvstr_nlat, climvstr_interpMethod
#endif /* USE_EXF_INTERPOLATION */