SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
read_prep_watflux_conf.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_prep_watflux_conf(HPROGRAM,HVAR,HFILE,HFILETYPE,HFILEPGD,HFILEPGDTYPE,&
7  hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kluout,ounif)
8 ! #######################################################
9 !
10 !!**** *READ_PREP_WATFLUX_CONF* - routine to read the configuration for
11 !! WATFLUX fields preparation
12 !!
13 !! PURPOSE
14 !! -------
15 !!
16 !!** METHOD
17 !! ------
18 !!
19 !! EXTERNAL
20 !! --------
21 !!
22 !!
23 !! IMPLICIT ARGUMENTS
24 !! ------------------
25 !!
26 !! REFERENCE
27 !! ---------
28 !!
29 !!
30 !! AUTHOR
31 !! ------
32 !! V. Masson *Meteo France*
33 !!
34 !! MODIFICATIONS
35 !! -------------
36 !! Original 01/2004
37 !! P. Le Moigne 10/2005, Phasage Arome
38 !-------------------------------------------------------------------------------
39 !
40 !* 0. DECLARATIONS
41 ! ------------
42 !
43 USE modi_read_prep_surf_atm_conf
44 !
46 USE modd_prep_watflux, ONLY : cfile_watflx, ctype, cfilepgd_watflx, ctypepgd, xts_water_unif
47 !
48 USE modd_surf_par, ONLY : xundef
49 !
50 !
51 USE yomhook ,ONLY : lhook, dr_hook
52 USE parkind1 ,ONLY : jprb
53 !
54 USE modi_abor1_sfx
55 !
56 IMPLICIT NONE
57 !
58 !* 0.1 Declarations of arguments
59 ! -------------------------
60 !
61  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling ISBA
62  CHARACTER(LEN=7), INTENT(IN) :: hvar ! variable treated
63  CHARACTER(LEN=28), INTENT(OUT) :: hfile ! file name
64  CHARACTER(LEN=6), INTENT(OUT) :: hfiletype! file type
65  CHARACTER(LEN=28), INTENT(OUT) :: hfilepgd ! file name
66  CHARACTER(LEN=6), INTENT(OUT) :: hfilepgdtype! file type
67  CHARACTER(LEN=28), INTENT(IN) :: hatmfile ! atmospheric file name
68  CHARACTER(LEN=6), INTENT(IN) :: hatmfiletype! atmospheric file type
69  CHARACTER(LEN=28), INTENT(IN) :: hpgdfile ! atmospheric file name
70  CHARACTER(LEN=6), INTENT(IN) :: hpgdfiletype! atmospheric file type
71 INTEGER, INTENT(IN) :: kluout ! logical unit of output listing
72 LOGICAL, INTENT(OUT) :: ounif ! flag for prescribed uniform field
73 
74 !
75 !* 0.2 Declarations of local variables
76 ! -------------------------------
77 !
78 INTEGER :: iresp ! IRESP : return-code if a problem appears
79  ! at the open of the file in LFI routines
80 INTEGER :: ilunam ! Logical unit of namelist file
81 !
82  CHARACTER(LEN=28) :: ynamelist ! namelist file
83 !
84 LOGICAL :: gfound ! Return code when searching namelist
85 REAL(KIND=JPRB) :: zhook_handle
86 !-------------------------------------------------------------------------------
87 !
88 !
89 IF (lhook) CALL dr_hook('READ_PREP_WATFLUX_CONF',0,zhook_handle)
90 hfile = ' '
91 hfiletype = ' '
92 !
93 hfilepgd = ' '
94 hfilepgdtype = ' '
95 !
96 ounif = .false.
97 !
98 !-------------------------------------------------------------------------------
99 !
100 !* choice of input file
101 ! --------------------
102 !
103 IF (len_trim(hfile)==0 .AND. len_trim(cfile_watflx)>0 .AND. len_trim(ctype)>0) THEN
104  hfile = cfile_watflx
105  hfiletype = ctype
106 END IF
107 !
108 IF (len_trim(hfilepgd)==0 .AND. len_trim(cfilepgd_watflx)>0 .AND. len_trim(ctypepgd)>0) THEN
109  hfilepgd = cfilepgd_watflx
110  hfilepgdtype = ctypepgd
111 END IF
112 !
113 !! If no file name in the scheme namelist,
114 !! try to find a name in NAM_SURF_ATM
115 !
116 IF (len_trim(hfile)==0) THEN
117 !
118  CALL read_prep_surf_atm_conf(hprogram,hfile,hfiletype,hfilepgd,hfilepgdtype,&
119  hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kluout)
120 !
121 END IF
122 !-------------------------------------------------------------------------------
123 !
124 !* Is an uniform field prescribed?
125 ! ------------------------------
126 !
127  ounif = (xts_water_unif/=xundef)
128 !
129 !-------------------------------------------------------------------------------
130 !
131 !* If no file and no uniform field is prescribed: error
132 ! ---------------------------------------------
133 !
134 IF (hvar=='DATE ' .OR. hvar=='ZS ' .AND. lhook) CALL dr_hook('READ_PREP_WATFLUX_CONF',1,zhook_handle)
135 IF (hvar=='DATE ' .OR. hvar=='ZS ') RETURN
136 !
137 IF (len_trim(hfiletype)==0 .AND. .NOT. ounif) THEN
138  CALL abor1_sfx('READ_PREP_WATFLUX_CONF: AN INPUT VALUE IS REQUIRED FOR '//hvar)
139 END IF
140 IF (lhook) CALL dr_hook('READ_PREP_WATFLUX_CONF',1,zhook_handle)
141 !
142 !-------------------------------------------------------------------------------
143 !
144 END SUBROUTINE read_prep_watflux_conf
subroutine read_prep_watflux_conf(HPROGRAM, HVAR, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, KLUOUT, OUNIF)
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:6
subroutine read_prep_surf_atm_conf(HPROGRAM, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, KLUOUT)