C $Header: /u/gcmpack/MITgcm/pkg/cheapaml/CHEAPAML.h,v 1.16 2017/10/13 17:45:58 jmc Exp $
C $Name:  $

c #ifdef ALLOW_CHEAPAML
C     !ROUTINE: CHEAPAML.h
C -------------------------------
C   CHEAPAML.h
C   Parameters for cheap atmos mixed layer model
C -------------------------------
C     Tr :: Relaxation temperature profile for lateral boundary region [^oC]
C     qr :: Relaxation specific humidity profile for lateral boundary region
C     Tair :: atmosphere boundary layer temperature [^oC]
C     gTairm :: atmosphere temperature tendency
C     qair :: atmosphere specific humidity  [-]
C     gqairm :: atmosphere moisture tendency
C     uWind :: zonal wind component at grid-cell Western  edge (uVel location)
C     vWind :: meridional wind comp at grid-cell Southern edge (vVel location)
C     solar :: short wave insolation (+=dw) [W/m2]
C     ustress :: zonal wind stress component at grid-cell center (A-grid) [N/m2]
C     vstress :: meridional wind stress comp at grid-cell center (A-grid) [N/m2]
C     Cheaptracer :: passive tracer
C     CheaptracerR :: Relaxation profile for passive tracer
C     gCheaptracerm :: passive tracer tendency
C     cheapPrecip   :: precipitation (+=dw) [kg/m2/s]

      COMMON /CHEAPAML_VARS/
     &       Tr, qr,
     &       Tair, gTairm,
     &       qair, gqairm,
     &       uWind, vWind, solar,
     &       wWind,
     &       ustress, vstress,
     &       wavesh, wavesp, xrelf, CheapHgrid,
     &       Cheapclouds, Cheapdlongwave,
     &       Cheaptracer, CheaptracerR, gCheaptracerm,
