SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/OFFLIN/ol_alloc_atm.F90
Go to the documentation of this file.
00001 !     #########
00002 SUBROUTINE OL_ALLOC_ATM(KNI,KBANDS,KSCAL)
00003 !     #################################################################################
00004 !
00005 USE MODD_SURF_PAR,       ONLY : XUNDEF
00006 
00007 USE MODD_FORC_ATM,  ONLY: CSV       ,&! name of all scalar variables
00008                             XDIR_ALB  ,&! direct albedo for each band
00009                             XSCA_ALB  ,&! diffuse albedo for each band
00010                             XEMIS     ,&! emissivity
00011                             XTSRAD    ,&! radiative temperature
00012                             XTSUN     ,&! solar time                    (s from midnight)
00013                             XZS       ,&! orography                             (m)
00014                             XZREF     ,&! height of T,q forcing                 (m)
00015                             XUREF     ,&! height of wind forcing                (m)
00016                             XTA       ,&! air temperature forcing               (K)
00017                             XQA       ,&! air specific humidity forcing         (kg/m3)
00018                             XRHOA     ,&! air density forcing                   (kg/m3)
00019                             XSV       ,&! scalar variables
00020                             XU        ,&! zonal wind                            (m/s)
00021                             XV        ,&! meridian wind                         (m/s)
00022                             XDIR_SW   ,&! direct  solar radiation (on horizontal surf.)
00023                             XSCA_SW   ,&! diffuse solar radiation (on horizontal surf.)
00024                             XSW_BANDS ,&! mean wavelength of each shortwave band (m)
00025                             XZENITH   ,&! zenithal angle at t      (radian from the vertical)
00026                             XZENITH2  ,&! zenithal angle at t+1    (radian from the vertical)
00027                             XAZIM     ,&! azimuthal angle      (radian from North, clockwise)
00028                             XLW       ,&! longwave radiation (on horizontal surf.)
00029                             XPS       ,&! pressure at atmospheric model surface (Pa)
00030                             XPA       ,&! pressure at forcing level             (Pa)
00031                             XCO2      ,&! CO2 concentration in the air          (kg/kg)
00032                             XSNOW     ,&! snow precipitation                    (kg/m2/s)
00033                             XRAIN     ,&! liquid precipitation                  (kg/m2/s)
00034                             XSFTH     ,&! flux of heat                          (W/m2)
00035                             XSFTQ     ,&! flux of water vapor                   (kg/m2/s)
00036                             XSFU      ,&! zonal momentum flux                   (pa)
00037                             XSFV      ,&! meridian momentum flux                (pa)
00038                             XSFCO2    ,&! flux of CO2                           (kg/m2/s)
00039                             XSFTS     ,&! flux of scalar var.                   (kg/m2/s)
00040                             XPEW_A_COEF ,&! implicit coefficients
00041                             XPEW_B_COEF ,&! needed if HCOUPLING='I'
00042                             XPET_A_COEF ,&
00043                             XPEQ_A_COEF ,&
00044                             XPET_B_COEF ,&
00045                             XPEQ_B_COEF  
00046 
00047 !
00048 !
00049 !
00050 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00051 USE PARKIND1  ,ONLY : JPRB
00052 !
00053 IMPLICIT NONE
00054 !
00055 !*      0.1    declarations of arguments
00056 !
00057 INTEGER,            INTENT(IN)  :: KNI       ! grid dimension
00058 INTEGER,            INTENT(IN)  :: KBANDS    ! grid dimension
00059 INTEGER,            INTENT(IN)  :: KSCAL     ! grid dimension
00060 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00061 !
00062 !
00063 !*      0.2    declarations of local variables
00064 !
00065 !-------------------------------------------------------------------------------------
00066 IF (LHOOK) CALL DR_HOOK('OL_ALLOC_ATM',0,ZHOOK_HANDLE)
00067 IF (.NOT.ALLOCATED(CSV)) ALLOCATE(CSV       (KSCAL)     )! name of all scalar variables
00068 IF (.NOT.ALLOCATED(XDIR_ALB)) ALLOCATE(XDIR_ALB  (KNI,KBANDS)) ! direct albedo for each band
00069 IF (.NOT.ALLOCATED(XSCA_ALB)) ALLOCATE(XSCA_ALB  (KNI,KBANDS)) ! diffuse albedo for each band
00070 IF (.NOT.ALLOCATED(XEMIS)) ALLOCATE(XEMIS     (KNI)       )! emissivity
00071 IF (.NOT.ALLOCATED(XTSRAD)) ALLOCATE(XTSRAD    (KNI)       )! radiative temperature
00072 IF (.NOT.ALLOCATED(XTSUN)) ALLOCATE(XTSUN     (KNI)       )! solar time                    (s from midnight)
00073 IF (.NOT.ALLOCATED(XZREF)) ALLOCATE(XZREF     (KNI)       )! height of T,q forcing                 (m)
00074 IF (.NOT.ALLOCATED(XUREF)) ALLOCATE(XUREF     (KNI)       )! height of wind forcing                (m)
00075 IF (.NOT.ALLOCATED(XTA)) ALLOCATE(XTA       (KNI)       )! air temperature forcing               (K)
00076 IF (.NOT.ALLOCATED(XQA)) ALLOCATE(XQA       (KNI)       )! air specific humidity forcing         (kg/m3)
00077 IF (.NOT.ALLOCATED(XZS)) ALLOCATE(XZS       (KNI)       )! orography                             (m)
00078 IF (.NOT.ALLOCATED(XRHOA)) ALLOCATE(XRHOA     (KNI)       )! air density forcing                   (kg/m3)
00079 IF (.NOT.ALLOCATED(XSV)) ALLOCATE(XSV       (KNI,KSCAL) ) ! scalar variables
00080 IF (.NOT.ALLOCATED(XU)) ALLOCATE(XU        (KNI)       )! zonal wind                            (m/s)
00081 IF (.NOT.ALLOCATED(XV)) ALLOCATE(XV        (KNI)       )! meridian wind                         (m/s)
00082 IF (.NOT.ALLOCATED(XDIR_SW)) ALLOCATE(XDIR_SW   (KNI,KBANDS))    ! direct  solar radiation (on horizontal surf.)
00083 IF (.NOT.ALLOCATED(XSCA_SW)) ALLOCATE(XSCA_SW   (KNI,KBANDS))    ! diffuse solar radiation (on horizontal surf.)
00084 IF (.NOT.ALLOCATED(XSW_BANDS)) ALLOCATE(XSW_BANDS (KBANDS)    ) ! mean wavelength of each shortwave band (m)
00085 IF (.NOT.ALLOCATED(XZENITH)) ALLOCATE(XZENITH   (KNI)       )! zenithal angle       (radian from the vertical)
00086 IF (.NOT.ALLOCATED(XZENITH2)) ALLOCATE(XZENITH2  (KNI)       )! zenithal angle at t+1(radian from the vertical)
00087 IF (.NOT.ALLOCATED(XAZIM)) ALLOCATE(XAZIM     (KNI)       )! azimuthal angle      (radian from North, clockwise)
00088 IF (.NOT.ALLOCATED(XLW)) ALLOCATE(XLW       (KNI)       )! longwave radiation (on horizontal surf.)
00089 IF (.NOT.ALLOCATED(XPS)) ALLOCATE(XPS       (KNI)       )! pressure at atmospheric model surface (Pa)
00090 IF (.NOT.ALLOCATED(XPA)) ALLOCATE(XPA       (KNI)       )! pressure at forcing level             (Pa)
00091 IF (.NOT.ALLOCATED(XCO2)) ALLOCATE(XCO2      (KNI)       )! CO2 concentration in the air          (kg/kg)
00092 IF (.NOT.ALLOCATED(XSNOW)) ALLOCATE(XSNOW     (KNI)       )! snow precipitation                    (kg/m2/s)
00093 IF (.NOT.ALLOCATED(XRAIN)) ALLOCATE(XRAIN     (KNI)       )! liquid precipitation                  (kg/m2/s)
00094 IF (.NOT.ALLOCATED(XSFTH)) ALLOCATE(XSFTH     (KNI)       )! flux of heat                          (W/m2)
00095 IF (.NOT.ALLOCATED(XSFTQ)) ALLOCATE(XSFTQ     (KNI)       )! flux of water vapor                   (kg/m2/s)
00096 IF (.NOT.ALLOCATED(XSFU)) ALLOCATE(XSFU      (KNI)       )! zonal momentum flux                   (pa)
00097 IF (.NOT.ALLOCATED(XSFV)) ALLOCATE(XSFV      (KNI)       )! meridian momentum flux                (pa)
00098 IF (.NOT.ALLOCATED(XSFCO2)) ALLOCATE(XSFCO2    (KNI)       )! flux of CO2                           (kg/m2/s)
00099 IF (.NOT.ALLOCATED(XSFTS)) ALLOCATE(XSFTS     (KNI,KSCAL) ) ! flux of scalar var.                  (kg/m2/s)
00100 IF (.NOT.ALLOCATED(XPEW_A_COEF)) ALLOCATE(XPEW_A_COEF (KNI)     )! implicit coefficients
00101 IF (.NOT.ALLOCATED(XPEW_B_COEF)) ALLOCATE(XPEW_B_COEF (KNI)     )! needed if HCOUPLING='I'
00102 IF (.NOT.ALLOCATED(XPET_A_COEF)) ALLOCATE(XPET_A_COEF (KNI)     )
00103 IF (.NOT.ALLOCATED(XPEQ_A_COEF)) ALLOCATE(XPEQ_A_COEF (KNI)     )
00104 IF (.NOT.ALLOCATED(XPET_B_COEF)) ALLOCATE(XPET_B_COEF (KNI)     )
00105 IF (.NOT.ALLOCATED(XPEQ_B_COEF)) ALLOCATE(XPEQ_B_COEF (KNI)     )
00106 
00107 CSV       (:)  ='UNDEF '! name of all scalar variables
00108 XDIR_ALB  (:,:)=XUNDEF ! direct albedo for each band
00109 XSCA_ALB  (:,:)=XUNDEF ! diffuse albedo for each band
00110 XEMIS     (:)=XUNDEF ! emissivity
00111 XTSRAD    (:)=XUNDEF ! radiative temperature
00112 XTSUN     (:)=XUNDEF ! solar time                    (s from midnight)
00113 XZREF     (:)=XUNDEF ! height of T,q forcing                 (m)
00114 XUREF     (:)=XUNDEF ! height of wind forcing                (m)
00115 XTA       (:)=XUNDEF ! air temperature forcing               (K)
00116 XQA       (:)=XUNDEF ! air specific humidity forcing         (kg/m3)
00117 XRHOA     (:)=XUNDEF ! air density forcing                   (kg/m3)
00118 XSV       (:,:)=XUNDEF ! scalar variables
00119 XU        (:)=XUNDEF ! zonal wind                            (m/s)
00120 XV        (:)=XUNDEF ! meridian wind                         (m/s)
00121 XDIR_SW   (:,:)=XUNDEF ! direct  solar radiation (on horizontal surf.)
00122 XSCA_SW   (:,:)=XUNDEF ! diffuse solar radiation (on horizontal surf.)
00123 XSW_BANDS (:)=XUNDEF ! mean wavelength of each shortwave band (m)
00124 XZENITH   (:)=XUNDEF ! zenithal angle at t      (radian from the vertical)
00125 XZENITH2  (:)=XUNDEF ! zenithal angle at t+1      (radian from the vertical)
00126 XAZIM     (:)=XUNDEF ! azimuthal angle      (radian from North, clockwise)
00127 XLW       (:)=XUNDEF ! longwave radiation (on horizontal surf.)
00128 XPS       (:)=XUNDEF ! pressure at atmospheric model surface (Pa)
00129 XPA       (:)=XUNDEF ! pressure at forcing level             (Pa)
00130 XZS       (:)=XUNDEF ! atmospheric model orography           (m)
00131 XCO2      (:)=XUNDEF ! CO2 concentration in the air          (kg/kg)
00132 XSNOW     (:)=XUNDEF ! snow precipitation                    (kg/m2/s)
00133 XRAIN     (:)=XUNDEF ! liquid precipitation                  (kg/m2/s)
00134 XSFTH     (:)=XUNDEF ! flux of heat                          (W/m2)
00135 XSFTQ     (:)=XUNDEF ! flux of water vapor                   (kg/m2/s)
00136 XSFU      (:)=XUNDEF ! zonal momentum flux                   (pa)
00137 XSFV      (:)=XUNDEF ! meridian momentum flux                (pa)
00138 XSFCO2    (:)=XUNDEF ! flux of CO2                           (kg/m2/s)
00139 XSFTS     (:,:)=XUNDEF ! flux of scalar var.                 (kg/m2/s)
00140 XPEW_A_COEF (:)=XUNDEF ! implicit coefficients
00141 XPEW_B_COEF (:)=XUNDEF ! needed if HCOUPLING='I'
00142 XPET_A_COEF (:)=XUNDEF
00143 XPEQ_A_COEF (:)=XUNDEF
00144 XPET_B_COEF (:)=XUNDEF
00145 XPEQ_B_COEF (:)=XUNDEF
00146 IF (LHOOK) CALL DR_HOOK('OL_ALLOC_ATM',1,ZHOOK_HANDLE)
00147 
00148 END SUBROUTINE OL_ALLOC_ATM