SURFEX v7.3
General documentation of Surfex
|
00001 !###################### 00002 MODULE MODD_DIAG_ISBA_n 00003 !###################### 00004 ! 00005 !!**** *MODD_DIAG_ISBA - declaration of diagnostics for ISBA scheme 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 !! 00011 !!** IMPLICIT ARGUMENTS 00012 !! ------------------ 00013 !! None 00014 !! 00015 !! REFERENCE 00016 !! --------- 00017 !! 00018 !! AUTHOR 00019 !! ------ 00020 !! V. Masson *Meteo France* 00021 !! 00022 !! MODIFICATIONS 00023 !! ------------- 00024 !! Original 01/2004 00025 !! Modified 01/2006 : sea flux parameterization. 00026 ! 00027 !* 0. DECLARATIONS 00028 ! ------------ 00029 ! 00030 ! 00031 ! 00032 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00033 USE PARKIND1 ,ONLY : JPRB 00034 ! 00035 IMPLICIT NONE 00036 00037 TYPE DIAG_ISBA_t 00038 !------------------------------------------------------------------------------ 00039 ! 00040 REAL :: XDIAG_TSTEP ! time step for diagnostics writing 00041 ! 00042 INTEGER :: N2M ! flag for 2 meters (and 10 meters) quantities 00043 LOGICAL :: L2M_MIN_ZS ! flag for 2 meters quantities evaluated on 00044 ! ! the minimum orographyy of the grid 00045 LOGICAL :: LSURF_BUDGET ! flag for surface energy budget 00046 LOGICAL :: LRAD_BUDGET ! flag for radiative energy budget 00047 ! 00048 LOGICAL :: LCOEF ! flag for transfer coefficients 00049 LOGICAL :: LSURF_VARS ! flag for surface variables 00050 ! 00051 LOGICAL :: LPGD ! flag for writing of PGD files 00052 LOGICAL :: LPATCH_BUDGET ! flag for patch output 00053 ! 00054 !* variables for each patch 00055 ! 00056 REAL, POINTER, DIMENSION(:,:) :: XRI ! Bulk-Richardson number (-) 00057 REAL, POINTER, DIMENSION(:,:) :: XCD ! drag coefficient for wind (W/s2) 00058 REAL, POINTER, DIMENSION(:,:) :: XCH ! drag coefficient for heat (W/s) 00059 REAL, POINTER, DIMENSION(:,:) :: XCE ! drag coefficient for vapor (W/s/K) 00060 REAL, POINTER, DIMENSION(:,:) :: XRN ! net radiation at surface (W/m2) 00061 REAL, POINTER, DIMENSION(:,:) :: XH ! sensible heat flux (W/m2) 00062 REAL, POINTER, DIMENSION(:,:) :: XLE ! total latent heat flux (W/m2) 00063 REAL, POINTER, DIMENSION(:,:) :: XLEI ! sublimation latent heat flux (W/m2) 00064 REAL, POINTER, DIMENSION(:,:) :: XGFLUX ! net soil-vegetation flux (W/m2) 00065 REAL, POINTER, DIMENSION(:,:) :: XTS ! surface temperature (K) 00066 REAL, POINTER, DIMENSION(:,:) :: XTSRAD ! surface temperature (K) 00067 REAL, POINTER, DIMENSION(:,:) :: XT2M ! temperature at 2 meters (K) 00068 REAL, POINTER, DIMENSION(:,:) :: XQ2M ! humidity at 2 meters (kg/kg) 00069 REAL, POINTER, DIMENSION(:,:) :: XHU2M ! relative humidity at 2 meters (-) 00070 REAL, POINTER, DIMENSION(:,:) :: XQS ! humidity at surface (kg/kg) 00071 REAL, POINTER, DIMENSION(:,:) :: XZON10M ! zonal wind at 10 meters (m/s) 00072 REAL, POINTER, DIMENSION(:,:) :: XMER10M ! meridian wind at 10 meters (m/s) 00073 REAL, POINTER, DIMENSION(:,:) :: XWIND10M! wind at 10 meters (m/s) 00074 REAL, POINTER, DIMENSION(:,:) :: XLWD ! downward long wave radiation (W/m2) 00075 REAL, POINTER, DIMENSION(:,:) :: XLWU ! upward long wave radiation (W/m2) 00076 REAL, POINTER, DIMENSION(:,:) :: XSWD ! downward short wave radiation (W/m2) 00077 REAL, POINTER, DIMENSION(:,:) :: XSWU ! upward short wave radiation (W/m2) 00078 REAL, POINTER, DIMENSION(:,:,:) :: XSWBD ! downward short wave radiation by spectral band (W/m2) 00079 REAL, POINTER, DIMENSION(:,:,:) :: XSWBU ! upward short wave radiation by spectral band (W/m2) 00080 REAL, POINTER, DIMENSION(:,:) :: XFMU ! horizontal momentum flux zonal (Pa) 00081 REAL, POINTER, DIMENSION(:,:) :: XFMV ! horizontal momentum flux meridian (Pa) 00082 ! 00083 REAL, POINTER, DIMENSION(:,:) :: XSWDC ! downward short wave radiation (J/m2) 00084 REAL, POINTER, DIMENSION(:,:) :: XSWUC ! upward short wave radiation (J/m2) 00085 REAL, POINTER, DIMENSION(:,:) :: XLWDC ! downward long wave radiation (J/m2) 00086 REAL, POINTER, DIMENSION(:,:) :: XLWUC ! upward long wave radiation (J/m2) 00087 REAL, POINTER, DIMENSION(:,:) :: XFMUC ! horizontal momentum flux zonal (Pa.s) 00088 REAL, POINTER, DIMENSION(:,:) :: XFMVC ! horizontal momentum flux meridian (Pa.s) 00089 ! 00090 REAL, POINTER, DIMENSION(:,:) :: XZ0_WITH_SNOW ! roughness length for momentum 00091 ! for vegetation and snow (m) 00092 REAL, POINTER, DIMENSION(:,:) :: XZ0H_WITH_SNOW ! roughness length for heat 00093 ! for vegetation and snow (m) 00094 REAL, POINTER, DIMENSION(:,:) :: XZ0EFF ! effective roughness length for heat 00095 ! for vegetation and snow (m) 00096 ! 00097 !* averaged variables 00098 ! 00099 REAL, POINTER, DIMENSION(:) :: XAVG_RI ! Bulk-Richardson number (-) 00100 REAL, POINTER, DIMENSION(:) :: XAVG_CD ! drag coefficient for wind (W/s2) 00101 REAL, POINTER, DIMENSION(:) :: XAVG_CH ! drag coefficient for heat (W/s) 00102 REAL, POINTER, DIMENSION(:) :: XAVG_CE ! drag coefficient for vapor (W/s/K) 00103 REAL, POINTER, DIMENSION(:) :: XAVG_RN ! net radiation at surface (W/m2) 00104 REAL, POINTER, DIMENSION(:) :: XAVG_H ! sensible heat flux (W/m2) 00105 REAL, POINTER, DIMENSION(:) :: XAVG_LE ! total latent heat flux (W/m2) 00106 REAL, POINTER, DIMENSION(:) :: XAVG_LEI ! sublimation latent heat flux (W/m2) 00107 REAL, POINTER, DIMENSION(:) :: XAVG_GFLUX ! net soil-vegetation flux (W/m2) 00108 REAL, POINTER, DIMENSION(:) :: XAVG_TS ! surface temperature (K) 00109 REAL, POINTER, DIMENSION(:) :: XAVG_TSRAD ! surface temperature (K) 00110 REAL, POINTER, DIMENSION(:) :: XAVG_T2M ! temperature at 2 meters (K) 00111 REAL, POINTER, DIMENSION(:) :: XAVG_T2M_MIN ! Minimum temperature at 2 meters (K) 00112 REAL, POINTER, DIMENSION(:) :: XAVG_T2M_MAX ! Maximum temperature at 2 meters (K) 00113 REAL, POINTER, DIMENSION(:) :: XAVG_Q2M ! humidity at 2 meters (kg/kg) 00114 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M ! relative humidity at 2 meters (-) 00115 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M_MIN ! Minimum relative humidity at 2 meters (-) 00116 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M_MAX ! Maximum relative humidity at 2 meters (-) 00117 REAL, POINTER, DIMENSION(:) :: XAVG_QS ! humidity at surface (kg/kg) 00118 REAL, POINTER, DIMENSION(:) :: XAVG_ZON10M ! zonal wind at 10 meters (m/s) 00119 REAL, POINTER, DIMENSION(:) :: XAVG_MER10M ! meridian wind at 10 meters (m/s) 00120 REAL, POINTER, DIMENSION(:) :: XAVG_WIND10M ! wind at 10 meters (m/s) 00121 REAL, POINTER, DIMENSION(:) :: XAVG_WIND10M_MAX ! Maximum wind at 10 meters (m/s) 00122 REAL, POINTER, DIMENSION(:) :: XAVG_SFCO2 ! CO2 flux (kg/m2/s) 00123 REAL, POINTER, DIMENSION(:) :: XAVG_LWD ! downward long wave radiation (W/m2) 00124 REAL, POINTER, DIMENSION(:) :: XAVG_LWU ! upward long wave radiation (W/m2) 00125 REAL, POINTER, DIMENSION(:) :: XAVG_SWD ! downward short wave radiation (W/m2) 00126 REAL, POINTER, DIMENSION(:) :: XAVG_SWU ! upward short wave radiation (W/m2) 00127 REAL, POINTER, DIMENSION(:,:) :: XAVG_SWBD ! downward short wave radiation by spectral band (W/m2) 00128 REAL, POINTER, DIMENSION(:,:) :: XAVG_SWBU ! upward short wave radiation by spectral band (W/m2) 00129 REAL, POINTER, DIMENSION(:) :: XAVG_FMU ! horizontal momentum flux zonal (m2/s2) 00130 REAL, POINTER, DIMENSION(:) :: XAVG_FMV ! horizontal momentum flux meridian (m2/s2) 00131 REAL, POINTER, DIMENSION(:) :: XAVG_LWDC ! downward long wave radiation (J/m2) 00132 REAL, POINTER, DIMENSION(:) :: XAVG_LWUC ! upward long wave radiation (J/m2) 00133 REAL, POINTER, DIMENSION(:) :: XAVG_SWDC ! downward short wave radiation (J/m2) 00134 REAL, POINTER, DIMENSION(:) :: XAVG_SWUC ! upward short wave radiation (J/m2) 00135 REAL, POINTER, DIMENSION(:) :: XAVG_FMUC ! horizontal momentum flux zonal (Pa.s) 00136 REAL, POINTER, DIMENSION(:) :: XAVG_FMVC ! horizontal momentum flux meridian (Pa.s) 00137 00138 ! 00139 REAL, POINTER, DIMENSION(:) :: XAVG_Z0 ! roughness length for momentum 00140 ! for vegetation and snow (m) 00141 REAL, POINTER, DIMENSION(:) :: XAVG_Z0H ! roughness length for heat 00142 ! for vegetation and snow (m) 00143 REAL, POINTER, DIMENSION(:) :: XAVG_Z0EFF ! effective roughness length for heat 00144 ! for vegetation and snow (m) 00145 !------------------------------------------------------------------------------ 00146 ! 00147 00148 END TYPE DIAG_ISBA_t 00149 00150 TYPE(DIAG_ISBA_t), ALLOCATABLE, TARGET, SAVE :: DIAG_ISBA_MODEL(:) 00151 00152 REAL, POINTER :: XDIAG_TSTEP=>NULL() 00153 !$OMP THREADPRIVATE(XDIAG_TSTEP) 00154 INTEGER, POINTER :: N2M=>NULL() 00155 !$OMP THREADPRIVATE(N2M) 00156 LOGICAL, POINTER :: L2M_MIN_ZS=>NULL() 00157 !$OMP THREADPRIVATE(L2M_MIN_ZS) 00158 LOGICAL, POINTER :: LSURF_BUDGET=>NULL() 00159 !$OMP THREADPRIVATE(LSURF_BUDGET) 00160 LOGICAL, POINTER :: LRAD_BUDGET=>NULL() 00161 !$OMP THREADPRIVATE(LRAD_BUDGET) 00162 LOGICAL, POINTER :: LCOEF=>NULL() 00163 !$OMP THREADPRIVATE(LCOEF) 00164 LOGICAL, POINTER :: LSURF_VARS=>NULL() 00165 !$OMP THREADPRIVATE(LSURF_VARS) 00166 LOGICAL, POINTER :: LPGD=>NULL() 00167 !$OMP THREADPRIVATE(LPGD) 00168 LOGICAL, POINTER :: LPATCH_BUDGET=>NULL() 00169 !$OMP THREADPRIVATE(LPATCH_BUDGET) 00170 REAL, POINTER, DIMENSION(:,:) :: XRI=>NULL() 00171 !$OMP THREADPRIVATE(XRI) 00172 REAL, POINTER, DIMENSION(:,:) :: XCD=>NULL() 00173 !$OMP THREADPRIVATE(XCD) 00174 REAL, POINTER, DIMENSION(:,:) :: XCH=>NULL() 00175 !$OMP THREADPRIVATE(XCH) 00176 REAL, POINTER, DIMENSION(:,:) :: XCE=>NULL() 00177 !$OMP THREADPRIVATE(XCE) 00178 REAL, POINTER, DIMENSION(:,:) :: XRN=>NULL() 00179 !$OMP THREADPRIVATE(XRN) 00180 REAL, POINTER, DIMENSION(:,:) :: XH=>NULL() 00181 !$OMP THREADPRIVATE(XH) 00182 REAL, POINTER, DIMENSION(:,:) :: XLE=>NULL() 00183 !$OMP THREADPRIVATE(XLE) 00184 REAL, POINTER, DIMENSION(:,:) :: XLEI=>NULL() 00185 !$OMP THREADPRIVATE(XLEI) 00186 REAL, POINTER, DIMENSION(:,:) :: XGFLUX=>NULL() 00187 !$OMP THREADPRIVATE(XGFLUX) 00188 REAL, POINTER, DIMENSION(:,:) :: XTS=>NULL() 00189 !$OMP THREADPRIVATE(XTS) 00190 REAL, POINTER, DIMENSION(:,:) :: XTSRAD=>NULL() 00191 !$OMP THREADPRIVATE(XTSRAD) 00192 REAL, POINTER, DIMENSION(:,:) :: XT2M=>NULL() 00193 !$OMP THREADPRIVATE(XT2M) 00194 REAL, POINTER, DIMENSION(:,:) :: XQ2M=>NULL() 00195 !$OMP THREADPRIVATE(XQ2M) 00196 REAL, POINTER, DIMENSION(:,:) :: XHU2M=>NULL() 00197 !$OMP THREADPRIVATE(XHU2M) 00198 REAL, POINTER, DIMENSION(:,:) :: XQS=>NULL() 00199 !$OMP THREADPRIVATE(XQS) 00200 REAL, POINTER, DIMENSION(:,:) :: XZON10M=>NULL() 00201 !$OMP THREADPRIVATE(XZON10M) 00202 REAL, POINTER, DIMENSION(:,:) :: XMER10M=>NULL() 00203 !$OMP THREADPRIVATE(XMER10M) 00204 REAL, POINTER, DIMENSION(:,:) :: XWIND10M=>NULL() 00205 !$OMP THREADPRIVATE(XWIND10M) 00206 REAL, POINTER, DIMENSION(:,:) :: XLWD=>NULL() 00207 !$OMP THREADPRIVATE(XLWD) 00208 REAL, POINTER, DIMENSION(:,:) :: XLWU=>NULL() 00209 !$OMP THREADPRIVATE(XLWU) 00210 REAL, POINTER, DIMENSION(:,:) :: XSWD=>NULL() 00211 !$OMP THREADPRIVATE(XSWD) 00212 REAL, POINTER, DIMENSION(:,:) :: XSWU=>NULL() 00213 !$OMP THREADPRIVATE(XSWU) 00214 REAL, POINTER, DIMENSION(:,:,:) :: XSWBD=>NULL() 00215 !$OMP THREADPRIVATE(XSWBD) 00216 REAL, POINTER, DIMENSION(:,:,:) :: XSWBU=>NULL() 00217 !$OMP THREADPRIVATE(XSWBU) 00218 REAL, POINTER, DIMENSION(:,:) :: XFMU=>NULL() 00219 !$OMP THREADPRIVATE(XFMU) 00220 REAL, POINTER, DIMENSION(:,:) :: XFMV=>NULL() 00221 !$OMP THREADPRIVATE(XFMV) 00222 REAL, POINTER, DIMENSION(:,:) :: XLWDC=>NULL() 00223 !$OMP THREADPRIVATE(XLWDC) 00224 REAL, POINTER, DIMENSION(:,:) :: XLWUC=>NULL() 00225 !$OMP THREADPRIVATE(XLWUC) 00226 REAL, POINTER, DIMENSION(:,:) :: XSWDC=>NULL() 00227 !$OMP THREADPRIVATE(XSWDC) 00228 REAL, POINTER, DIMENSION(:,:) :: XSWUC=>NULL() 00229 !$OMP THREADPRIVATE(XSWUC) 00230 REAL, POINTER, DIMENSION(:,:) :: XFMUC=>NULL() 00231 !$OMP THREADPRIVATE(XFMUC) 00232 REAL, POINTER, DIMENSION(:,:) :: XFMVC=>NULL() 00233 !$OMP THREADPRIVATE(XFMVC) 00234 REAL, POINTER, DIMENSION(:,:) :: XZ0_WITH_SNOW=>NULL() 00235 !$OMP THREADPRIVATE(XZ0_WITH_SNOW) 00236 REAL, POINTER, DIMENSION(:,:) :: XZ0H_WITH_SNOW=>NULL() 00237 !$OMP THREADPRIVATE(XZ0H_WITH_SNOW) 00238 REAL, POINTER, DIMENSION(:,:) :: XZ0EFF=>NULL() 00239 !$OMP THREADPRIVATE(XZ0EFF) 00240 REAL, POINTER, DIMENSION(:) :: XAVG_RI=>NULL() 00241 !$OMP THREADPRIVATE(XAVG_RI) 00242 REAL, POINTER, DIMENSION(:) :: XAVG_CD=>NULL() 00243 !$OMP THREADPRIVATE(XAVG_CD) 00244 REAL, POINTER, DIMENSION(:) :: XAVG_CH=>NULL() 00245 !$OMP THREADPRIVATE(XAVG_CH) 00246 REAL, POINTER, DIMENSION(:) :: XAVG_CE=>NULL() 00247 !$OMP THREADPRIVATE(XAVG_CE) 00248 REAL, POINTER, DIMENSION(:) :: XAVG_RN=>NULL() 00249 !$OMP THREADPRIVATE(XAVG_RN) 00250 REAL, POINTER, DIMENSION(:) :: XAVG_H=>NULL() 00251 !$OMP THREADPRIVATE(XAVG_H) 00252 REAL, POINTER, DIMENSION(:) :: XAVG_LE=>NULL() 00253 !$OMP THREADPRIVATE(XAVG_LE) 00254 REAL, POINTER, DIMENSION(:) :: XAVG_LEI=>NULL() 00255 !$OMP THREADPRIVATE(XAVG_LEI) 00256 REAL, POINTER, DIMENSION(:) :: XAVG_GFLUX=>NULL() 00257 !$OMP THREADPRIVATE(XAVG_GFLUX) 00258 REAL, POINTER, DIMENSION(:) :: XAVG_TS=>NULL() 00259 !$OMP THREADPRIVATE(XAVG_TS) 00260 REAL, POINTER, DIMENSION(:) :: XAVG_TSRAD=>NULL() 00261 !$OMP THREADPRIVATE(XAVG_TSRAD) 00262 REAL, POINTER, DIMENSION(:) :: XAVG_T2M=>NULL() 00263 !$OMP THREADPRIVATE(XAVG_T2M) 00264 REAL, POINTER, DIMENSION(:) :: XAVG_T2M_MIN=>NULL() 00265 !$OMP THREADPRIVATE(XAVG_T2M_MIN) 00266 REAL, POINTER, DIMENSION(:) :: XAVG_T2M_MAX=>NULL() 00267 !$OMP THREADPRIVATE(XAVG_T2M_MAX) 00268 REAL, POINTER, DIMENSION(:) :: XAVG_Q2M=>NULL() 00269 !$OMP THREADPRIVATE(XAVG_Q2M) 00270 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M=>NULL() 00271 !$OMP THREADPRIVATE(XAVG_HU2M) 00272 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M_MIN=>NULL() 00273 !$OMP THREADPRIVATE(XAVG_HU2M_MIN) 00274 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M_MAX=>NULL() 00275 !$OMP THREADPRIVATE(XAVG_HU2M_MAX) 00276 REAL, POINTER, DIMENSION(:) :: XAVG_QS=>NULL() 00277 !$OMP THREADPRIVATE(XAVG_QS) 00278 REAL, POINTER, DIMENSION(:) :: XAVG_ZON10M=>NULL() 00279 !$OMP THREADPRIVATE(XAVG_ZON10M) 00280 REAL, POINTER, DIMENSION(:) :: XAVG_MER10M=>NULL() 00281 !$OMP THREADPRIVATE(XAVG_MER10M) 00282 REAL, POINTER, DIMENSION(:) :: XAVG_WIND10M=>NULL() 00283 !$OMP THREADPRIVATE(XAVG_WIND10M) 00284 REAL, POINTER, DIMENSION(:) :: XAVG_WIND10M_MAX=>NULL() 00285 !$OMP THREADPRIVATE(XAVG_WIND10M_MAX) 00286 REAL, POINTER, DIMENSION(:) :: XAVG_SFCO2=>NULL() 00287 !$OMP THREADPRIVATE(XAVG_SFCO2) 00288 REAL, POINTER, DIMENSION(:) :: XAVG_LWD=>NULL() 00289 !$OMP THREADPRIVATE(XAVG_LWD) 00290 REAL, POINTER, DIMENSION(:) :: XAVG_LWU=>NULL() 00291 !$OMP THREADPRIVATE(XAVG_LWU) 00292 REAL, POINTER, DIMENSION(:) :: XAVG_SWD=>NULL() 00293 !$OMP THREADPRIVATE(XAVG_SWD) 00294 REAL, POINTER, DIMENSION(:) :: XAVG_SWU=>NULL() 00295 !$OMP THREADPRIVATE(XAVG_SWU) 00296 REAL, POINTER, DIMENSION(:,:) :: XAVG_SWBD=>NULL() 00297 !$OMP THREADPRIVATE(XAVG_SWBD) 00298 REAL, POINTER, DIMENSION(:,:) :: XAVG_SWBU=>NULL() 00299 !$OMP THREADPRIVATE(XAVG_SWBU) 00300 REAL, POINTER, DIMENSION(:) :: XAVG_FMU=>NULL() 00301 !$OMP THREADPRIVATE(XAVG_FMU) 00302 REAL, POINTER, DIMENSION(:) :: XAVG_FMV=>NULL() 00303 !$OMP THREADPRIVATE(XAVG_FMV) 00304 REAL, POINTER, DIMENSION(:) :: XAVG_Z0=>NULL() 00305 !$OMP THREADPRIVATE(XAVG_Z0) 00306 REAL, POINTER, DIMENSION(:) :: XAVG_Z0H=>NULL() 00307 !$OMP THREADPRIVATE(XAVG_Z0H) 00308 REAL, POINTER, DIMENSION(:) :: XAVG_Z0EFF=>NULL() 00309 !$OMP THREADPRIVATE(XAVG_Z0EFF) 00310 REAL, POINTER, DIMENSION(:) :: XAVG_LWDC=>NULL() 00311 !$OMP THREADPRIVATE(XAVG_LWDC) 00312 REAL, POINTER, DIMENSION(:) :: XAVG_LWUC=>NULL() 00313 !$OMP THREADPRIVATE(XAVG_LWUC) 00314 REAL, POINTER, DIMENSION(:) :: XAVG_SWDC=>NULL() 00315 !$OMP THREADPRIVATE(XAVG_SWDC) 00316 REAL, POINTER, DIMENSION(:) :: XAVG_SWUC=>NULL() 00317 !$OMP THREADPRIVATE(XAVG_SWUC) 00318 REAL, POINTER, DIMENSION(:) :: XAVG_FMUC=>NULL() 00319 !$OMP THREADPRIVATE(XAVG_FMUC) 00320 REAL, POINTER, DIMENSION(:) :: XAVG_FMVC=>NULL() 00321 !$OMP THREADPRIVATE(XAVG_FMVC) 00322 00323 CONTAINS 00324 00325 SUBROUTINE DIAG_ISBA_GOTO_MODEL(KFROM, KTO, LKFROM) 00326 LOGICAL, INTENT(IN) :: LKFROM 00327 INTEGER, INTENT(IN) :: KFROM, KTO 00328 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00329 ! 00330 ! Save current state for allocated arrays 00331 IF (LKFROM) THEN 00332 DIAG_ISBA_MODEL(KFROM)%XRI=>XRI 00333 DIAG_ISBA_MODEL(KFROM)%XCD=>XCD 00334 DIAG_ISBA_MODEL(KFROM)%XCH=>XCH 00335 DIAG_ISBA_MODEL(KFROM)%XCE=>XCE 00336 DIAG_ISBA_MODEL(KFROM)%XRN=>XRN 00337 DIAG_ISBA_MODEL(KFROM)%XH=>XH 00338 DIAG_ISBA_MODEL(KFROM)%XLE=>XLE 00339 DIAG_ISBA_MODEL(KFROM)%XLEI=>XLEI 00340 DIAG_ISBA_MODEL(KFROM)%XGFLUX=>XGFLUX 00341 DIAG_ISBA_MODEL(KFROM)%XTS=>XTS 00342 DIAG_ISBA_MODEL(KFROM)%XTSRAD=>XTSRAD 00343 DIAG_ISBA_MODEL(KFROM)%XT2M=>XT2M 00344 DIAG_ISBA_MODEL(KFROM)%XQ2M=>XQ2M 00345 DIAG_ISBA_MODEL(KFROM)%XHU2M=>XHU2M 00346 DIAG_ISBA_MODEL(KFROM)%XQS=>XQS 00347 DIAG_ISBA_MODEL(KFROM)%XZON10M=>XZON10M 00348 DIAG_ISBA_MODEL(KFROM)%XMER10M=>XMER10M 00349 DIAG_ISBA_MODEL(KFROM)%XWIND10M=>XWIND10M 00350 DIAG_ISBA_MODEL(KFROM)%XLWD=>XLWD 00351 DIAG_ISBA_MODEL(KFROM)%XLWU=>XLWU 00352 DIAG_ISBA_MODEL(KFROM)%XSWD=>XSWD 00353 DIAG_ISBA_MODEL(KFROM)%XSWU=>XSWU 00354 DIAG_ISBA_MODEL(KFROM)%XSWBD=>XSWBD 00355 DIAG_ISBA_MODEL(KFROM)%XSWBU=>XSWBU 00356 DIAG_ISBA_MODEL(KFROM)%XFMU=>XFMU 00357 DIAG_ISBA_MODEL(KFROM)%XFMV=>XFMV 00358 DIAG_ISBA_MODEL(KFROM)%XLWDC=>XLWDC 00359 DIAG_ISBA_MODEL(KFROM)%XLWUC=>XLWUC 00360 DIAG_ISBA_MODEL(KFROM)%XSWDC=>XSWDC 00361 DIAG_ISBA_MODEL(KFROM)%XSWUC=>XSWUC 00362 DIAG_ISBA_MODEL(KFROM)%XFMUC=>XFMUC 00363 DIAG_ISBA_MODEL(KFROM)%XFMVC=>XFMVC 00364 DIAG_ISBA_MODEL(KFROM)%XZ0_WITH_SNOW=>XZ0_WITH_SNOW 00365 DIAG_ISBA_MODEL(KFROM)%XZ0H_WITH_SNOW=>XZ0H_WITH_SNOW 00366 DIAG_ISBA_MODEL(KFROM)%XZ0EFF=>XZ0EFF 00367 DIAG_ISBA_MODEL(KFROM)%XAVG_RI=>XAVG_RI 00368 DIAG_ISBA_MODEL(KFROM)%XAVG_CD=>XAVG_CD 00369 DIAG_ISBA_MODEL(KFROM)%XAVG_CH=>XAVG_CH 00370 DIAG_ISBA_MODEL(KFROM)%XAVG_CE=>XAVG_CE 00371 DIAG_ISBA_MODEL(KFROM)%XAVG_RN=>XAVG_RN 00372 DIAG_ISBA_MODEL(KFROM)%XAVG_H=>XAVG_H 00373 DIAG_ISBA_MODEL(KFROM)%XAVG_LE=>XAVG_LE 00374 DIAG_ISBA_MODEL(KFROM)%XAVG_LEI=>XAVG_LEI 00375 DIAG_ISBA_MODEL(KFROM)%XAVG_GFLUX=>XAVG_GFLUX 00376 DIAG_ISBA_MODEL(KFROM)%XAVG_TS=>XAVG_TS 00377 DIAG_ISBA_MODEL(KFROM)%XAVG_TSRAD=>XAVG_TSRAD 00378 DIAG_ISBA_MODEL(KFROM)%XAVG_T2M=>XAVG_T2M 00379 DIAG_ISBA_MODEL(KFROM)%XAVG_T2M_MIN=>XAVG_T2M_MIN 00380 DIAG_ISBA_MODEL(KFROM)%XAVG_T2M_MAX=>XAVG_T2M_MAX 00381 DIAG_ISBA_MODEL(KFROM)%XAVG_Q2M=>XAVG_Q2M 00382 DIAG_ISBA_MODEL(KFROM)%XAVG_HU2M=>XAVG_HU2M 00383 DIAG_ISBA_MODEL(KFROM)%XAVG_HU2M_MIN=>XAVG_HU2M_MIN 00384 DIAG_ISBA_MODEL(KFROM)%XAVG_HU2M_MAX=>XAVG_HU2M_MAX 00385 DIAG_ISBA_MODEL(KFROM)%XAVG_QS=>XAVG_QS 00386 DIAG_ISBA_MODEL(KFROM)%XAVG_ZON10M=>XAVG_ZON10M 00387 DIAG_ISBA_MODEL(KFROM)%XAVG_MER10M=>XAVG_MER10M 00388 DIAG_ISBA_MODEL(KFROM)%XAVG_WIND10M=>XAVG_WIND10M 00389 DIAG_ISBA_MODEL(KFROM)%XAVG_WIND10M_MAX=>XAVG_WIND10M_MAX 00390 DIAG_ISBA_MODEL(KFROM)%XAVG_SFCO2=>XAVG_SFCO2 00391 DIAG_ISBA_MODEL(KFROM)%XAVG_LWD=>XAVG_LWD 00392 DIAG_ISBA_MODEL(KFROM)%XAVG_LWU=>XAVG_LWU 00393 DIAG_ISBA_MODEL(KFROM)%XAVG_SWD=>XAVG_SWD 00394 DIAG_ISBA_MODEL(KFROM)%XAVG_SWU=>XAVG_SWU 00395 DIAG_ISBA_MODEL(KFROM)%XAVG_SWBD=>XAVG_SWBD 00396 DIAG_ISBA_MODEL(KFROM)%XAVG_SWBU=>XAVG_SWBU 00397 DIAG_ISBA_MODEL(KFROM)%XAVG_FMU=>XAVG_FMU 00398 DIAG_ISBA_MODEL(KFROM)%XAVG_FMV=>XAVG_FMV 00399 DIAG_ISBA_MODEL(KFROM)%XAVG_Z0=>XAVG_Z0 00400 DIAG_ISBA_MODEL(KFROM)%XAVG_Z0H=>XAVG_Z0H 00401 DIAG_ISBA_MODEL(KFROM)%XAVG_Z0EFF=>XAVG_Z0EFF 00402 DIAG_ISBA_MODEL(KFROM)%XAVG_LWDC=>XAVG_LWDC 00403 DIAG_ISBA_MODEL(KFROM)%XAVG_LWUC=>XAVG_LWUC 00404 DIAG_ISBA_MODEL(KFROM)%XAVG_SWDC=>XAVG_SWDC 00405 DIAG_ISBA_MODEL(KFROM)%XAVG_SWUC=>XAVG_SWUC 00406 DIAG_ISBA_MODEL(KFROM)%XAVG_FMUC=>XAVG_FMUC 00407 DIAG_ISBA_MODEL(KFROM)%XAVG_FMVC=>XAVG_FMVC 00408 ENDIF 00409 ! 00410 ! Current model is set to model KTO 00411 IF (LHOOK) CALL DR_HOOK('MODD_DIAG_ISBA_N:DIAG_ISBA_GOTO_MODEL',0,ZHOOK_HANDLE) 00412 XDIAG_TSTEP=>DIAG_ISBA_MODEL(KTO)%XDIAG_TSTEP 00413 N2M=>DIAG_ISBA_MODEL(KTO)%N2M 00414 L2M_MIN_ZS=>DIAG_ISBA_MODEL(KTO)%L2M_MIN_ZS 00415 LSURF_BUDGET=>DIAG_ISBA_MODEL(KTO)%LSURF_BUDGET 00416 LRAD_BUDGET=>DIAG_ISBA_MODEL(KTO)%LRAD_BUDGET 00417 LCOEF=>DIAG_ISBA_MODEL(KTO)%LCOEF 00418 LSURF_VARS=>DIAG_ISBA_MODEL(KTO)%LSURF_VARS 00419 LPGD=>DIAG_ISBA_MODEL(KTO)%LPGD 00420 LPATCH_BUDGET=>DIAG_ISBA_MODEL(KTO)%LPATCH_BUDGET 00421 XRI=>DIAG_ISBA_MODEL(KTO)%XRI 00422 XCD=>DIAG_ISBA_MODEL(KTO)%XCD 00423 XCH=>DIAG_ISBA_MODEL(KTO)%XCH 00424 XCE=>DIAG_ISBA_MODEL(KTO)%XCE 00425 XRN=>DIAG_ISBA_MODEL(KTO)%XRN 00426 XH=>DIAG_ISBA_MODEL(KTO)%XH 00427 XLE=>DIAG_ISBA_MODEL(KTO)%XLE 00428 XLEI=>DIAG_ISBA_MODEL(KTO)%XLEI 00429 XGFLUX=>DIAG_ISBA_MODEL(KTO)%XGFLUX 00430 XTS=>DIAG_ISBA_MODEL(KTO)%XTS 00431 XTSRAD=>DIAG_ISBA_MODEL(KTO)%XTSRAD 00432 XT2M=>DIAG_ISBA_MODEL(KTO)%XT2M 00433 XQ2M=>DIAG_ISBA_MODEL(KTO)%XQ2M 00434 XHU2M=>DIAG_ISBA_MODEL(KTO)%XHU2M 00435 XQS=>DIAG_ISBA_MODEL(KTO)%XQS 00436 XZON10M=>DIAG_ISBA_MODEL(KTO)%XZON10M 00437 XMER10M=>DIAG_ISBA_MODEL(KTO)%XMER10M 00438 XWIND10M=>DIAG_ISBA_MODEL(KTO)%XWIND10M 00439 XLWD=>DIAG_ISBA_MODEL(KTO)%XLWD 00440 XLWU=>DIAG_ISBA_MODEL(KTO)%XLWU 00441 XSWD=>DIAG_ISBA_MODEL(KTO)%XSWD 00442 XSWU=>DIAG_ISBA_MODEL(KTO)%XSWU 00443 XSWBD=>DIAG_ISBA_MODEL(KTO)%XSWBD 00444 XSWBU=>DIAG_ISBA_MODEL(KTO)%XSWBU 00445 XFMU=>DIAG_ISBA_MODEL(KTO)%XFMU 00446 XFMV=>DIAG_ISBA_MODEL(KTO)%XFMV 00447 XLWDC=>DIAG_ISBA_MODEL(KTO)%XLWDC 00448 XLWUC=>DIAG_ISBA_MODEL(KTO)%XLWUC 00449 XSWDC=>DIAG_ISBA_MODEL(KTO)%XSWDC 00450 XSWUC=>DIAG_ISBA_MODEL(KTO)%XSWUC 00451 XFMUC=>DIAG_ISBA_MODEL(KTO)%XFMUC 00452 XFMVC=>DIAG_ISBA_MODEL(KTO)%XFMVC 00453 XZ0_WITH_SNOW=>DIAG_ISBA_MODEL(KTO)%XZ0_WITH_SNOW 00454 XZ0H_WITH_SNOW=>DIAG_ISBA_MODEL(KTO)%XZ0H_WITH_SNOW 00455 XZ0EFF=>DIAG_ISBA_MODEL(KTO)%XZ0EFF 00456 XAVG_RI=>DIAG_ISBA_MODEL(KTO)%XAVG_RI 00457 XAVG_CD=>DIAG_ISBA_MODEL(KTO)%XAVG_CD 00458 XAVG_CH=>DIAG_ISBA_MODEL(KTO)%XAVG_CH 00459 XAVG_CE=>DIAG_ISBA_MODEL(KTO)%XAVG_CE 00460 XAVG_RN=>DIAG_ISBA_MODEL(KTO)%XAVG_RN 00461 XAVG_H=>DIAG_ISBA_MODEL(KTO)%XAVG_H 00462 XAVG_LE=>DIAG_ISBA_MODEL(KTO)%XAVG_LE 00463 XAVG_LEI=>DIAG_ISBA_MODEL(KTO)%XAVG_LEI 00464 XAVG_GFLUX=>DIAG_ISBA_MODEL(KTO)%XAVG_GFLUX 00465 XAVG_TS=>DIAG_ISBA_MODEL(KTO)%XAVG_TS 00466 XAVG_TSRAD=>DIAG_ISBA_MODEL(KTO)%XAVG_TSRAD 00467 XAVG_T2M=>DIAG_ISBA_MODEL(KTO)%XAVG_T2M 00468 XAVG_T2M_MIN=>DIAG_ISBA_MODEL(KTO)%XAVG_T2M_MIN 00469 XAVG_T2M_MAX=>DIAG_ISBA_MODEL(KTO)%XAVG_T2M_MAX 00470 XAVG_Q2M=>DIAG_ISBA_MODEL(KTO)%XAVG_Q2M 00471 XAVG_HU2M=>DIAG_ISBA_MODEL(KTO)%XAVG_HU2M 00472 XAVG_HU2M_MIN=>DIAG_ISBA_MODEL(KTO)%XAVG_HU2M_MIN 00473 XAVG_HU2M_MAX=>DIAG_ISBA_MODEL(KTO)%XAVG_HU2M_MAX 00474 XAVG_QS=>DIAG_ISBA_MODEL(KTO)%XAVG_QS 00475 XAVG_ZON10M=>DIAG_ISBA_MODEL(KTO)%XAVG_ZON10M 00476 XAVG_MER10M=>DIAG_ISBA_MODEL(KTO)%XAVG_MER10M 00477 XAVG_WIND10M=>DIAG_ISBA_MODEL(KTO)%XAVG_WIND10M 00478 XAVG_WIND10M_MAX=>DIAG_ISBA_MODEL(KTO)%XAVG_WIND10M_MAX 00479 XAVG_SFCO2=>DIAG_ISBA_MODEL(KTO)%XAVG_SFCO2 00480 XAVG_LWD=>DIAG_ISBA_MODEL(KTO)%XAVG_LWD 00481 XAVG_LWU=>DIAG_ISBA_MODEL(KTO)%XAVG_LWU 00482 XAVG_SWD=>DIAG_ISBA_MODEL(KTO)%XAVG_SWD 00483 XAVG_SWU=>DIAG_ISBA_MODEL(KTO)%XAVG_SWU 00484 XAVG_SWBD=>DIAG_ISBA_MODEL(KTO)%XAVG_SWBD 00485 XAVG_SWBU=>DIAG_ISBA_MODEL(KTO)%XAVG_SWBU 00486 XAVG_FMU=>DIAG_ISBA_MODEL(KTO)%XAVG_FMU 00487 XAVG_FMV=>DIAG_ISBA_MODEL(KTO)%XAVG_FMV 00488 XAVG_Z0=>DIAG_ISBA_MODEL(KTO)%XAVG_Z0 00489 XAVG_Z0H=>DIAG_ISBA_MODEL(KTO)%XAVG_Z0H 00490 XAVG_Z0EFF=>DIAG_ISBA_MODEL(KTO)%XAVG_Z0EFF 00491 XAVG_LWDC=>DIAG_ISBA_MODEL(KTO)%XAVG_LWDC 00492 XAVG_LWUC=>DIAG_ISBA_MODEL(KTO)%XAVG_LWUC 00493 XAVG_SWDC=>DIAG_ISBA_MODEL(KTO)%XAVG_SWDC 00494 XAVG_SWUC=>DIAG_ISBA_MODEL(KTO)%XAVG_SWUC 00495 XAVG_FMUC=>DIAG_ISBA_MODEL(KTO)%XAVG_FMUC 00496 XAVG_FMVC=>DIAG_ISBA_MODEL(KTO)%XAVG_FMVC 00497 IF (LHOOK) CALL DR_HOOK('MODD_DIAG_ISBA_N:DIAG_ISBA_GOTO_MODEL',1,ZHOOK_HANDLE) 00498 00499 00500 END SUBROUTINE DIAG_ISBA_GOTO_MODEL 00501 00502 SUBROUTINE DIAG_ISBA_ALLOC(KMODEL) 00503 INTEGER, INTENT(IN) :: KMODEL 00504 INTEGER :: J 00505 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00506 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_ISBA_N:DIAG_ISBA_ALLOC",0,ZHOOK_HANDLE) 00507 ALLOCATE(DIAG_ISBA_MODEL(KMODEL)) 00508 DO J=1,KMODEL 00509 NULLIFY(DIAG_ISBA_MODEL(J)%XRI) 00510 NULLIFY(DIAG_ISBA_MODEL(J)%XCD) 00511 NULLIFY(DIAG_ISBA_MODEL(J)%XCH) 00512 NULLIFY(DIAG_ISBA_MODEL(J)%XCE) 00513 NULLIFY(DIAG_ISBA_MODEL(J)%XRN) 00514 NULLIFY(DIAG_ISBA_MODEL(J)%XH) 00515 NULLIFY(DIAG_ISBA_MODEL(J)%XLE) 00516 NULLIFY(DIAG_ISBA_MODEL(J)%XLEI) 00517 NULLIFY(DIAG_ISBA_MODEL(J)%XGFLUX) 00518 NULLIFY(DIAG_ISBA_MODEL(J)%XTS) 00519 NULLIFY(DIAG_ISBA_MODEL(J)%XTSRAD) 00520 NULLIFY(DIAG_ISBA_MODEL(J)%XT2M) 00521 NULLIFY(DIAG_ISBA_MODEL(J)%XQ2M) 00522 NULLIFY(DIAG_ISBA_MODEL(J)%XHU2M) 00523 NULLIFY(DIAG_ISBA_MODEL(J)%XQS) 00524 NULLIFY(DIAG_ISBA_MODEL(J)%XZON10M) 00525 NULLIFY(DIAG_ISBA_MODEL(J)%XMER10M) 00526 NULLIFY(DIAG_ISBA_MODEL(J)%XWIND10M) 00527 NULLIFY(DIAG_ISBA_MODEL(J)%XLWD) 00528 NULLIFY(DIAG_ISBA_MODEL(J)%XLWU) 00529 NULLIFY(DIAG_ISBA_MODEL(J)%XSWD) 00530 NULLIFY(DIAG_ISBA_MODEL(J)%XSWU) 00531 NULLIFY(DIAG_ISBA_MODEL(J)%XSWBD) 00532 NULLIFY(DIAG_ISBA_MODEL(J)%XSWBU) 00533 NULLIFY(DIAG_ISBA_MODEL(J)%XFMU) 00534 NULLIFY(DIAG_ISBA_MODEL(J)%XFMV) 00535 NULLIFY(DIAG_ISBA_MODEL(J)%XSWDC) 00536 NULLIFY(DIAG_ISBA_MODEL(J)%XSWUC) 00537 NULLIFY(DIAG_ISBA_MODEL(J)%XLWDC) 00538 NULLIFY(DIAG_ISBA_MODEL(J)%XLWUC) 00539 NULLIFY(DIAG_ISBA_MODEL(J)%XFMUC) 00540 NULLIFY(DIAG_ISBA_MODEL(J)%XFMVC) 00541 NULLIFY(DIAG_ISBA_MODEL(J)%XZ0_WITH_SNOW) 00542 NULLIFY(DIAG_ISBA_MODEL(J)%XZ0H_WITH_SNOW) 00543 NULLIFY(DIAG_ISBA_MODEL(J)%XZ0EFF) 00544 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_RI) 00545 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_CD) 00546 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_CH) 00547 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_CE) 00548 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_RN) 00549 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_H) 00550 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_LE) 00551 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_LEI) 00552 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_GFLUX) 00553 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_TS) 00554 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_TSRAD) 00555 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_T2M) 00556 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_T2M_MIN) 00557 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_T2M_MAX) 00558 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_Q2M) 00559 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_HU2M) 00560 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_HU2M_MIN) 00561 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_HU2M_MAX) 00562 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_QS) 00563 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_ZON10M) 00564 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_MER10M) 00565 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_WIND10M) 00566 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_WIND10M_MAX) 00567 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_SFCO2) 00568 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_LWD) 00569 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_LWU) 00570 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_SWD) 00571 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_SWU) 00572 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_SWBD) 00573 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_SWBU) 00574 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_FMU) 00575 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_FMV) 00576 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_LWDC) 00577 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_LWUC) 00578 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_SWDC) 00579 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_SWUC) 00580 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_FMUC) 00581 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_FMVC) 00582 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_Z0) 00583 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_Z0H) 00584 NULLIFY(DIAG_ISBA_MODEL(J)%XAVG_Z0EFF) 00585 ENDDO 00586 DIAG_ISBA_MODEL(:)%XDIAG_TSTEP=0. 00587 DIAG_ISBA_MODEL(:)%N2M=0 00588 DIAG_ISBA_MODEL(:)%L2M_MIN_ZS=.FALSE. 00589 DIAG_ISBA_MODEL(:)%LSURF_BUDGET=.FALSE. 00590 DIAG_ISBA_MODEL(:)%LRAD_BUDGET=.FALSE. 00591 DIAG_ISBA_MODEL(:)%LCOEF=.FALSE. 00592 DIAG_ISBA_MODEL(:)%LSURF_VARS=.FALSE. 00593 DIAG_ISBA_MODEL(:)%LPGD=.FALSE. 00594 DIAG_ISBA_MODEL(:)%LPATCH_BUDGET=.FALSE. 00595 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_ISBA_N:DIAG_ISBA_ALLOC",1,ZHOOK_HANDLE) 00596 END SUBROUTINE DIAG_ISBA_ALLOC 00597 00598 SUBROUTINE DIAG_ISBA_DEALLO 00599 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00600 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_ISBA_N:DIAG_ISBA_DEALLO",0,ZHOOK_HANDLE) 00601 IF (ALLOCATED(DIAG_ISBA_MODEL)) DEALLOCATE(DIAG_ISBA_MODEL) 00602 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_ISBA_N:DIAG_ISBA_DEALLO",1,ZHOOK_HANDLE) 00603 END SUBROUTINE DIAG_ISBA_DEALLO 00604 00605 END MODULE MODD_DIAG_ISBA_n