SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
pgd_tsz0_par.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 pgd_tsz0_par (DTZ, &
7  hprogram)
8 ! ##############################################################
9 !
10 !!**** *PGD_TSZ0_PAR* monitor for averaging and interpolations of sst
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 !! P. Le Moigne Meteo-France
32 !!
33 !! MODIFICATION
34 !! ------------
35 !!
36 !! Original 09/2007
37 !! P. Le Moigne 03/2015 tsz0 time management
38 !!
39 !!
40 !----------------------------------------------------------------------------
41 !
42 !* 0. DECLARATION
43 ! -----------
44 !
45 !
46 !
47 USE modd_data_tsz0_n, ONLY : data_tsz0_t
48 !
49 USE modi_get_luout
50 USE modi_open_namelist
51 USE modi_close_namelist
52 !
53 USE mode_pos_surf
54 !
55 USE yomhook ,ONLY : lhook, dr_hook
56 USE parkind1 ,ONLY : jprb
57 !
58 USE modi_abor1_sfx
59 !
60 IMPLICIT NONE
61 !
62 !* 0.1 Declaration of arguments
63 ! ------------------------
64 !
65 !
66 TYPE(data_tsz0_t), INTENT(INOUT) :: dtz
67 !
68  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! Type of program
69 !
70 !
71 !* 0.2 Declaration of local variables
72 ! ------------------------------
73 !
74 INTEGER :: iluout ! output listing logical unit
75 INTEGER :: ilunam ! namelist file logical unit
76 LOGICAL :: gfound ! true if namelist is found
77 !
78 INTEGER :: jtime ! loop counter on time
79 !
80 !* 0.3 Declaration of namelists
81 ! ------------------------
82 !
83 INTEGER :: ntime
84 INTEGER, PARAMETER :: ntime_max = 37
85 !
86 REAL, DIMENSION(NTIME_MAX) :: xunif_dts
87 REAL, DIMENSION(NTIME_MAX) :: xunif_dhugrd
88  CHARACTER(LEN=28), DIMENSION(NTIME_MAX) :: cfnam_dts
89  CHARACTER(LEN=28), DIMENSION(NTIME_MAX) :: cfnam_dhugrd
90  CHARACTER(LEN=6), DIMENSION(NTIME_MAX) :: cftyp_dts
91  CHARACTER(LEN=6), DIMENSION(NTIME_MAX) :: cftyp_dhugrd
92 !
93 ! name of files containing data
94 !
95 REAL(KIND=JPRB) :: zhook_handle
96 !
97 namelist/nam_data_tsz0/ntime, xunif_dts, xunif_dhugrd
98 !-------------------------------------------------------------------------------
99 !
100 !* 1. Initializations
101 ! ---------------
102 !
103 IF (lhook) CALL dr_hook('PGD_TSZ0_PAR',0,zhook_handle)
104 ntime = 25
105 xunif_dts(:) = -0.250
106 xunif_dhugrd(:) = 0.0
107  cfnam_dts(:) = ' '
108  cfnam_dhugrd(:) = ' '
109  cftyp_dts(:) = ' '
110  cftyp_dhugrd(:) = ' '
111 !
112 !-------------------------------------------------------------------------------
113 !
114 !* 2. Input file for cover types
115 ! --------------------------
116 !
117  CALL get_luout(hprogram,iluout)
118  CALL open_namelist(hprogram,ilunam)
119 !
120  CALL posnam(ilunam,'NAM_DATA_TSZ0',gfound,iluout)
121 IF (gfound) READ(unit=ilunam,nml=nam_data_tsz0)
122 !
123  CALL close_namelist(hprogram,ilunam)
124 !
125 IF (ntime > ntime_max) THEN
126  WRITE(iluout,*)'NTIME SHOULD NOT EXCEED',ntime_max
127  CALL abor1_sfx('PGD_TSZ0_PAR: NTIME TOO BIG')
128 ENDIF
129 !
130 ALLOCATE(dtz%XDATA_DTS (ntime))
131 ALLOCATE(dtz%XDATA_DHUGRD (ntime))
132 !
133 !-------------------------------------------------------------------------------
134 !
135 !* 3. Uniform fields are prescribed
136 ! -----------------------------
137 !
138 IF (ntime==1) THEN
139  dtz%XDATA_DTS (:) = xunif_dts(1)
140  dtz%XDATA_DHUGRD(:) = xunif_dhugrd(1)
141 ELSE
142  DO jtime=1,ntime
143  dtz%XDATA_DTS (jtime) = xunif_dts(jtime)
144  dtz%XDATA_DHUGRD(jtime) = xunif_dhugrd(jtime)
145  END DO
146 ENDIF
147 !
148 IF (lhook) CALL dr_hook('PGD_TSZ0_PAR',1,zhook_handle)
149 !
150 !-------------------------------------------------------------------------------
151 !
152 END SUBROUTINE pgd_tsz0_par
subroutine pgd_tsz0_par(DTZ, HPROGRAM)
Definition: pgd_tsz0_par.F90:6
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:6
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)