SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/modd_diag_watfluxn.F90
Go to the documentation of this file.
00001 !     ######################
00002       MODULE MODD_DIAG_WATFLUX_n
00003 !     ######################
00004 !
00005 !!****  *MODD_DIAG_WATFLUX - declaration of diagnostics for WATFLUX 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_WATFLUX_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   LOGICAL :: LCOEF        ! flag for transfer coefficients
00048   LOGICAL :: LSURF_VARS   ! flag for surface variables
00049   LOGICAL :: LSURF_BUDGETC       ! flag for surface cumulated energy budget
00050   LOGICAL :: LRESET_BUDGETC      ! flag for surface cumulated energy budget  
00051 !
00052 !* averaged variables
00053 !
00054   REAL, POINTER, DIMENSION(:)   :: XRI      ! Bulk-Richardson number           (-)
00055   REAL, POINTER, DIMENSION(:)   :: XCD      ! drag coefficient for wind        (W/s2)
00056   REAL, POINTER, DIMENSION(:)   :: XCH      ! drag coefficient for heat        (W/s)
00057   REAL, POINTER, DIMENSION(:)   :: XCE      ! drag coefficient for vapor       (W/s/K)
00058   REAL, POINTER, DIMENSION(:)   :: XZ0      ! roughness length for momentum    (m)
00059   REAL, POINTER, DIMENSION(:)   :: XZ0H     ! roughness length for heat        (m)      
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(:)   :: XT2M     ! air temperature at 2 meters      (K)
00066   REAL, POINTER, DIMENSION(:)   :: XT2M_MIN ! Minimum air temperature at 2 meters      (K)
00067   REAL, POINTER, DIMENSION(:)   :: XT2M_MAX ! Maximum air temperature at 2 meters      (K)
00068   REAL, POINTER, DIMENSION(:)   :: XQ2M     ! air humidity at 2 meters         (kg/kg)
00069   REAL, POINTER, DIMENSION(:)   :: XHU2M    ! air relative humidity at 2 meters(-)
00070   REAL, POINTER, DIMENSION(:)   :: XHU2M_MIN! Minimum relative humidity at 2 meters    (-)
00071   REAL, POINTER, DIMENSION(:)   :: XHU2M_MAX! Maximum relative humidity at 2 meters    (-)
00072   REAL, POINTER, DIMENSION(:)   :: XQS      ! air humidity at surface          (kg/kg)
00073   REAL, POINTER, DIMENSION(:)   :: XZON10M  ! zonal wind at 10 meters          (m/s)
00074   REAL, POINTER, DIMENSION(:)   :: XMER10M  ! meridian wind at 10 meters       (m/s)
00075   REAL, POINTER, DIMENSION(:)   :: XWIND10M ! wind at 10 meters                (m/s)
00076   REAL, POINTER, DIMENSION(:)   :: XWIND10M_MAX! Maximum wind at 10 meters     (m/s)
00077   REAL, POINTER, DIMENSION(:)   :: XLWD     ! downward long wave radiation     (W/m2)
00078   REAL, POINTER, DIMENSION(:)   :: XLWU     ! upward long wave radiation       (W/m2)
00079   REAL, POINTER, DIMENSION(:)   :: XSWD     ! downward short wave radiation    (W/m2)
00080   REAL, POINTER, DIMENSION(:)   :: XSWU     ! upward short wave radiation      (W/m2)
00081   REAL, POINTER, DIMENSION(:,:) :: XSWBD    ! downward short wave radiation by spectral band   (W/m2)
00082   REAL, POINTER, DIMENSION(:,:) :: XSWBU    ! upward short wave radiation by spectral band (W/m2)
00083   REAL, POINTER, DIMENSION(:)   :: XFMU     ! horizontal momentum flux zonal   (kg/ms2)
00084   REAL, POINTER, DIMENSION(:)   :: XFMV     ! horizontal momentum flux meridian (kg/ms2)
00085   REAL, POINTER, DIMENSION(:)   :: XDIAG_TS ! water surface temperature (K)
00086 !
00087 !* cumulated averaged variables
00088 !
00089   REAL, POINTER, DIMENSION(:)   :: XRNC     ! net radiation at surface         (J/m2)
00090   REAL, POINTER, DIMENSION(:)   :: XHC      ! sensible heat flux               (J/m2)
00091   REAL, POINTER, DIMENSION(:)   :: XLEC     ! total latent heat flux           (J/m2) 
00092   REAL, POINTER, DIMENSION(:)   :: XLEIC    ! sublimation latent heat flux     (J/m2) 
00093   REAL, POINTER, DIMENSION(:)   :: XGFLUXC  ! net soil-vegetation flux         (J/m2)
00094   REAL, POINTER, DIMENSION(:)   :: XLWDC    ! downward long wave radiation     (J/m2)
00095   REAL, POINTER, DIMENSION(:)   :: XLWUC    ! upward long wave radiation       (J/m2)
00096   REAL, POINTER, DIMENSION(:)   :: XSWDC    ! downward short wave radiation    (J/m2)
00097   REAL, POINTER, DIMENSION(:)   :: XSWUC    ! upward short wave radiation      (J/m2)
00098   REAL, POINTER, DIMENSION(:)   :: XFMUC    ! horizontal momentum flux zonal    (kg/ms)
00099   REAL, POINTER, DIMENSION(:)   :: XFMVC    ! horizontal momentum flux meridian (kg/ms)
00100 !  
00101 !------------------------------------------------------------------------------
00102 !
00103 
00104 END TYPE DIAG_WATFLUX_t
00105 
00106 TYPE(DIAG_WATFLUX_t), ALLOCATABLE, TARGET, SAVE :: DIAG_WATFLUX_MODEL(:)
00107 
00108 REAL, POINTER :: XDIAG_TSTEP=>NULL()
00109 !$OMP THREADPRIVATE(XDIAG_TSTEP)
00110 INTEGER, POINTER :: N2M=>NULL()
00111 !$OMP THREADPRIVATE(N2M)
00112 LOGICAL, POINTER :: L2M_MIN_ZS=>NULL()
00113 !$OMP THREADPRIVATE(L2M_MIN_ZS)
00114 LOGICAL, POINTER :: LSURF_BUDGET=>NULL()
00115 !$OMP THREADPRIVATE(LSURF_BUDGET)
00116 LOGICAL, POINTER :: LRAD_BUDGET=>NULL()
00117 !$OMP THREADPRIVATE(LRAD_BUDGET)
00118 LOGICAL, POINTER :: LCOEF=>NULL()
00119 !$OMP THREADPRIVATE(LCOEF)
00120 LOGICAL, POINTER :: LSURF_VARS=>NULL()
00121 !$OMP THREADPRIVATE(LSURF_VARS)
00122 LOGICAL, POINTER :: LSURF_BUDGETC=>NULL()
00123 !$OMP THREADPRIVATE(LSURF_BUDGETC)
00124 LOGICAL, POINTER :: LRESET_BUDGETC=>NULL()
00125 !$OMP THREADPRIVATE(LRESET_BUDGETC)
00126 REAL, POINTER, DIMENSION(:)   :: XRI=>NULL()
00127 !$OMP THREADPRIVATE(XRI)
00128 REAL, POINTER, DIMENSION(:)   :: XCD=>NULL()
00129 !$OMP THREADPRIVATE(XCD)
00130 REAL, POINTER, DIMENSION(:)   :: XCH=>NULL()
00131 !$OMP THREADPRIVATE(XCH)
00132 REAL, POINTER, DIMENSION(:)   :: XCE=>NULL()
00133 !$OMP THREADPRIVATE(XCE)
00134 REAL, POINTER, DIMENSION(:)   :: XZ0=>NULL()
00135 !$OMP THREADPRIVATE(XZ0)
00136 REAL, POINTER, DIMENSION(:)   :: XZ0H=>NULL()
00137 !$OMP THREADPRIVATE(XZ0H)
00138 REAL, POINTER, DIMENSION(:)   :: XRN=>NULL()
00139 !$OMP THREADPRIVATE(XRN)
00140 REAL, POINTER, DIMENSION(:)   :: XH=>NULL()
00141 !$OMP THREADPRIVATE(XH)
00142 REAL, POINTER, DIMENSION(:)   :: XLE=>NULL()
00143 !$OMP THREADPRIVATE(XLE)
00144 REAL, POINTER, DIMENSION(:)   :: XLEI=>NULL()
00145 !$OMP THREADPRIVATE(XLEI)
00146 REAL, POINTER, DIMENSION(:)   :: XGFLUX=>NULL()
00147 !$OMP THREADPRIVATE(XGFLUX)
00148 REAL, POINTER, DIMENSION(:)   :: XT2M=>NULL()
00149 !$OMP THREADPRIVATE(XT2M)
00150 REAL, POINTER, DIMENSION(:)   :: XT2M_MIN=>NULL()
00151 !$OMP THREADPRIVATE(XT2M_MIN)
00152 REAL, POINTER, DIMENSION(:)   :: XT2M_MAX=>NULL()
00153 !$OMP THREADPRIVATE(XT2M_MAX)
00154 REAL, POINTER, DIMENSION(:)   :: XQ2M=>NULL()
00155 !$OMP THREADPRIVATE(XQ2M)
00156 REAL, POINTER, DIMENSION(:)   :: XHU2M=>NULL()
00157 !$OMP THREADPRIVATE(XHU2M)
00158 REAL, POINTER, DIMENSION(:)   :: XHU2M_MIN=>NULL()
00159 !$OMP THREADPRIVATE(XHU2M_MIN)
00160 REAL, POINTER, DIMENSION(:)   :: XHU2M_MAX=>NULL()
00161 !$OMP THREADPRIVATE(XHU2M_MAX)
00162 REAL, POINTER, DIMENSION(:)   :: XQS=>NULL()
00163 !$OMP THREADPRIVATE(XQS)
00164 REAL, POINTER, DIMENSION(:)   :: XZON10M=>NULL()
00165 !$OMP THREADPRIVATE(XZON10M)
00166 REAL, POINTER, DIMENSION(:)   :: XMER10M=>NULL()
00167 !$OMP THREADPRIVATE(XMER10M)
00168 REAL, POINTER, DIMENSION(:)   :: XWIND10M=>NULL()
00169 !$OMP THREADPRIVATE(XWIND10M)
00170 REAL, POINTER, DIMENSION(:)   :: XWIND10M_MAX=>NULL()
00171 !$OMP THREADPRIVATE(XWIND10M_MAX)
00172 REAL, POINTER, DIMENSION(:)   :: XLWD=>NULL()
00173 !$OMP THREADPRIVATE(XLWD)
00174 REAL, POINTER, DIMENSION(:)   :: XLWU=>NULL()
00175 !$OMP THREADPRIVATE(XLWU)
00176 REAL, POINTER, DIMENSION(:)   :: XSWD=>NULL()
00177 !$OMP THREADPRIVATE(XSWD)
00178 REAL, POINTER, DIMENSION(:)   :: XSWU=>NULL()
00179 !$OMP THREADPRIVATE(XSWU)
00180 REAL, POINTER, DIMENSION(:,:) :: XSWBD=>NULL()
00181 !$OMP THREADPRIVATE(XSWBD)
00182 REAL, POINTER, DIMENSION(:,:) :: XSWBU=>NULL()
00183 !$OMP THREADPRIVATE(XSWBU)
00184 REAL, POINTER, DIMENSION(:)   :: XFMU=>NULL()
00185 !$OMP THREADPRIVATE(XFMU)
00186 REAL, POINTER, DIMENSION(:)   :: XFMV=>NULL()
00187 !$OMP THREADPRIVATE(XFMV)
00188 REAL, POINTER, DIMENSION(:)   :: XRNC=>NULL()
00189 !$OMP THREADPRIVATE(XRNC)
00190 REAL, POINTER, DIMENSION(:)   :: XHC=>NULL()
00191 !$OMP THREADPRIVATE(XHC)
00192 REAL, POINTER, DIMENSION(:)   :: XLEC=>NULL()
00193 !$OMP THREADPRIVATE(XLEC)
00194 REAL, POINTER, DIMENSION(:)   :: XLEIC=>NULL()
00195 !$OMP THREADPRIVATE(XLEIC)
00196 REAL, POINTER, DIMENSION(:)   :: XGFLUXC=>NULL()
00197 !$OMP THREADPRIVATE(XGFLUXC)
00198 REAL, POINTER, DIMENSION(:)   :: XLWDC=>NULL()
00199 !$OMP THREADPRIVATE(XLWDC)
00200 REAL, POINTER, DIMENSION(:)   :: XLWUC=>NULL()
00201 !$OMP THREADPRIVATE(XLWUC)
00202 REAL, POINTER, DIMENSION(:)   :: XSWDC=>NULL()
00203 !$OMP THREADPRIVATE(XSWDC)
00204 REAL, POINTER, DIMENSION(:)   :: XSWUC=>NULL()
00205 !$OMP THREADPRIVATE(XSWUC)
00206 REAL, POINTER, DIMENSION(:)   :: XFMUC=>NULL()
00207 !$OMP THREADPRIVATE(XFMUC)
00208 REAL, POINTER, DIMENSION(:)   :: XFMVC=>NULL()
00209 !$OMP THREADPRIVATE(XFMVC)
00210 REAL, POINTER, DIMENSION(:)   :: XDIAG_TS=>NULL()
00211 !$OMP THREADPRIVATE(XDIAG_TS)
00212 
00213 CONTAINS
00214 
00215 SUBROUTINE DIAG_WATFLUX_GOTO_MODEL(KFROM, KTO, LKFROM)
00216 LOGICAL, INTENT(IN) :: LKFROM
00217 INTEGER, INTENT(IN) :: KFROM, KTO
00218 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00219 !
00220 ! Save current state for allocated arrays
00221 IF (LKFROM) THEN
00222 DIAG_WATFLUX_MODEL(KFROM)%XRI=>XRI
00223 DIAG_WATFLUX_MODEL(KFROM)%XCD=>XCD
00224 DIAG_WATFLUX_MODEL(KFROM)%XCH=>XCH
00225 DIAG_WATFLUX_MODEL(KFROM)%XCE=>XCE
00226 DIAG_WATFLUX_MODEL(KFROM)%XZ0=>XZ0
00227 DIAG_WATFLUX_MODEL(KFROM)%XZ0H=>XZ0H
00228 DIAG_WATFLUX_MODEL(KFROM)%XRN=>XRN
00229 DIAG_WATFLUX_MODEL(KFROM)%XH=>XH
00230 DIAG_WATFLUX_MODEL(KFROM)%XLE=>XLE
00231 DIAG_WATFLUX_MODEL(KFROM)%XLEI=>XLEI
00232 DIAG_WATFLUX_MODEL(KFROM)%XGFLUX=>XGFLUX
00233 DIAG_WATFLUX_MODEL(KFROM)%XT2M=>XT2M
00234 DIAG_WATFLUX_MODEL(KFROM)%XT2M_MIN=>XT2M_MIN
00235 DIAG_WATFLUX_MODEL(KFROM)%XT2M_MAX=>XT2M_MAX
00236 DIAG_WATFLUX_MODEL(KFROM)%XQ2M=>XQ2M
00237 DIAG_WATFLUX_MODEL(KFROM)%XHU2M=>XHU2M
00238 DIAG_WATFLUX_MODEL(KFROM)%XHU2M_MIN=>XHU2M_MIN
00239 DIAG_WATFLUX_MODEL(KFROM)%XHU2M_MAX=>XHU2M_MAX
00240 DIAG_WATFLUX_MODEL(KFROM)%XQS=>XQS
00241 DIAG_WATFLUX_MODEL(KFROM)%XZON10M=>XZON10M
00242 DIAG_WATFLUX_MODEL(KFROM)%XMER10M=>XMER10M
00243 DIAG_WATFLUX_MODEL(KFROM)%XWIND10M=>XWIND10M
00244 DIAG_WATFLUX_MODEL(KFROM)%XWIND10M_MAX=>XWIND10M_MAX
00245 DIAG_WATFLUX_MODEL(KFROM)%XLWD=>XLWD
00246 DIAG_WATFLUX_MODEL(KFROM)%XLWU=>XLWU
00247 DIAG_WATFLUX_MODEL(KFROM)%XSWD=>XSWD
00248 DIAG_WATFLUX_MODEL(KFROM)%XSWU=>XSWU
00249 DIAG_WATFLUX_MODEL(KFROM)%XSWBD=>XSWBD
00250 DIAG_WATFLUX_MODEL(KFROM)%XSWBU=>XSWBU
00251 DIAG_WATFLUX_MODEL(KFROM)%XFMU=>XFMU
00252 DIAG_WATFLUX_MODEL(KFROM)%XFMV=>XFMV
00253 DIAG_WATFLUX_MODEL(KFROM)%XRNC=>XRNC
00254 DIAG_WATFLUX_MODEL(KFROM)%XHC=>XHC
00255 DIAG_WATFLUX_MODEL(KFROM)%XLEC=>XLEC
00256 DIAG_WATFLUX_MODEL(KFROM)%XLEIC=>XLEIC
00257 DIAG_WATFLUX_MODEL(KFROM)%XGFLUXC=>XGFLUXC
00258 DIAG_WATFLUX_MODEL(KFROM)%XLWDC=>XLWDC
00259 DIAG_WATFLUX_MODEL(KFROM)%XLWUC=>XLWUC
00260 DIAG_WATFLUX_MODEL(KFROM)%XSWDC=>XSWDC
00261 DIAG_WATFLUX_MODEL(KFROM)%XSWUC=>XSWUC
00262 DIAG_WATFLUX_MODEL(KFROM)%XFMUC=>XFMUC
00263 DIAG_WATFLUX_MODEL(KFROM)%XFMVC=>XFMVC
00264 DIAG_WATFLUX_MODEL(KFROM)%XDIAG_TS=>XDIAG_TS
00265 ENDIF
00266 !
00267 ! Current model is set to model KTO
00268 IF (LHOOK) CALL DR_HOOK('MODD_DIAG_WATFLUX_N:DIAG_WATFLUX_GOTO_MODEL',0,ZHOOK_HANDLE)
00269 XDIAG_TSTEP=>DIAG_WATFLUX_MODEL(KTO)%XDIAG_TSTEP
00270 N2M=>DIAG_WATFLUX_MODEL(KTO)%N2M
00271 L2M_MIN_ZS=>DIAG_WATFLUX_MODEL(KTO)%L2M_MIN_ZS
00272 LSURF_BUDGET=>DIAG_WATFLUX_MODEL(KTO)%LSURF_BUDGET
00273 LRAD_BUDGET=>DIAG_WATFLUX_MODEL(KTO)%LRAD_BUDGET
00274 LCOEF=>DIAG_WATFLUX_MODEL(KTO)%LCOEF
00275 LSURF_VARS=>DIAG_WATFLUX_MODEL(KTO)%LSURF_VARS
00276 LSURF_BUDGETC=>DIAG_WATFLUX_MODEL(KTO)%LSURF_BUDGETC
00277 LRESET_BUDGETC=>DIAG_WATFLUX_MODEL(KTO)%LRESET_BUDGETC
00278 XRI=>DIAG_WATFLUX_MODEL(KTO)%XRI
00279 XCD=>DIAG_WATFLUX_MODEL(KTO)%XCD
00280 XCH=>DIAG_WATFLUX_MODEL(KTO)%XCH
00281 XCE=>DIAG_WATFLUX_MODEL(KTO)%XCE
00282 XZ0=>DIAG_WATFLUX_MODEL(KTO)%XZ0
00283 XZ0H=>DIAG_WATFLUX_MODEL(KTO)%XZ0H
00284 XRN=>DIAG_WATFLUX_MODEL(KTO)%XRN
00285 XH=>DIAG_WATFLUX_MODEL(KTO)%XH
00286 XLE=>DIAG_WATFLUX_MODEL(KTO)%XLE
00287 XLEI=>DIAG_WATFLUX_MODEL(KTO)%XLEI
00288 XGFLUX=>DIAG_WATFLUX_MODEL(KTO)%XGFLUX
00289 XT2M=>DIAG_WATFLUX_MODEL(KTO)%XT2M
00290 XT2M_MIN=>DIAG_WATFLUX_MODEL(KTO)%XT2M_MIN
00291 XT2M_MAX=>DIAG_WATFLUX_MODEL(KTO)%XT2M_MAX
00292 XQ2M=>DIAG_WATFLUX_MODEL(KTO)%XQ2M
00293 XHU2M=>DIAG_WATFLUX_MODEL(KTO)%XHU2M
00294 XHU2M_MIN=>DIAG_WATFLUX_MODEL(KTO)%XHU2M_MIN
00295 XHU2M_MAX=>DIAG_WATFLUX_MODEL(KTO)%XHU2M_MAX
00296 XQS=>DIAG_WATFLUX_MODEL(KTO)%XQS
00297 XZON10M=>DIAG_WATFLUX_MODEL(KTO)%XZON10M
00298 XMER10M=>DIAG_WATFLUX_MODEL(KTO)%XMER10M
00299 XWIND10M=>DIAG_WATFLUX_MODEL(KTO)%XWIND10M
00300 XWIND10M_MAX=>DIAG_WATFLUX_MODEL(KTO)%XWIND10M_MAX
00301 XLWD=>DIAG_WATFLUX_MODEL(KTO)%XLWD
00302 XLWU=>DIAG_WATFLUX_MODEL(KTO)%XLWU
00303 XSWD=>DIAG_WATFLUX_MODEL(KTO)%XSWD
00304 XSWU=>DIAG_WATFLUX_MODEL(KTO)%XSWU
00305 XSWBD=>DIAG_WATFLUX_MODEL(KTO)%XSWBD
00306 XSWBU=>DIAG_WATFLUX_MODEL(KTO)%XSWBU
00307 XFMU=>DIAG_WATFLUX_MODEL(KTO)%XFMU
00308 XFMV=>DIAG_WATFLUX_MODEL(KTO)%XFMV
00309 XRNC=>DIAG_WATFLUX_MODEL(KTO)%XRNC
00310 XHC=>DIAG_WATFLUX_MODEL(KTO)%XHC
00311 XLEC=>DIAG_WATFLUX_MODEL(KTO)%XLEC
00312 XLEIC=>DIAG_WATFLUX_MODEL(KTO)%XLEIC
00313 XGFLUXC=>DIAG_WATFLUX_MODEL(KTO)%XGFLUXC
00314 XLWDC=>DIAG_WATFLUX_MODEL(KTO)%XLWDC
00315 XLWUC=>DIAG_WATFLUX_MODEL(KTO)%XLWUC
00316 XSWDC=>DIAG_WATFLUX_MODEL(KTO)%XSWDC
00317 XSWUC=>DIAG_WATFLUX_MODEL(KTO)%XSWUC
00318 XFMUC=>DIAG_WATFLUX_MODEL(KTO)%XFMUC
00319 XFMVC=>DIAG_WATFLUX_MODEL(KTO)%XFMVC
00320 XDIAG_TS=>DIAG_WATFLUX_MODEL(KTO)%XDIAG_TS
00321 IF (LHOOK) CALL DR_HOOK('MODD_DIAG_WATFLUX_N:DIAG_WATFLUX_GOTO_MODEL',1,ZHOOK_HANDLE)
00322 
00323 END SUBROUTINE DIAG_WATFLUX_GOTO_MODEL
00324 
00325 SUBROUTINE DIAG_WATFLUX_ALLOC(KMODEL)
00326 INTEGER, INTENT(IN) :: KMODEL
00327 INTEGER :: J
00328 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00329 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_WATFLUX_N:DIAG_WATFLUX_ALLOC",0,ZHOOK_HANDLE)
00330 ALLOCATE(DIAG_WATFLUX_MODEL(KMODEL))
00331 DO J=1,KMODEL
00332   NULLIFY(DIAG_WATFLUX_MODEL(J)%XRI)
00333   NULLIFY(DIAG_WATFLUX_MODEL(J)%XCD)
00334   NULLIFY(DIAG_WATFLUX_MODEL(J)%XCH)
00335   NULLIFY(DIAG_WATFLUX_MODEL(J)%XCE)
00336   NULLIFY(DIAG_WATFLUX_MODEL(J)%XZ0)
00337   NULLIFY(DIAG_WATFLUX_MODEL(J)%XZ0H)
00338   NULLIFY(DIAG_WATFLUX_MODEL(J)%XRN)
00339   NULLIFY(DIAG_WATFLUX_MODEL(J)%XH)
00340   NULLIFY(DIAG_WATFLUX_MODEL(J)%XLE)
00341   NULLIFY(DIAG_WATFLUX_MODEL(J)%XLEI)
00342   NULLIFY(DIAG_WATFLUX_MODEL(J)%XGFLUX)
00343   NULLIFY(DIAG_WATFLUX_MODEL(J)%XT2M)
00344   NULLIFY(DIAG_WATFLUX_MODEL(J)%XT2M_MIN)
00345   NULLIFY(DIAG_WATFLUX_MODEL(J)%XT2M_MAX)
00346   NULLIFY(DIAG_WATFLUX_MODEL(J)%XQ2M)
00347   NULLIFY(DIAG_WATFLUX_MODEL(J)%XHU2M)
00348   NULLIFY(DIAG_WATFLUX_MODEL(J)%XHU2M_MIN)
00349   NULLIFY(DIAG_WATFLUX_MODEL(J)%XHU2M_MAX)
00350   NULLIFY(DIAG_WATFLUX_MODEL(J)%XQS)
00351   NULLIFY(DIAG_WATFLUX_MODEL(J)%XZON10M)
00352   NULLIFY(DIAG_WATFLUX_MODEL(J)%XMER10M)
00353   NULLIFY(DIAG_WATFLUX_MODEL(J)%XWIND10M)
00354   NULLIFY(DIAG_WATFLUX_MODEL(J)%XWIND10M_MAX)
00355   NULLIFY(DIAG_WATFLUX_MODEL(J)%XLWD)
00356   NULLIFY(DIAG_WATFLUX_MODEL(J)%XLWU)
00357   NULLIFY(DIAG_WATFLUX_MODEL(J)%XSWD)
00358   NULLIFY(DIAG_WATFLUX_MODEL(J)%XSWU)
00359   NULLIFY(DIAG_WATFLUX_MODEL(J)%XSWBD)
00360   NULLIFY(DIAG_WATFLUX_MODEL(J)%XSWBU)
00361   NULLIFY(DIAG_WATFLUX_MODEL(J)%XFMU)
00362   NULLIFY(DIAG_WATFLUX_MODEL(J)%XFMV)
00363   NULLIFY(DIAG_WATFLUX_MODEL(J)%XDIAG_TS)
00364   NULLIFY(DIAG_WATFLUX_MODEL(J)%XRNC)
00365   NULLIFY(DIAG_WATFLUX_MODEL(J)%XHC)
00366   NULLIFY(DIAG_WATFLUX_MODEL(J)%XLEC)
00367   NULLIFY(DIAG_WATFLUX_MODEL(J)%XLEIC)
00368   NULLIFY(DIAG_WATFLUX_MODEL(J)%XGFLUXC)
00369   NULLIFY(DIAG_WATFLUX_MODEL(J)%XLWDC)
00370   NULLIFY(DIAG_WATFLUX_MODEL(J)%XLWUC)
00371   NULLIFY(DIAG_WATFLUX_MODEL(J)%XSWDC)
00372   NULLIFY(DIAG_WATFLUX_MODEL(J)%XSWUC)
00373   NULLIFY(DIAG_WATFLUX_MODEL(J)%XFMUC)
00374   NULLIFY(DIAG_WATFLUX_MODEL(J)%XFMVC)
00375 ENDDO
00376 DIAG_WATFLUX_MODEL(:)%XDIAG_TSTEP=0.
00377 DIAG_WATFLUX_MODEL(:)%N2M=0
00378 DIAG_WATFLUX_MODEL(:)%L2M_MIN_ZS=.FALSE.
00379 DIAG_WATFLUX_MODEL(:)%LSURF_BUDGET=.FALSE.
00380 DIAG_WATFLUX_MODEL(:)%LRAD_BUDGET=.FALSE.
00381 DIAG_WATFLUX_MODEL(:)%LCOEF=.FALSE.
00382 DIAG_WATFLUX_MODEL(:)%LSURF_VARS=.FALSE.
00383 DIAG_WATFLUX_MODEL(:)%LSURF_BUDGETC=.FALSE.
00384 DIAG_WATFLUX_MODEL(:)%LRESET_BUDGETC=.FALSE.
00385 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_WATFLUX_N:DIAG_WATFLUX_ALLOC",1,ZHOOK_HANDLE)
00386 END SUBROUTINE DIAG_WATFLUX_ALLOC
00387 
00388 SUBROUTINE DIAG_WATFLUX_DEALLO
00389 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00390 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_WATFLUX_N:DIAG_WATFLUX_DEALLO",0,ZHOOK_HANDLE)
00391 IF (ALLOCATED(DIAG_WATFLUX_MODEL)) DEALLOCATE(DIAG_WATFLUX_MODEL)
00392 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_WATFLUX_N:DIAG_WATFLUX_DEALLO",1,ZHOOK_HANDLE)
00393 END SUBROUTINE DIAG_WATFLUX_DEALLO
00394 
00395 END MODULE MODD_DIAG_WATFLUX_n