|
SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE DIAG_TEB_GREENROOF_INIT_n(HPROGRAM,KLU,KSW) 00003 ! ##################### 00004 ! 00005 !!**** *DIAG_TEB_GREENROOF_INIT_n* - routine to initialize TEB-ISBA diagnostic variables 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !!** METHOD 00011 !! ------ 00012 !! Based on diag_teb_garden_initn 00013 !! 00014 !! EXTERNAL 00015 !! -------- 00016 !! 00017 !! 00018 !! IMPLICIT ARGUMENTS 00019 !! ------------------ 00020 !! 00021 !! REFERENCE 00022 !! --------- 00023 !! 00024 !! 00025 !! AUTHOR 00026 !! ------ 00027 !! V. Masson *Meteo France* 00028 !! 00029 !! MODIFICATIONS 00030 !! ------------- 00031 !! Original 02/2003 00032 !! modified 11/2003 by P. LeMoigne: surface cumulated energy budget 00033 !! modified 10/2004 by P. LeMoigne: surface miscellaneous fields 00034 !! B. Decharme 2008 New diag for water budget and allow to reset 00035 !! cumulatives variables at the beginning of a run 00036 ! C. de Munck & A. Lemonsu 09/2011 Greenroofs 00037 !------------------------------------------------------------------------------- 00038 ! 00039 !* 0. DECLARATIONS 00040 ! ------------ 00041 ! 00042 USE MODD_SURF_PAR, ONLY : XUNDEF 00043 USE MODD_TEB_VEG_n, ONLY : CPHOTO, CHORT 00044 USE MODD_TEB_GREENROOF_n, ONLY : NLAYER_GR 00045 USE MODD_TYPE_DATE_SURF 00046 USE MODD_DIAG_SURF_ATM_n, ONLY : LREAD_BUDGETC 00047 USE MODD_DIAG_TEB_n, ONLY : N2M, LSURF_BUDGET, LCOEF, LSURF_VARS 00048 USE MODD_DIAG_MISC_TEB_n, ONLY : LSURF_EVAP_BUDGET, LSURF_MISC_BUDGET 00049 USE MODD_DIAG_TEB_GREENROOF_n, ONLY : XRN, XH, XGFLUX, XLEI, XRI, XCD, XCDN, XCH, XCE, & 00050 XTS, XTSRAD, & 00051 XZ0_WITH_SNOW, XZ0H_WITH_SNOW, XZ0EFF, XQS, & 00052 XSWD, XSWU, XSWBD, XSWBU, XLWD, XLWU, XFMU, XFMV,& 00053 XLEG, XLEGI, XLEV, XLES, XLER, XLETR, XEVAP, & 00054 XDRAIN, XRUNOFF, XHORT, XDRIP, XMELT, & 00055 XRRVEG, XHV, XSWI, XTSWI, XTWSNOW, & 00056 XTDSNOW, XSEUIL, XGPP, XRESP_AUTO, XRESP_ECO, & 00057 XALBT, XEMIST, XALBT, & 00058 XCG, XC1, XC2, XWGEQ, XCT, XRS, XHU, XHUG, & 00059 XRESTORE, XUSTAR, & 00060 XSNOWTEMP, XSNOWLIQ, XSNOWDZ, XSNOWHMASS, & 00061 XMELTADV, XIACAN 00062 ! 00063 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00064 USE PARKIND1 ,ONLY : JPRB 00065 ! 00066 IMPLICIT NONE 00067 ! 00068 !* 0.1 Declarations of arguments 00069 ! ------------------------- 00070 ! 00071 INTEGER, INTENT(IN) :: KLU ! size of arrays 00072 INTEGER, INTENT(IN) :: KSW ! spectral bands 00073 CHARACTER(LEN=6), INTENT(IN):: HPROGRAM ! program calling 00074 ! 00075 !* 0.2 Declarations of local variables 00076 ! ------------------------------- 00077 ! 00078 INTEGER :: IRESP ! IRESP : return-code if a problem appears 00079 CHARACTER(LEN=12) :: YREC ! Name of the article to be read 00080 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00081 ! 00082 !------------------------------------------------------------------------------- 00083 ! 00084 IF (LHOOK) CALL DR_HOOK('DIAG_TEB_GREENROOF_INIT_N',0,ZHOOK_HANDLE) 00085 XCG = XUNDEF 00086 XC1 = XUNDEF 00087 XC2 = XUNDEF 00088 XWGEQ = XUNDEF 00089 XCT = XUNDEF 00090 XRS = XUNDEF 00091 XHU = XUNDEF 00092 XHUG = XUNDEF 00093 XHV = XUNDEF 00094 XRESTORE = XUNDEF 00095 XRI = XUNDEF 00096 XUSTAR = XUNDEF 00097 XRN = XUNDEF 00098 XH = XUNDEF 00099 XGFLUX = XUNDEF 00100 XSNOWTEMP = XUNDEF 00101 XSNOWLIQ = XUNDEF 00102 XSNOWDZ = XUNDEF 00103 XSNOWHMASS = XUNDEF 00104 XMELTADV = XUNDEF 00105 IF (CPHOTO/='NON') THEN 00106 XIACAN = XUNDEF 00107 END IF 00108 XCD = XUNDEF 00109 XCDN = XUNDEF 00110 XCH = XUNDEF 00111 XQS = XUNDEF 00112 XLEI = XUNDEF 00113 XLEG = XUNDEF 00114 XLEGI = XUNDEF 00115 XLEV = XUNDEF 00116 XLES = XUNDEF 00117 XLER = XUNDEF 00118 XLETR = XUNDEF 00119 XEVAP = XUNDEF 00120 XDRAIN = XUNDEF 00121 XRUNOFF = XUNDEF 00122 XHORT = XUNDEF 00123 XDRIP = XUNDEF 00124 XRRVEG = XUNDEF 00125 XMELT = XUNDEF 00126 XALBT = XUNDEF 00127 XEMIST = XUNDEF 00128 ! 00129 !* surface energy budget 00130 ! 00131 !IF (LSURF_BUDGET) THEN 00132 ! 00133 ALLOCATE(XSWD (KLU)) 00134 ALLOCATE(XSWU (KLU)) 00135 ALLOCATE(XSWBD (KLU,KSW)) 00136 ALLOCATE(XSWBU (KLU,KSW)) 00137 ALLOCATE(XLWD (KLU)) 00138 ALLOCATE(XLWU (KLU)) 00139 ALLOCATE(XFMU (KLU)) 00140 ALLOCATE(XFMV (KLU)) 00141 ! 00142 XSWD = XUNDEF 00143 XSWU = XUNDEF 00144 XSWBD = XUNDEF 00145 XSWBU = XUNDEF 00146 XLWD = XUNDEF 00147 XLWU = XUNDEF 00148 XFMU = XUNDEF 00149 XFMV = XUNDEF 00150 ! 00151 !END IF 00152 ! 00153 !* surface temperature and parameters at 2m 00154 ! 00155 ALLOCATE(XTS (KLU)) 00156 XTS = XUNDEF 00157 ALLOCATE(XTSRAD (KLU)) 00158 XTSRAD = XUNDEF 00159 ! 00160 !* miscellaneous surface fields 00161 ! 00162 IF (LSURF_MISC_BUDGET) THEN 00163 ! 00164 ALLOCATE(XSWI (KLU,NLAYER_GR)) 00165 ALLOCATE(XTSWI (KLU,NLAYER_GR)) 00166 ALLOCATE(XTWSNOW (KLU)) 00167 ALLOCATE(XTDSNOW (KLU)) 00168 XSWI = XUNDEF 00169 XTSWI = XUNDEF 00170 XTWSNOW = XUNDEF 00171 XTDSNOW = XUNDEF 00172 ENDIF 00173 00174 00175 ALLOCATE(XALBT (KLU)) 00176 ALLOCATE(XGPP (KLU)) 00177 ALLOCATE(XRESP_AUTO (KLU)) 00178 ALLOCATE(XRESP_ECO (KLU)) 00179 ! 00180 XALBT = XUNDEF 00181 XGPP = XUNDEF 00182 XRESP_AUTO = XUNDEF 00183 XRESP_ECO = XUNDEF 00184 ! 00185 !END IF 00186 ! 00187 !* transfer coefficients 00188 ! 00189 !IF (LCOEF) THEN 00190 ! 00191 ALLOCATE(XCE (KLU)) 00192 ALLOCATE(XZ0_WITH_SNOW (KLU)) 00193 ALLOCATE(XZ0H_WITH_SNOW (KLU)) 00194 ALLOCATE(XZ0EFF (KLU)) 00195 ! 00196 XCE = XUNDEF 00197 XZ0_WITH_SNOW = XUNDEF 00198 XZ0H_WITH_SNOW = XUNDEF 00199 XZ0EFF = XUNDEF 00200 !END IF 00201 ! 00202 ! 00203 !* surface humidity 00204 ! 00205 !IF (LSURF_VARS) THEN 00206 ALLOCATE(XQS (KLU)) 00207 ! 00208 XQS = XUNDEF 00209 !END IF 00210 ! 00211 IF (LHOOK) CALL DR_HOOK('DIAG_TEB_GREENROOF_INIT_N',1,ZHOOK_HANDLE) 00212 ! 00213 ! 00214 !------------------------------------------------------------------------------- 00215 ! 00216 END SUBROUTINE DIAG_TEB_GREENROOF_INIT_n
1.8.0