SURFEX v7.3
General documentation of Surfex
|
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