SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
read_pgd_schemes.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_pgd_schemes(HPROGRAM,HNATURE,HSEA,HTOWN,HWATER)
7 ! ######################################
8 !!
9 !! PURPOSE
10 !! -------
11 !! initializes the surface SCHEMES.
12 !!
13 !! METHOD
14 !! ------
15 !!
16 !! EXTERNAL
17 !! --------
18 !!
19 !!
20 !! IMPLICIT ARGUMENTS
21 !! ------------------
22 !!
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !! AUTHOR
28 !! ------
29 !!
30 !! V. Masson Meteo-France
31 !!
32 !! MODIFICATION
33 !! ------------
34 !!
35 !! Original 13/10/03
36 !----------------------------------------------------------------------------
37 !
38 !* 0. DECLARATION
39 ! -----------
40 !
41 USE modi_default_schemes
43 USE modi_open_namelist
44 USE modi_close_namelist
45 USE modi_get_luout
46 !
48 !
49 USE mode_pos_surf
50 !
51 !
52 USE yomhook ,ONLY : lhook, dr_hook
53 USE parkind1 ,ONLY : jprb
54 !
55 IMPLICIT NONE
56 !
57 !* 0.1 Declaration of dummy arguments
58 ! ------------------------------
59 !
60  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling READ_PGD
61  CHARACTER(LEN=6), INTENT(OUT) :: hnature ! scheme for natural surfaces
62  CHARACTER(LEN=6), INTENT(OUT) :: hsea ! scheme for sea
63  CHARACTER(LEN=6), INTENT(OUT) :: htown ! scheme for towns
64  CHARACTER(LEN=6), INTENT(OUT) :: hwater ! scheme for inland water
65 !
66 !
67 !* 0.2 Declaration of local variables
68 ! ------------------------------
69 !
70 INTEGER :: iluout ! logical unit
71 INTEGER :: ilunam ! logical unit
72 !
73 LOGICAL :: gfound
74 REAL(KIND=JPRB) :: zhook_handle
75 !
76 !------------------------------------------------------------------------------
77 !
78 !* 1. defaults
79 !
80 IF (lhook) CALL dr_hook('READ_PGD_SCHEMES',0,zhook_handle)
81  CALL default_schemes(hprogram,cnature,csea,ctown,cwater)
82 !
83 !------------------------------------------------------------------------------
84 !
85 !* 2. opening of namelist
86 !
87  CALL get_luout(hprogram,iluout)
88 !
89  CALL open_namelist(hprogram,ilunam)
90 !
91 !-------------------------------------------------------------------------------
92 !
93 !* 3. reading of namelist
94 !
95  CALL posnam(ilunam,'NAM_PGD_SCHEMES',gfound,iluout)
96 IF (gfound) READ(unit=ilunam,nml=nam_pgd_schemes)
97 !
98 !-------------------------------------------------------------------------------
99 !
100 !* 4. check of file type
101 !
102  CALL test_nam_var_surf(iluout,'CNATURE',cnature,'NONE ','ISBA ','TSZ0 ','FLUX ')
103  CALL test_nam_var_surf(iluout,'CSEA ',csea ,'NONE ','SEAFLX','FLUX ')
104  CALL test_nam_var_surf(iluout,'CTOWN ',ctown ,'NONE ','TEB ','FLUX ')
105  CALL test_nam_var_surf(iluout,'CWATER ',cwater ,'NONE ','WATFLX','FLUX ','FLAKE ')
106 !
107 hnature = cnature
108 hsea = csea
109 htown = ctown
110 hwater = cwater
111 !------------------------------------------------------------------------------
112 !
113 !* 5. close namelist file
114 !
115  CALL close_namelist(hprogram,ilunam)
116 IF (lhook) CALL dr_hook('READ_PGD_SCHEMES',1,zhook_handle)
117 !
118 !-------------------------------------------------------------------------------
119 !
120 END SUBROUTINE read_pgd_schemes
subroutine default_schemes(HPROGRAM, HNATURE, HSEA, HTOWN, HWATER)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:6
subroutine read_pgd_schemes(HPROGRAM, HNATURE, HSEA, HTOWN, HWATER)
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)