c    &       cheapPrGrid,
     &       cheapPrecip

      _RL    Tr     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    qr     (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    Tair   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    gTairm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    qair   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    gqairm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    uWind  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    vWind  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    wWind  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    Solar  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    ustress(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    vstress(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    wavesh (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    wavesp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    xrelf   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    cheapPrecip(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    CheapHgrid (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
c     _RL    cheapPrGrid(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    Cheapclouds(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    Cheapdlongwave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    Cheaptracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    CheaptracerR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
      _RL    gCheaptracerm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)

C     cheap_tauRelax    :: main relaxation time-scale (in sec) for atm T & Q
C                          used with cheapMask (if provided) or over land
C     cheap_tauRelaxOce :: relaxation time-scale (in sec) for atm T & Q,
C                          used over ocean if cheapMask is not provided
C     lath      :: latent heat (J/kg)
C     xkar      :: von Karman constant
C     gasR      :: gas constant
C     dsolms    :: Solar variation at Southern boundary
C     dsolmn    :: Solar variation at Northern boundary
C     xphaseinit :: user input initial phase of year relative to mid winter.
C                   e.g. xphaseinit = pi implies time zero is mid summer.
C     gamma_blk :: atmospheric adiabatic lapse rate
C     humid_fac :: humidity factor for computing virtual potential temperature
C     p0        :: surface pressure in mb
C     ssq[0:2]  :: coeff. used to compute saturation specific humidity
C     cheap_pr1 :: precipitation time constant
C     cheap_pr2 :: precipitation time constant
      COMMON /CHEAPAML_PARMS_R/
     &       cheapaml_h,
     &       cheapaml_kdiff,
     &       cheap_tauRelax, cheap_tauRelaxOce,
     &       rhoa, cpair, stefan,
     &       lath, xkar, gasR,
     &       dsolms, dsolmn,
     &       xphaseinit, gamma_blk, humid_fac, p0,
     &       ssq0, ssq1, ssq2,
     &       xef, hm,
     &       zu, zt, zq,
     &       cdrag_1, cdrag_2, cdrag_3,
     &       externForcingPeriod_cheap,
     &       externForcingCycle_cheap,
     &       cheap_pr1, cheap_pr2
      _RL    cheapaml_h
      _RL    cheapaml_kdiff
      _RL    cheap_tauRelax, cheap_tauRelaxOce
      _RL    rhoa, cpair, stefan
      _RL    lath, xkar, gasR
      _RL    dsolms, dsolmn
      _RL    xphaseinit, gamma_blk, humid_fac, p0
      _RL    ssq0, ssq1, ssq2
      _RL    xef, hm
      _RL    zu, zt, zq
      _RL    cdrag_1, cdrag_2, cdrag_3
      _RL    externForcingPeriod_cheap
      _RL    externForcingCycle_cheap
      _RL    cheap_pr1,cheap_pr2

C    cheap[]StartAB :: Adams-Bashforth restart status for prognostic variable []
      COMMON /CHEAPAML_PARMS_I/
     &       cheapaml_ntim,
     &       cheapaml_mask_width,
     &       cheapTairStartAB, cheapQairStartAB, cheapTracStartAB
      INTEGER cheapaml_ntim
      INTEGER cheapaml_mask_width
      INTEGER cheapTairStartAB, cheapQairStartAB, cheapTracStartAB

C--   COMMON /CHEAPAML_PARMS_L/
C     cheapamlXperiodic :: domain (including land) is periodic in X dir
C     cheapamlYperiodic :: domain (including land) is periodic in Y dir
C     useFreshWaterFlux :: option to include evap+precip  (on  by default)
C     useFluxLimit      :: use flux limiting advection    (off by default)
C     useStressOption   :: use stress option              (off by default)
C     useCheapTracer    :: use passive tracer option      (off by default)
C     useTimeVarBLH     :: use time varying BL height option (off by default)
C     useClouds         :: use clouds option              (off by default)
C     useDLongWave      :: use imported downward longwave  (off by default)
C     usePrecip         :: use imported precipitation (off by default)
C     useRelativeWind   :: use relative wind (off by default)
      COMMON /CHEAPAML_PARMS_L/
     &       cheapamlXperiodic,
     &       cheapamlYperiodic,
     &       useFreshWaterFlux,
     &       useFluxLimit,
     &       useStressOption,
     &       useRelativeHumidity,
     &       periodicExternalForcing_cheap,
     &       useCheapTracer,
     &       useTimeVarBLH,
     &       useClouds,
     &       useDLongWave,
     &       usePrecip,
     &       useRelativeWind
      LOGICAL cheapamlXperiodic
      LOGICAL cheapamlYperiodic
      LOGICAL useFreshWaterFlux
      LOGICAL useFluxLimit
      LOGICAL useStressOption
      LOGICAL useRelativeHumidity
      LOGICAL periodicExternalForcing_cheap
      LOGICAL useCheapTracer
      LOGICAL useTimeVarBLH
      LOGICAL useClouds
      LOGICAL useDLongWave
      LOGICAL usePrecip
      LOGICAL useRelativeWind

      COMMON /CHEAPAML_PARMS_C/
     &       AirTempFile, AirQFile, SolarFile,
     &       UWindFile, VWindFile, UStressFile, VStressFile,
     &       TrFile, QrFile,
     &       WaveHFile, WavePFile, FluxFormula, WaveModel,
     &       TracerFile, TracerRFile, cheapMaskFile, cheap_hFile,
     &       cheap_prFile, cheap_clFile, cheap_dlwFile

      CHARACTER*(MAX_LEN_FNAM) AirTempFile
      CHARACTER*(MAX_LEN_FNAM) AirQFile
      CHARACTER*(MAX_LEN_FNAM) SolarFile
      CHARACTER*(MAX_LEN_FNAM) UWindFile
      CHARACTER*(MAX_LEN_FNAM) VWindFile
      CHARACTER*(MAX_LEN_FNAM) UStressFile
      CHARACTER*(MAX_LEN_FNAM) VStressFile
      CHARACTER*(MAX_LEN_FNAM) TrFile
      CHARACTER*(MAX_LEN_FNAM) QrFile
      CHARACTER*(MAX_LEN_FNAM) WaveHFile
      CHARACTER*(MAX_LEN_FNAM) WavePFile
      CHARACTER*(MAX_LEN_FNAM) FluxFormula
      CHARACTER*(MAX_LEN_FNAM) WaveModel
      CHARACTER*(MAX_LEN_FNAM) TracerFile
      CHARACTER*(MAX_LEN_FNAM) TracerRFile
      CHARACTER*(MAX_LEN_FNAM) cheapMaskFile
      CHARACTER*(MAX_LEN_FNAM) cheap_hFile
      CHARACTER*(MAX_LEN_FNAM) cheap_prFile
      CHARACTER*(MAX_LEN_FNAM) cheap_clFile
      CHARACTER*(MAX_LEN_FNAM) cheap_dlwFile

c #endif /* ALLOW_CHEAPAML */