SURFEX v8.1
General documentation of Surfex
diag_inland_watern.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6 SUBROUTINE diag_inland_water_n (DLO, DL, DLC, FM, WM, HWATER, &
7  HPROGRAM, DUP, DUPC, KMASK )
8 ! ###############################################################################
9 !
10 !!**** *DIAG_INLAND_WATER_n * - Chooses the surface schemes for lakes diagnostics
11 !!
12 !! PURPOSE
13 !! -------
14 !
15 !!** METHOD
16 !! ------
17 !!
18 !! REFERENCE
19 !! ---------
20 !!
21 !!
22 !! AUTHOR
23 !! ------
24 !! V. Masson
25 !!
26 !! MODIFICATIONS
27 !! -------------
28 !! Original 01/2004
29 !! Modified 08/2009 : cumulated diag & t2m min/max
30 !! V.Masson 10/2013 Adds min and max 2m parameters
31 ! B. decharme 04/2013 : Add EVAP and SUBL diag
32 !!------------------------------------------------------------------
33 !
34 USE mode_diag
35 !
38 !
39 USE modd_surf_par, ONLY : xundef
40 !
41 USE yomhook ,ONLY : lhook, dr_hook
42 USE parkind1 ,ONLY : jprb
43 !
44 IMPLICIT NONE
45 !
46 !* 0.1 declarations of arguments
47 !
48 !
49 TYPE(diag_options_t), INTENT(INOUT) :: DLO
50 TYPE(diag_t), INTENT(INOUT) :: DL
51 TYPE(diag_t), INTENT(INOUT) :: DLC
52 TYPE(flake_model_t), INTENT(INOUT) :: FM
53 TYPE(watflux_model_t), INTENT(INOUT) :: WM
54 !
55  CHARACTER(LEN=*), INTENT(IN) :: HWATER
56  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes
57 !
58 TYPE(diag_t), INTENT(INOUT) :: DUP
59 TYPE(diag_t), INTENT(INOUT) :: DUPC
60 !
61 INTEGER, DIMENSION(:), INTENT(IN) :: KMASK
62 !
63 !* 0.2 declarations of local variables
64 !
65 REAL(KIND=JPRB) :: ZHOOK_HANDLE
66 !
67 !-------------------------------------------------------------------------------------
68 !
69 IF (lhook) CALL dr_hook('DIAG_INLAND_WATER_N',0,zhook_handle)
70 IF (hwater=='WATFLX') THEN
71  CALL diag_evap(wm%DWO, wm%DW, wm%DWC, hprogram, dup, dupc, kmask)
72 ELSE IF (hwater=='FLAKE ') THEN
73  CALL diag_evap(fm%DFO, fm%DF, fm%DFC, hprogram, dup, dupc, kmask)
74 ELSE IF (hwater=='FLUX ') THEN
75  CALL diag_evap(dlo, dl, dlc, hprogram, dup, dupc, kmask)
76 ELSE IF (hwater=='NONE ') THEN
77  CALL init_bud(wm%DWO,dup,dupc,xundef)
78 END IF
79 IF (lhook) CALL dr_hook('DIAG_INLAND_WATER_N',1,zhook_handle)
80 !
81 !-------------------------------------------------------------------------------------
82 !
83 END SUBROUTINE diag_inland_water_n
subroutine init_bud(DGO, DA, DAC, PVAL)
Definition: mode_diag.F90:185
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
subroutine diag_evap(DGO, DA, DAC, HPROGRAM, DAUP, DAUPC, KMASK)
Definition: mode_diag.F90:288
logical lhook
Definition: yomhook.F90:15
subroutine diag_inland_water_n(DLO, DL, DLC, FM, WM, HWATER, HPROGRAM, DUP, DUPC, KMASK)