SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
read_nam_pgd_dummy.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_nam_pgd_dummy(HPROGRAM, KDUMMY_NBR, HDUMMY_NAME, HDUMMY_AREA, &
7  hdummy_atype, hdummy_file, hdummy_filetype )
8 ! ##############################################################
9 !
10 !!**** *READ_NAM_PGD_DUMMY* reads namelist NAM_DUMMY_PGD
11 !!
12 !! PURPOSE
13 !! -------
14 !!
15 !! METHOD
16 !! ------
17 !!
18 !
19 !! EXTERNAL
20 !! --------
21 !!
22 !! IMPLICIT ARGUMENTS
23 !! ------------------
24 !!
25 !! REFERENCE
26 !! ---------
27 !!
28 !! AUTHOR
29 !! ------
30 !!
31 !! V. Masson Meteo-France
32 !!
33 !! MODIFICATION
34 !! ------------
35 !!
36 !! Original 01/2005
37 !!
38 !----------------------------------------------------------------------------
39 !
40 !* 0. DECLARATION
41 ! -----------
42 !
43 USE modi_get_luout
44 USE modi_open_namelist
45 USE modi_close_namelist
46 !
47 USE mode_pos_surf
48 !
49 !
50 USE yomhook ,ONLY : lhook, dr_hook
51 USE parkind1 ,ONLY : jprb
52 !
53 IMPLICIT NONE
54 !
55 !* 0.1 Declaration of arguments
56 ! ------------------------
57 !
58  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! Type of program
59 INTEGER, INTENT(OUT) :: kdummy_nbr
60 ! ! number of dummy pgd fields chosen by user
61  CHARACTER(LEN=20), DIMENSION(1000), INTENT(OUT) :: hdummy_name
62 ! ! name of the dummy pgd fields (for information)
63  CHARACTER(LEN=3), DIMENSION(1000), INTENT(OUT) :: hdummy_area
64 ! ! areas where dummy pgd fields are defined
65 ! ! 'ALL' : everywhere
66 ! ! 'SEA' : where sea exists
67 ! ! 'LAN' : where land exists
68 ! ! 'WAT' : where inland water exists
69 ! ! 'NAT' : where natural or agricultural areas exist
70 ! ! 'TWN' : where town areas exist
71 ! ! 'STR' : where streets are present
72 ! ! 'BLD' : where buildings are present
73  CHARACTER(LEN=3), DIMENSION(1000), INTENT(OUT) :: hdummy_atype ! avg type for dummy pgd fields
74 ! ! 'ARI' , 'INV'
75  CHARACTER(LEN=28), DIMENSION(1000), INTENT(OUT) :: hdummy_file ! data files
76  CHARACTER(LEN=6), DIMENSION(1000), INTENT(OUT) :: hdummy_filetype ! type of these files
77 !
78 !
79 !* 0.2 Declaration of local variables
80 ! ------------------------------
81 !
82 INTEGER :: iluout ! output listing logical unit
83 INTEGER :: ilunam ! namelist file logical unit
84 LOGICAL :: gfound ! flag when namelist is present
85 !
86 !* 0.3 Declaration of namelists
87 ! ------------------------
88 !
89 INTEGER :: ndummy_nbr
90 ! ! number of dummy pgd fields chosen by user
91  CHARACTER(LEN=20), DIMENSION(1000) :: cdummy_name
92 ! ! name of the dummy pgd fields (for information)
93  CHARACTER(LEN=3), DIMENSION(1000) :: cdummy_area
94 ! ! areas where dummy pgd fields are defined
95 ! ! 'ALL' : everywhere
96 ! ! 'SEA' : where sea exists
97 ! ! 'LAN' : where land exists
98 ! ! 'WAT' : where inland water exists
99 ! ! 'NAT' : where natural or agricultural areas exist
100 ! ! 'TWN' : where town areas exist
101 ! ! 'STR' : where streets are present
102 ! ! 'BLD' : where buildings are present
103  CHARACTER(LEN=3), DIMENSION(1000) :: cdummy_atype ! avg type for dummy pgd fields
104 ! ! 'ARI' , 'INV'
105  CHARACTER(LEN=28), DIMENSION(1000) :: cdummy_file ! data files
106  CHARACTER(LEN=6), DIMENSION(1000) :: cdummy_filetype ! type of these files
107 REAL(KIND=JPRB) :: zhook_handle
108 !
109 namelist/nam_dummy_pgd/ ndummy_nbr, cdummy_name, cdummy_area, &
110  cdummy_atype, cdummy_file, cdummy_filetype
111 !-------------------------------------------------------------------------------
112 !
113 !* 1. Initializations of defaults
114 ! ---------------------------
115 !
116 IF (lhook) CALL dr_hook('READ_NAM_PGD_DUMMY',0,zhook_handle)
117 ndummy_nbr = 0
118 !
119  cdummy_name = " "
120  cdummy_file = " "
121  cdummy_filetype = " "
122  cdummy_area = "ALL"
123  cdummy_atype = "ARI"
124 !
125  CALL get_luout(hprogram,iluout)
126 !
127 !-------------------------------------------------------------------------------
128 !
129 !* 2. Reading of namelist
130 ! -------------------
131 !
132  CALL open_namelist(hprogram,ilunam)
133 !
134  CALL posnam(ilunam,'NAM_DUMMY_PGD',gfound,iluout)
135 IF (gfound) READ(unit=ilunam,nml=nam_dummy_pgd)
136 !
137  CALL close_namelist(hprogram,ilunam)
138 !
139 !-------------------------------------------------------------------------------
140 !
141 !* 3. Fills output arguments
142 ! ----------------------
143 !
144 kdummy_nbr = ndummy_nbr
145 hdummy_name(:) = cdummy_name(:)
146 hdummy_area(:) = cdummy_area(:)
147 hdummy_atype(:) = cdummy_atype(:)
148 hdummy_file(:) = cdummy_file(:)
149 hdummy_filetype(:) = cdummy_filetype(:)
150 IF (lhook) CALL dr_hook('READ_NAM_PGD_DUMMY',1,zhook_handle)
151 !
152 !-------------------------------------------------------------------------------
153 !
154 END SUBROUTINE read_nam_pgd_dummy
subroutine read_nam_pgd_dummy(HPROGRAM, KDUMMY_NBR, HDUMMY_NAME, HDUMMY_AREA, HDUMMY_ATYPE, HDUMMY_FILE, HDUMMY_FILETYPE)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:6
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)