SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
read_default_watfluxn.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 read_default_watflux_n (CHW, DGW, W, &
7  hprogram)
8 ! #############################################################
9 !
10 !!**** *READ_WATFLUX_CONF* - routine to read the configuration for WATFLUX
11 !!
12 !! PURPOSE
13 !! -------
14 !!
15 !!** METHOD
16 !! ------
17 !!
18 !! EXTERNAL
19 !! --------
20 !!
21 !!
22 !! IMPLICIT ARGUMENTS
23 !! ------------------
24 !!
25 !! REFERENCE
26 !! ---------
27 !!
28 !!
29 !! AUTHOR
30 !! ------
31 !! V. Masson *Meteo France*
32 !!
33 !! MODIFICATIONS
34 !! -------------
35 !! Original 01/2003
36 !-------------------------------------------------------------------------------
37 !
38 !* 0. DECLARATIONS
39 ! ------------
40 !
41 !
42 !
43 !
44 !
47 USE modd_watflux_n, ONLY : watflux_t
48 !
50 !
51 USE mode_pos_surf
53 USE modi_get_luout
54 USE modi_get_default_nam_n
55 !
56 USE modd_read_namelist, ONLY : lnam_read
58 !
59 !
60 USE yomhook ,ONLY : lhook, dr_hook
61 USE parkind1 ,ONLY : jprb
62 !
63 IMPLICIT NONE
64 !
65 !* 0.1 Declarations of arguments
66 ! -------------------------
67 !
68 !
69 TYPE(ch_watflux_t), INTENT(INOUT) :: chw
70 TYPE(diag_watflux_t), INTENT(INOUT) :: dgw
71 TYPE(watflux_t), INTENT(INOUT) :: w
72 !
73  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling ISBA
74 
75 !
76 !* 0.2 Declarations of local variables
77 ! -------------------------------
78 !
79 LOGICAL :: gfound ! Return code when searching namelist
80 INTEGER :: iluout ! output listing logical unit
81 INTEGER :: iludes ! .des file logical unit
82 INTEGER :: imi
83 REAL(KIND=JPRB) :: zhook_handle
84 !-------------------------------------------------------------------------------
85 !
86 IF (lhook) CALL dr_hook('READ_DEFAULT_WATFLUX_N',0,zhook_handle)
87  CALL get_luout(hprogram,iluout)
88  CALL get_default_nam_n(hprogram,'READ ',iludes)
89 !
90 IF (iludes==0 .AND. lhook) CALL dr_hook('READ_DEFAULT_WATFLUX_N',1,zhook_handle)
91 IF (iludes==0) RETURN
92 !
94 !
95 IF (imi.NE.-1 .AND. lnam_read) THEN
96  CALL init_nam_watfluxn(w)
97  CALL init_nam_diag_surfn(dgw)
98  CALL init_nam_ch_watfluxn(chw)
99 ENDIF
100 !
101 IF (lnam_read) THEN
102  !
103  !* reading of namelist
104  ! -------------------
105  !
106  CALL posnam(iludes,'NAM_WATFLUXN',gfound,iluout)
107  IF (gfound) READ(unit=iludes,nml=nam_watfluxn)
108  CALL posnam(iludes,'NAM_DIAG_SURFN',gfound,iluout)
109  IF (gfound) READ(unit=iludes,nml=nam_diag_surfn)
110  CALL posnam(iludes,'NAM_CH_WATFLUXN',gfound,iluout)
111  IF (gfound) READ(unit=iludes,nml=nam_ch_watfluxn)
112  !
113  CALL test_nam_var_surf(iluout,'CWAT_ALB',cwat_alb, 'UNIF','TA96')
114  CALL test_nam_var_surf(iluout,'CINTERPOL_TS',cinterpol_ts,'QUADRA','LINEAR','UNIF ','NONE ')
115  !
116 ENDIF
117 !
118 IF (imi.NE.-1) THEN
119  CALL update_nam_watfluxn(w)
120  CALL update_nam_diag_surfn(dgw)
121  CALL update_nam_ch_watfluxn(chw)
122 ENDIF
123 IF (lhook) CALL dr_hook('READ_DEFAULT_WATFLUX_N',1,zhook_handle)
124 !
125 !-------------------------------------------------------------------------------
126 !
127 END SUBROUTINE read_default_watflux_n
subroutine init_nam_watfluxn(W)
subroutine init_nam_ch_watfluxn(CHW)
subroutine init_nam_diag_surfn(DGF)
subroutine update_nam_diag_surfn(DGF)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:6
subroutine update_nam_watfluxn(W)
subroutine update_nam_ch_watfluxn(CHW)
subroutine read_default_watflux_n(CHW, DGW, W, HPROGRAM)
integer function get_current_model_index_surfex()
subroutine get_default_nam_n(HPROGRAM, HACTION, KLUDES)