Juan 8/12/2016: add management of LEN_HREC in MNH & SURFEX
[MNH-git_open_source-lfs.git] / src / SURFEX / default_diag_surf_atm.F90
1 !SURFEX_LIC Copyright 1994-2014 Meteo-France 
2 !SURFEX_LIC This is part of the SURFEX software governed by the CeCILL-C  licence
3 !SURFEX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SURFEX_LIC for details. version 1.
5 !     #########
6       SUBROUTINE DEFAULT_DIAG_SURF_ATM(K2M,OSURF_BUDGET,O2M_MIN_ZS,ORAD_BUDGET,   &
7                                          OCOEF,OSURF_VARS,OSURF_BUDGETC,          &
8                                          ORESET_BUDGETC, OSELECT, OPROVAR_TO_DIAG,&
9                                          ODIAG_GRID, OFRAC, PDIAG_TSTEP, CSELECT  )                                         
10 !     ########################################################################
11 !
12 !!****  *DEFAULT_DIAG_SURF_ATM* - routine to set default values for the choice of diagnostics
13 !!
14 !!    PURPOSE
15 !!    -------
16 !!
17 !!**  METHOD
18 !!    ------
19 !!
20 !!    EXTERNAL
21 !!    --------
22 !!
23 !!
24 !!    IMPLICIT ARGUMENTS
25 !!    ------------------
26 !!
27 !!    REFERENCE
28 !!    ---------
29 !!
30 !!
31 !!    AUTHOR
32 !!    ------
33 !!      V. Masson   *Meteo France*      
34 !!
35 !!    MODIFICATIONS
36 !!    -------------
37 !!      Original    01/2004 
38 !!      Modified    01/2006 : sea flux parameterization.
39 !!      B. Decharme   2008    flag for mean grid diag
40 !!      B. Decharme   2009    flag for cumulative budget and to write selected diags
41 !-------------------------------------------------------------------------------
42 !
43 !*       0.    DECLARATIONS
44 !              ------------
45 !
46 USE MODD_SURF_PAR,   ONLY : XUNDEF
47 !
48 !
49 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
50 USE PARKIND1  ,ONLY : JPRB
51 !
52 IMPLICIT NONE
53 !
54 !*       0.1   Declarations of arguments
55 !              -------------------------
56 !
57 !
58 INTEGER,  INTENT(OUT) :: K2M           ! flag for operational 2m quantities
59 LOGICAL,  INTENT(OUT) :: OSURF_BUDGET  ! flag for surface budget
60 LOGICAL,  INTENT(OUT) :: O2M_MIN_ZS    ! flag for 2m quantities on min.  orography
61 LOGICAL,  INTENT(OUT) :: ORAD_BUDGET   ! flag for radiative budget
62 LOGICAL,  INTENT(OUT) :: OCOEF         ! flag for transfer coefficients
63 LOGICAL,  INTENT(OUT) :: OSURF_VARS    ! flag for surface variables
64 LOGICAL,  INTENT(OUT) :: OSURF_BUDGETC ! flag for cumulated surface budget
65 LOGICAL,  INTENT(OUT) :: ORESET_BUDGETC  ! flag for cumulated surface budget
66 LOGICAL,  INTENT(OUT) :: OSELECT       ! switch to control which fields are written
67 LOGICAL,  INTENT(OUT) :: OPROVAR_TO_DIAG    ! switch to write (or not) prognostic variable
68 LOGICAL,  INTENT(OUT) :: ODIAG_GRID    ! flag for mean grid diag
69 LOGICAL,  INTENT(OUT) :: OFRAC         ! flag for fractions of tiles
70 REAL,     INTENT(OUT) :: PDIAG_TSTEP   ! time-step for writing
71  CHARACTER(LEN=LEN_HREC), DIMENSION(200), INTENT(OUT), OPTIONAL :: CSELECT  
72 REAL(KIND=JPRB) :: ZHOOK_HANDLE
73 !
74 !*       0.2   Declarations of local variables
75 !              -------------------------------
76 !
77 !-------------------------------------------------------------------------------
78 !
79 IF (LHOOK) CALL DR_HOOK('DEFAULT_DIAG_SURF_ATM',0,ZHOOK_HANDLE)
80 !
81 K2M          = 0
82 OSURF_BUDGET = .FALSE.
83 !
84 O2M_MIN_ZS   = .FALSE.
85 !
86 ORAD_BUDGET  = .FALSE.
87 !
88 OCOEF        = .FALSE.
89 OSURF_VARS   = .FALSE.
90 !
91 OSURF_BUDGETC     = .FALSE.
92 ORESET_BUDGETC    = .FALSE.
93 !
94 OSELECT            = .FALSE.
95 !
96 OPROVAR_TO_DIAG    = .FALSE.
97 !
98 ODIAG_GRID   = .TRUE.
99 !
100 OFRAC        = .FALSE.
101 !
102 PDIAG_TSTEP  = XUNDEF
103 !
104 IF (PRESENT(CSELECT)) CSELECT(:) = '            '
105 IF (LHOOK) CALL DR_HOOK('DEFAULT_DIAG_SURF_ATM',1,ZHOOK_HANDLE)
106 !
107 !-------------------------------------------------------------------------------
108 !
109 END SUBROUTINE DEFAULT_DIAG_SURF_ATM