SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/modd_diag_misc_isban.F90
Go to the documentation of this file.
00001 !     ############################
00002       MODULE MODD_DIAG_MISC_ISBA_n
00003 !     ############################
00004 !
00005 !!****  *MODD_DIAG_MISC_ISBA - declaration of packed surface parameters for ISBA scheme
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !!
00011 !!**  IMPLICIT ARGUMENTS
00012 !!    ------------------
00013 !!      None 
00014 !!
00015 !!    REFERENCE
00016 !!    ---------
00017 !!
00018 !!    AUTHOR
00019 !!    ------
00020 !!      P. Le Moigne   *Meteo France*
00021 !!
00022 !!    MODIFICATIONS
00023 !!    -------------
00024 !!      Original       07/10/04
00025 !!      A.L. Gibelin 04/2009 : Add respiration diagnostics
00026 !!      A.L. Gibelin 05/2009 : Add carbon spinup
00027 !!      A.L. Gibelin 07/2009 : Suppress RDK and transform GPP as a diagnostic
00028 !!       B. Decharme 05/2012 : Carbon fluxes in diag_evap
00029 !!       B. Decharme 07/2012 : New diag for DIF under LSURF_MISC_DIF key
00030 !!                               F2 stress
00031 !!                               Root zone swi, wg and wgi
00032 !!                               swi, wg and wgi comparable to ISBA-FR-DG2 and DG3 layers
00033 !!       B. Decharme 10/2012 : New diag for DIF 
00034 !!                               active layer thickness over permafrost area
00035 !!                               frozen layer thickness over non-permafrost area
00036 !!
00037 !-------------------------------------------------------------------------------
00038 !
00039 !*       0.   DECLARATIONS
00040 !             ------------
00041 !
00042 !
00043 !
00044 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00045 USE PARKIND1  ,ONLY : JPRB
00046 !
00047 IMPLICIT NONE
00048 
00049 TYPE DIAG_MISC_ISBA_t
00050 !------------------------------------------------------------------------------
00051 !
00052   LOGICAL :: LSURF_MISC_BUDGET   ! flag for miscellaneous terms of isba scheme
00053   LOGICAL :: LSURF_DIAG_ALBEDO   ! flag to write out diagnostic albedo
00054   LOGICAL :: LSURF_MISC_DIF      ! flag for miscellaneous terms of isba-dif scheme
00055 !
00056 !* variables for each patch
00057 !
00058   REAL, POINTER, DIMENSION(:,:) :: XHV           ! Halstead coefficient
00059 !      
00060   REAL, POINTER, DIMENSION(:,:,:) :: XSWI        ! Soil wetness index
00061   REAL, POINTER, DIMENSION(:,:,:) :: XTSWI       ! Total soil wetness index
00062 !     
00063   REAL, POINTER, DIMENSION(:,:)   :: XALT        ! Active layer thickness in permafrost area
00064   REAL, POINTER, DIMENSION(:,:)   :: XFLT        ! Frozen layer thickness in non-permmafrost area
00065 !
00066   REAL, POINTER, DIMENSION(:,:,:) :: XSNOWLIQ    ! snow liquid water profile (ISBA-ES:3-L)
00067   REAL, POINTER, DIMENSION(:,:,:) :: XSNOWTEMP   ! snow temperature profile  (ISBA-ES:3-L)
00068 !     
00069   REAL, POINTER, DIMENSION(:,:) :: XTWSNOW       ! Total snow reservoir
00070   REAL, POINTER, DIMENSION(:,:) :: XTDSNOW       ! Total snow height
00071   REAL, POINTER, DIMENSION(:,:) :: XTTSNOW       ! Total snow temperature
00072 !
00073   REAL, POINTER, DIMENSION(:,:) :: XDPSNG         ! Snow fraction over ground, diag at time t
00074   REAL, POINTER, DIMENSION(:,:) :: XDPSNV         ! Snow fraction over vegetation, diag at time t
00075   REAL, POINTER, DIMENSION(:,:) :: XDPSN          ! Total Snow fraction, diag at time t
00076   REAL, POINTER, DIMENSION(:,:) :: XALBT          ! Total Albedo
00077 !    
00078   REAL, POINTER, DIMENSION(:,:) :: XDFSAT         ! Topmodel/dt92 saturated fraction
00079 !
00080   REAL, POINTER, DIMENSION(:,:) :: XDFFG          ! Flood fraction over ground, diag at time t
00081   REAL, POINTER, DIMENSION(:,:) :: XDFFV          ! Flood fraction over vegetation, diag at time t
00082   REAL, POINTER, DIMENSION(:,:) :: XDFF           ! Total Flood fraction, diag at time t
00083 !
00084   REAL, POINTER, DIMENSION(:,:) :: XSEUIL        ! Irrigation threshold
00085 !
00086   REAL, POINTER, DIMENSION(:,:) :: XFAPAR        ! Fapar of vegetation
00087   REAL, POINTER, DIMENSION(:,:) :: XFAPIR        ! Fapir of vegetation
00088   REAL, POINTER, DIMENSION(:,:) :: XDFAPARC      ! Fapar of vegetation (cumul)
00089   REAL, POINTER, DIMENSION(:,:) :: XDFAPIRC      ! Fapir of vegetation (cumul)
00090   REAL, POINTER, DIMENSION(:,:) :: XFAPAR_BS     ! Fapar of bare soil
00091   REAL, POINTER, DIMENSION(:,:) :: XFAPIR_BS     ! Fapir of bare soil
00092   REAL, POINTER, DIMENSION(:,:) :: XDLAI_EFFC    ! Effective LAI (cumul)
00093 !  
00094 !* average variables
00095 !
00096   REAL, POINTER, DIMENSION(:)   :: XAVG_HV       ! Halstead coefficient
00097   REAL, POINTER, DIMENSION(:)   :: XAVG_LAI      ! leaf average index
00098 !     
00099   REAL, POINTER, DIMENSION(:,:)   :: XAVG_SWI      ! Liquid Soil wetness index
00100   REAL, POINTER, DIMENSION(:,:)   :: XAVG_TSWI     ! Total soil wetness index
00101   REAL, POINTER, DIMENSION(:)     :: XSOIL_TSWI    ! Soil wetness index
00102   REAL, POINTER, DIMENSION(:)     :: XSOIL_TWG     ! Soil water content (liquid+ice)
00103   REAL, POINTER, DIMENSION(:)     :: XSOIL_TWGI    ! Soil ice content
00104 !     
00105   REAL, POINTER, DIMENSION(:)   :: XAVG_ALT      ! Active layer thickness in permafrost area
00106   REAL, POINTER, DIMENSION(:)   :: XAVG_FLT      ! Frozen layer thickness in non-permmafrost area
00107 !
00108   REAL, POINTER, DIMENSION(:)   :: XAVG_TWSNOW   ! Snow total reservoir
00109   REAL, POINTER, DIMENSION(:)   :: XAVG_TDSNOW   ! Snow total height
00110   REAL, POINTER, DIMENSION(:)   :: XAVG_TTSNOW   ! Snow total temperature
00111 !
00112   REAL, POINTER, DIMENSION(:)   :: XAVG_PSNG     ! Snow fraction over ground
00113   REAL, POINTER, DIMENSION(:)   :: XAVG_PSNV     ! Snow fraction over vegetation
00114   REAL, POINTER, DIMENSION(:)   :: XAVG_PSN      ! Total Snow fraction
00115   REAL, POINTER, DIMENSION(:)   :: XAVG_ALBT     ! Total Albedo
00116 !    
00117   REAL, POINTER, DIMENSION(:) :: XAVG_FSAT       ! Topmodel/dt92 saturated fraction
00118 !      
00119   REAL, POINTER, DIMENSION(:) :: XAVG_FFG        ! Flood fraction over ground
00120   REAL, POINTER, DIMENSION(:) :: XAVG_FFV        ! Flood fraction over vegetation
00121   REAL, POINTER, DIMENSION(:) :: XAVG_FF         ! Total Flood fraction  
00122 !
00123   REAL, POINTER, DIMENSION(:) :: XSURF_TSWI      ! Surface soil wetness index (DIF option)
00124   REAL, POINTER, DIMENSION(:) :: XSURF_TWG       ! Surface soil water content (liquid+ice) (DIF option)
00125   REAL, POINTER, DIMENSION(:) :: XSURF_TWGI      ! Surface soil ice content (DIF option)
00126   REAL, POINTER, DIMENSION(:) :: XROOT_TSWI      ! Root soil wetness index (DIF option)
00127   REAL, POINTER, DIMENSION(:) :: XROOT_TWG       ! Root soil water content (liquid+ice) (DIF option)
00128   REAL, POINTER, DIMENSION(:) :: XROOT_TWGI      ! Root soil ice content (DIF option)
00129   REAL, POINTER, DIMENSION(:) :: XFRD2_TSWI      ! ISBA-FR-DG2 comparable soil wetness index (DIF option)
00130   REAL, POINTER, DIMENSION(:) :: XFRD2_TWG       ! ISBA-FR-DG2 comparable soil water content (liquid+ice) (DIF option)
00131   REAL, POINTER, DIMENSION(:) :: XFRD2_TWGI      ! ISBA-FR-DG2 comparable soil ice content (DIF option)  
00132   REAL, POINTER, DIMENSION(:) :: XFRD3_TSWI      ! ISBA-FR-Deep comparable soil wetness index (DIF option)
00133   REAL, POINTER, DIMENSION(:) :: XFRD3_TWG       ! ISBA-FR-Deep comparable soil water content (liquid+ice) (DIF option)
00134   REAL, POINTER, DIMENSION(:) :: XFRD3_TWGI      ! ISBA-FR-Deep comparable soil ice content (DIF option)
00135 !
00136 !------------------------------------------------------------------------------
00137 !
00138 
00139 END TYPE DIAG_MISC_ISBA_t
00140 
00141 TYPE(DIAG_MISC_ISBA_t), ALLOCATABLE, TARGET, SAVE :: DIAG_MISC_ISBA_MODEL(:)
00142 
00143 LOGICAL, POINTER :: LSURF_MISC_BUDGET=>NULL()
00144 !$OMP THREADPRIVATE(LSURF_MISC_BUDGET)
00145 LOGICAL, POINTER :: LSURF_DIAG_ALBEDO=>NULL()
00146 !$OMP THREADPRIVATE(LSURF_DIAG_ALBEDO)
00147 LOGICAL, POINTER :: LSURF_MISC_DIF=>NULL()
00148 !$OMP THREADPRIVATE(LSURF_MISC_DIF)
00149 
00150 !      
00151 REAL, POINTER, DIMENSION(:,:) :: XHV=>NULL()
00152 !$OMP THREADPRIVATE(XHV)
00153 REAL, POINTER, DIMENSION(:,:) :: XDPSNG=>NULL()
00154 !$OMP THREADPRIVATE(XDPSNG)
00155 REAL, POINTER, DIMENSION(:,:) :: XDPSNV=>NULL()
00156 !$OMP THREADPRIVATE(XDPSNV)
00157 REAL, POINTER, DIMENSION(:,:) :: XDPSN=>NULL()
00158 !$OMP THREADPRIVATE(XDPSN)
00159 REAL, POINTER, DIMENSION(:,:) :: XSEUIL=>NULL()
00160 !$OMP THREADPRIVATE(XSEUIL)
00161 REAL, POINTER, DIMENSION(:,:) :: XFAPAR=>NULL()
00162 !$OMP THREADPRIVATE(XFAPAR)
00163 REAL, POINTER, DIMENSION(:,:) :: XFAPIR=>NULL()
00164 !$OMP THREADPRIVATE(XFAPIR)
00165 REAL, POINTER, DIMENSION(:,:) :: XDFAPARC=>NULL()
00166 !$OMP THREADPRIVATE(XDFAPARC)
00167 REAL, POINTER, DIMENSION(:,:) :: XDFAPIRC=>NULL()
00168 !$OMP THREADPRIVATE(XDFAPIRC)
00169 REAL, POINTER, DIMENSION(:,:) :: XFAPAR_BS=>NULL()
00170 !$OMP THREADPRIVATE(XFAPAR_BS)
00171 REAL, POINTER, DIMENSION(:,:) :: XFAPIR_BS=>NULL()
00172 !$OMP THREADPRIVATE(XFAPIR_BS)
00173 REAL, POINTER, DIMENSION(:,:) :: XDLAI_EFFC=>NULL()
00174 !$OMP THREADPRIVATE(XDLAI_EFFC)
00175 !
00176 REAL, POINTER, DIMENSION(:,:) :: XALBT=>NULL()
00177 !$OMP THREADPRIVATE(XALBT)
00178 REAL, POINTER, DIMENSION(:,:) :: XDFSAT=>NULL()
00179 !$OMP THREADPRIVATE(XDFSAT)
00180 REAL, POINTER, DIMENSION(:,:) :: XDFFG=>NULL()
00181 !$OMP THREADPRIVATE(XDFFG)
00182 REAL, POINTER, DIMENSION(:,:) :: XDFFV=>NULL()
00183 !$OMP THREADPRIVATE(XDFFV)
00184 REAL, POINTER, DIMENSION(:,:) :: XDFF=>NULL()
00185 !$OMP THREADPRIVATE(XDFF)
00186 !
00187 REAL, POINTER, DIMENSION(:,:,:) :: XSWI=>NULL()
00188 !$OMP THREADPRIVATE(XSWI)
00189 REAL, POINTER, DIMENSION(:,:,:) :: XTSWI=>NULL()
00190 !$OMP THREADPRIVATE(XTSWI)
00191 REAL, POINTER, DIMENSION(:,:)   :: XALT=>NULL()
00192 !$OMP THREADPRIVATE(XALT)
00193 REAL, POINTER, DIMENSION(:,:)   :: XFLT=>NULL()
00194 !$OMP THREADPRIVATE(XFLT)
00195 !
00196 REAL, POINTER, DIMENSION(:,:) :: XTWSNOW=>NULL()
00197 !$OMP THREADPRIVATE(XTWSNOW)
00198 REAL, POINTER, DIMENSION(:,:) :: XTDSNOW=>NULL()
00199 !$OMP THREADPRIVATE(XTDSNOW)
00200 REAL, POINTER, DIMENSION(:,:) :: XTTSNOW=>NULL()
00201 !$OMP THREADPRIVATE(XTTSNOW)
00202 !
00203 REAL, POINTER, DIMENSION(:,:,:) :: XSNOWLIQ=>NULL()
00204 !$OMP THREADPRIVATE(XSNOWLIQ)
00205 REAL, POINTER, DIMENSION(:,:,:) :: XSNOWTEMP=>NULL()
00206 !$OMP THREADPRIVATE(XSNOWTEMP)
00207 !
00208 REAL, POINTER, DIMENSION(:)   :: XAVG_HV=>NULL()
00209 !$OMP THREADPRIVATE(XAVG_HV)
00210 REAL, POINTER, DIMENSION(:)   :: XAVG_LAI=>NULL()
00211 !$OMP THREADPRIVATE(XAVG_LAI)
00212 REAL, POINTER, DIMENSION(:)   :: XAVG_PSNG=>NULL()
00213 !$OMP THREADPRIVATE(XAVG_PSNG)
00214 REAL, POINTER, DIMENSION(:)   :: XAVG_PSNV=>NULL()
00215 !$OMP THREADPRIVATE(XAVG_PSNV)
00216 REAL, POINTER, DIMENSION(:)   :: XAVG_PSN=>NULL()
00217 !$OMP THREADPRIVATE(XAVG_PSN)
00218 REAL, POINTER, DIMENSION(:)   :: XAVG_ALBT=>NULL()
00219 !$OMP THREADPRIVATE(XAVG_ALBT)
00220 REAL, POINTER, DIMENSION(:)   :: XAVG_FSAT=>NULL()
00221 !$OMP THREADPRIVATE(XAVG_FSAT)
00222 REAL, POINTER, DIMENSION(:)   :: XAVG_FFG=>NULL()
00223 !$OMP THREADPRIVATE(XAVG_FFG)
00224 REAL, POINTER, DIMENSION(:)   :: XAVG_FFV=>NULL()
00225 !$OMP THREADPRIVATE(XAVG_FFV)
00226 REAL, POINTER, DIMENSION(:)   :: XAVG_FF=>NULL()
00227 !$OMP THREADPRIVATE(XAVG_FF)
00228 !
00229 REAL, POINTER, DIMENSION(:,:)   :: XAVG_SWI=>NULL()
00230 !$OMP THREADPRIVATE(XAVG_SWI)
00231 REAL, POINTER, DIMENSION(:,:)   :: XAVG_TSWI=>NULL()
00232 !$OMP THREADPRIVATE(XAVG_TSWI)
00233 REAL, POINTER, DIMENSION(:)     :: XSOIL_TSWI=>NULL()
00234 !$OMP THREADPRIVATE(XSOIL_TSWI)
00235 REAL, POINTER, DIMENSION(:)     :: XSOIL_TWG=>NULL()
00236 !$OMP THREADPRIVATE(XSOIL_TWG)
00237 REAL, POINTER, DIMENSION(:)     :: XSOIL_TWGI=>NULL()
00238 !$OMP THREADPRIVATE(XSOIL_TWGI)
00239 REAL, POINTER, DIMENSION(:)     :: XAVG_ALT=>NULL()
00240 !$OMP THREADPRIVATE(XAVG_ALT)
00241 REAL, POINTER, DIMENSION(:)     :: XAVG_FLT=>NULL()
00242 !$OMP THREADPRIVATE(XAVG_FLT)
00243 !
00244 REAL, POINTER, DIMENSION(:) :: XAVG_TWSNOW=>NULL()
00245 !$OMP THREADPRIVATE(XAVG_TWSNOW)
00246 REAL, POINTER, DIMENSION(:) :: XAVG_TDSNOW=>NULL()
00247 !$OMP THREADPRIVATE(XAVG_TDSNOW)
00248 REAL, POINTER, DIMENSION(:) :: XAVG_TTSNOW=>NULL()
00249 !$OMP THREADPRIVATE(XAVG_TTSNOW)
00250 !
00251 REAL, POINTER, DIMENSION(:) :: XSURF_TSWI=>NULL()
00252 !$OMP THREADPRIVATE(XSURF_TSWI)
00253 REAL, POINTER, DIMENSION(:) :: XSURF_TWG =>NULL()
00254 !$OMP THREADPRIVATE(XSURF_TWG)
00255 REAL, POINTER, DIMENSION(:) :: XSURF_TWGI=>NULL()
00256 !$OMP THREADPRIVATE(XSURF_TWGI)
00257 REAL, POINTER, DIMENSION(:) :: XROOT_TSWI=>NULL()
00258 !$OMP THREADPRIVATE(XROOT_TSWI)
00259 REAL, POINTER, DIMENSION(:) :: XROOT_TWG =>NULL()
00260 !$OMP THREADPRIVATE(XROOT_TWG)
00261 REAL, POINTER, DIMENSION(:) :: XROOT_TWGI=>NULL()
00262 !$OMP THREADPRIVATE(XROOT_TWGI)
00263 REAL, POINTER, DIMENSION(:) :: XFRD2_TSWI=>NULL()
00264 !$OMP THREADPRIVATE(XFRD2_TSWI)
00265 REAL, POINTER, DIMENSION(:) :: XFRD2_TWG =>NULL()
00266 !$OMP THREADPRIVATE(XFRD2_TWG)
00267 REAL, POINTER, DIMENSION(:) :: XFRD2_TWGI=>NULL()
00268 !$OMP THREADPRIVATE(XFRD2_TWGI)
00269 REAL, POINTER, DIMENSION(:) :: XFRD3_TSWI=>NULL()
00270 !$OMP THREADPRIVATE(XFRD3_TSWI)
00271 REAL, POINTER, DIMENSION(:) :: XFRD3_TWG =>NULL()
00272 !$OMP THREADPRIVATE(XFRD3_TWG)
00273 REAL, POINTER, DIMENSION(:) :: XFRD3_TWGI=>NULL()
00274 !$OMP THREADPRIVATE(XFRD3_TWGI)
00275 !
00276 CONTAINS
00277 
00278 SUBROUTINE DIAG_MISC_ISBA_GOTO_MODEL(KFROM, KTO, LKFROM)
00279 LOGICAL, INTENT(IN) :: LKFROM
00280 INTEGER, INTENT(IN) :: KFROM, KTO
00281 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00282 !
00283 ! Save current state for allocated arrays
00284 IF (LKFROM) THEN
00285 DIAG_MISC_ISBA_MODEL(KFROM)%XHV=>XHV
00286 DIAG_MISC_ISBA_MODEL(KFROM)%XSWI=>XSWI
00287 DIAG_MISC_ISBA_MODEL(KFROM)%XTSWI=>XTSWI
00288 DIAG_MISC_ISBA_MODEL(KFROM)%XALT=>XALT
00289 DIAG_MISC_ISBA_MODEL(KFROM)%XFLT=>XFLT
00290 DIAG_MISC_ISBA_MODEL(KFROM)%XTWSNOW=>XTWSNOW
00291 DIAG_MISC_ISBA_MODEL(KFROM)%XTDSNOW=>XTDSNOW
00292 DIAG_MISC_ISBA_MODEL(KFROM)%XTTSNOW=>XTTSNOW
00293 DIAG_MISC_ISBA_MODEL(KFROM)%XSNOWLIQ=>XSNOWLIQ
00294 DIAG_MISC_ISBA_MODEL(KFROM)%XSNOWTEMP=>XSNOWTEMP
00295 DIAG_MISC_ISBA_MODEL(KFROM)%XDPSNG=>XDPSNG
00296 DIAG_MISC_ISBA_MODEL(KFROM)%XDPSNV=>XDPSNV
00297 DIAG_MISC_ISBA_MODEL(KFROM)%XDPSN=>XDPSN
00298 DIAG_MISC_ISBA_MODEL(KFROM)%XSEUIL=>XSEUIL
00299 DIAG_MISC_ISBA_MODEL(KFROM)%XFAPAR=>XFAPAR
00300 DIAG_MISC_ISBA_MODEL(KFROM)%XFAPIR=>XFAPIR
00301 DIAG_MISC_ISBA_MODEL(KFROM)%XDFAPARC=>XDFAPARC
00302 DIAG_MISC_ISBA_MODEL(KFROM)%XDFAPIRC=>XDFAPIRC
00303 DIAG_MISC_ISBA_MODEL(KFROM)%XFAPAR_BS=>XFAPAR_BS
00304 DIAG_MISC_ISBA_MODEL(KFROM)%XFAPIR_BS=>XFAPIR_BS
00305 DIAG_MISC_ISBA_MODEL(KFROM)%XDLAI_EFFC=>XDLAI_EFFC
00306 DIAG_MISC_ISBA_MODEL(KFROM)%XALBT=>XALBT
00307 DIAG_MISC_ISBA_MODEL(KFROM)%XDFSAT=>XDFSAT
00308 DIAG_MISC_ISBA_MODEL(KFROM)%XDFFG=>XDFFG
00309 DIAG_MISC_ISBA_MODEL(KFROM)%XDFFV=>XDFFV
00310 DIAG_MISC_ISBA_MODEL(KFROM)%XDFF=>XDFF
00311 !
00312 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_HV=>XAVG_HV
00313 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_LAI=>XAVG_LAI
00314 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_SWI=>XAVG_SWI
00315 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_TSWI=>XAVG_TSWI
00316 DIAG_MISC_ISBA_MODEL(KFROM)%XSOIL_TSWI=>XSOIL_TSWI
00317 DIAG_MISC_ISBA_MODEL(KFROM)%XSOIL_TWG=>XSOIL_TWG
00318 DIAG_MISC_ISBA_MODEL(KFROM)%XSOIL_TWGI=>XSOIL_TWGI
00319 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_ALT=>XAVG_ALT
00320 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_FLT=>XAVG_FLT
00321 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_TWSNOW=>XAVG_TWSNOW
00322 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_TDSNOW=>XAVG_TDSNOW
00323 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_TTSNOW=>XAVG_TTSNOW
00324 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_PSNG=>XAVG_PSNG
00325 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_PSNV=>XAVG_PSNV
00326 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_PSN=>XAVG_PSN
00327 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_ALBT=>XAVG_ALBT
00328 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_FSAT=>XAVG_FSAT
00329 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_FFG=>XAVG_FFG
00330 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_FFV=>XAVG_FFV
00331 DIAG_MISC_ISBA_MODEL(KFROM)%XAVG_FF=>XAVG_FF
00332 !
00333 DIAG_MISC_ISBA_MODEL(KFROM)%XSURF_TSWI=>XSURF_TSWI
00334 DIAG_MISC_ISBA_MODEL(KFROM)%XSURF_TWG=>XSURF_TWG
00335 DIAG_MISC_ISBA_MODEL(KFROM)%XSURF_TWGI=>XSURF_TWGI
00336 DIAG_MISC_ISBA_MODEL(KFROM)%XROOT_TSWI=>XROOT_TSWI
00337 DIAG_MISC_ISBA_MODEL(KFROM)%XROOT_TWG=>XROOT_TWG
00338 DIAG_MISC_ISBA_MODEL(KFROM)%XROOT_TWGI=>XROOT_TWGI
00339 DIAG_MISC_ISBA_MODEL(KFROM)%XFRD2_TSWI=>XFRD2_TSWI
00340 DIAG_MISC_ISBA_MODEL(KFROM)%XFRD2_TWG=>XFRD2_TWG
00341 DIAG_MISC_ISBA_MODEL(KFROM)%XFRD2_TWGI=>XFRD2_TWGI
00342 DIAG_MISC_ISBA_MODEL(KFROM)%XFRD3_TSWI=>XFRD3_TSWI
00343 DIAG_MISC_ISBA_MODEL(KFROM)%XFRD3_TWG=>XFRD3_TWG
00344 DIAG_MISC_ISBA_MODEL(KFROM)%XFRD3_TWGI=>XFRD3_TWGI
00345 !
00346 ENDIF
00347 !
00348 !
00349 ! Current model is set to model KTO
00350 IF (LHOOK) CALL DR_HOOK('MODD_DIAG_MISC_ISBA_N:DIAG_MISC_ISBA_GOTO_MODEL',0,ZHOOK_HANDLE)
00351 LSURF_MISC_BUDGET=>DIAG_MISC_ISBA_MODEL(KTO)%LSURF_MISC_BUDGET
00352 LSURF_DIAG_ALBEDO=>DIAG_MISC_ISBA_MODEL(KTO)%LSURF_DIAG_ALBEDO
00353 LSURF_MISC_DIF=>DIAG_MISC_ISBA_MODEL(KTO)%LSURF_MISC_DIF
00354 !
00355 XHV=>DIAG_MISC_ISBA_MODEL(KTO)%XHV
00356 XSWI=>DIAG_MISC_ISBA_MODEL(KTO)%XSWI
00357 XTSWI=>DIAG_MISC_ISBA_MODEL(KTO)%XTSWI
00358 XALT=>DIAG_MISC_ISBA_MODEL(KTO)%XALT
00359 XFLT=>DIAG_MISC_ISBA_MODEL(KTO)%XFLT
00360 XTWSNOW=>DIAG_MISC_ISBA_MODEL(KTO)%XTWSNOW
00361 XTDSNOW=>DIAG_MISC_ISBA_MODEL(KTO)%XTDSNOW
00362 XTTSNOW=>DIAG_MISC_ISBA_MODEL(KTO)%XTTSNOW
00363 XSNOWLIQ=>DIAG_MISC_ISBA_MODEL(KTO)%XSNOWLIQ
00364 XSNOWTEMP=>DIAG_MISC_ISBA_MODEL(KTO)%XSNOWTEMP
00365 XDPSNG=>DIAG_MISC_ISBA_MODEL(KTO)%XDPSNG
00366 XDPSNV=>DIAG_MISC_ISBA_MODEL(KTO)%XDPSNV
00367 XDPSN=>DIAG_MISC_ISBA_MODEL(KTO)%XDPSN
00368 XSEUIL=>DIAG_MISC_ISBA_MODEL(KTO)%XSEUIL
00369 XFAPAR=>DIAG_MISC_ISBA_MODEL(KTO)%XFAPAR
00370 XFAPIR=>DIAG_MISC_ISBA_MODEL(KTO)%XFAPIR
00371 XDFAPARC=>DIAG_MISC_ISBA_MODEL(KTO)%XDFAPARC
00372 XDFAPIRC=>DIAG_MISC_ISBA_MODEL(KTO)%XDFAPIRC
00373 XFAPAR_BS=>DIAG_MISC_ISBA_MODEL(KTO)%XFAPAR_BS
00374 XFAPIR_BS=>DIAG_MISC_ISBA_MODEL(KTO)%XFAPIR_BS
00375 XDLAI_EFFC=>DIAG_MISC_ISBA_MODEL(KTO)%XDLAI_EFFC
00376 XALBT=>DIAG_MISC_ISBA_MODEL(KTO)%XALBT
00377 XDFSAT=>DIAG_MISC_ISBA_MODEL(KTO)%XDFSAT
00378 XDFFG=>DIAG_MISC_ISBA_MODEL(KTO)%XDFFG
00379 XDFFV=>DIAG_MISC_ISBA_MODEL(KTO)%XDFFV
00380 XDFF=>DIAG_MISC_ISBA_MODEL(KTO)%XDFF
00381 !
00382 XAVG_HV=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_HV
00383 XAVG_LAI=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_LAI
00384 XAVG_SWI=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_SWI
00385 XAVG_TSWI=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_TSWI
00386 XSOIL_TSWI=>DIAG_MISC_ISBA_MODEL(KTO)%XSOIL_TSWI
00387 XSOIL_TWG=>DIAG_MISC_ISBA_MODEL(KTO)%XSOIL_TWG
00388 XSOIL_TWGI=>DIAG_MISC_ISBA_MODEL(KTO)%XSOIL_TWGI
00389 XAVG_ALT=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_ALT
00390 XAVG_FLT=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_FLT
00391 XAVG_TWSNOW=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_TWSNOW
00392 XAVG_TDSNOW=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_TDSNOW
00393 XAVG_TTSNOW=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_TTSNOW
00394 XAVG_PSNG=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_PSNG
00395 XAVG_PSNV=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_PSNV
00396 XAVG_PSN=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_PSN
00397 XAVG_ALBT=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_ALBT
00398 XAVG_FSAT=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_FSAT
00399 XAVG_FFG=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_FFG
00400 XAVG_FFV=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_FFV
00401 XAVG_FF=>DIAG_MISC_ISBA_MODEL(KTO)%XAVG_FF
00402 !
00403 XSURF_TSWI=>DIAG_MISC_ISBA_MODEL(KTO)%XSURF_TSWI
00404 XSURF_TWG=>DIAG_MISC_ISBA_MODEL(KTO)%XSURF_TWG
00405 XSURF_TWGI=>DIAG_MISC_ISBA_MODEL(KTO)%XSURF_TWGI
00406 XROOT_TSWI=>DIAG_MISC_ISBA_MODEL(KTO)%XROOT_TSWI
00407 XROOT_TWG=>DIAG_MISC_ISBA_MODEL(KTO)%XROOT_TWG
00408 XROOT_TWGI=>DIAG_MISC_ISBA_MODEL(KTO)%XROOT_TWGI
00409 XFRD2_TSWI=>DIAG_MISC_ISBA_MODEL(KTO)%XFRD2_TSWI
00410 XFRD2_TWG=>DIAG_MISC_ISBA_MODEL(KTO)%XFRD2_TWG
00411 XFRD2_TWGI=>DIAG_MISC_ISBA_MODEL(KTO)%XFRD2_TWGI
00412 XFRD3_TSWI=>DIAG_MISC_ISBA_MODEL(KTO)%XFRD3_TSWI
00413 XFRD3_TWG=>DIAG_MISC_ISBA_MODEL(KTO)%XFRD3_TWG
00414 XFRD3_TWGI=>DIAG_MISC_ISBA_MODEL(KTO)%XFRD3_TWGI
00415 !
00416 IF (LHOOK) CALL DR_HOOK('MODD_DIAG_MISC_ISBA_N:DIAG_MISC_ISBA_GOTO_MODEL',1,ZHOOK_HANDLE)
00417 !
00418 
00419 END SUBROUTINE DIAG_MISC_ISBA_GOTO_MODEL
00420 
00421 SUBROUTINE DIAG_MISC_ISBA_ALLOC(KMODEL)
00422 INTEGER, INTENT(IN) :: KMODEL
00423 INTEGER :: J
00424 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00425 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_MISC_ISBA_N:DIAG_MISC_ISBA_ALLOC",0,ZHOOK_HANDLE)
00426 ALLOCATE(DIAG_MISC_ISBA_MODEL(KMODEL))
00427 DO J=1,KMODEL
00428   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XHV)
00429   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XSWI)
00430   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XTSWI)
00431   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XALT)
00432   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XFLT)
00433   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XSNOWLIQ)
00434   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XSNOWTEMP)
00435   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XTWSNOW)
00436   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XTDSNOW)
00437   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XTTSNOW)
00438   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XDPSNG)
00439   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XDPSNV)
00440   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XDPSN)
00441   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XALBT)
00442   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XDFFG)
00443   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XDFFV)
00444   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XDFF)
00445   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XSEUIL)
00446   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XFAPAR)
00447   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XFAPIR)
00448   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XDFAPARC)
00449   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XDFAPIRC)
00450   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XFAPAR_BS)
00451   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XFAPIR_BS)
00452   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XDLAI_EFFC)  
00453   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_HV)
00454   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_LAI)
00455   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_SWI)
00456   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_TSWI)
00457   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XSOIL_TSWI)
00458   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XSOIL_TWG)
00459   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XSOIL_TWGI)
00460   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_ALT)
00461   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_FLT)
00462   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_TWSNOW)
00463   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_TDSNOW)
00464   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_TTSNOW)
00465   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_PSNG)
00466   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_PSNV)
00467   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_PSN)
00468   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_ALBT)
00469   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_FFG)
00470   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_FFV)
00471   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XAVG_FF)
00472   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XSURF_TSWI)
00473   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XSURF_TWG)
00474   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XSURF_TWGI)
00475   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XROOT_TSWI)
00476   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XROOT_TWG)
00477   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XROOT_TWGI)
00478   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XFRD2_TSWI)
00479   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XFRD2_TWG)
00480   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XFRD2_TWGI)
00481   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XFRD3_TSWI)
00482   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XFRD3_TWG)
00483   NULLIFY(DIAG_MISC_ISBA_MODEL(J)%XFRD3_TWGI)  
00484 ENDDO
00485 DIAG_MISC_ISBA_MODEL(:)%LSURF_MISC_BUDGET=.FALSE.
00486 DIAG_MISC_ISBA_MODEL(:)%LSURF_DIAG_ALBEDO=.FALSE.
00487 DIAG_MISC_ISBA_MODEL(:)%LSURF_MISC_DIF=.FALSE.
00488 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_MISC_ISBA_N:DIAG_MISC_ISBA_ALLOC",1,ZHOOK_HANDLE)
00489 END SUBROUTINE DIAG_MISC_ISBA_ALLOC
00490 
00491 SUBROUTINE DIAG_MISC_ISBA_DEALLO
00492 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00493 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_MISC_ISBA_N:DIAG_MISC_ISBA_DEALLO",0,ZHOOK_HANDLE)
00494 IF (ALLOCATED(DIAG_MISC_ISBA_MODEL)) DEALLOCATE(DIAG_MISC_ISBA_MODEL)
00495 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_MISC_ISBA_N:DIAG_MISC_ISBA_DEALLO",1,ZHOOK_HANDLE)
00496 END SUBROUTINE DIAG_MISC_ISBA_DEALLO
00497 
00498 END MODULE MODD_DIAG_MISC_ISBA_n