SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/modd_diag_isban.F90
Go to the documentation of this file.
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