LMDZ
susat.F90
Go to the documentation of this file.
1 SUBROUTINE susat
2 
3 !**** *SUSAT* - INITIALIZE COMMON YOESAT
4 
5 ! PURPOSE.
6 ! --------
7 ! INITIALIZE YOESAT, THE COMMON THAT CONTROLS THE
8 ! SIMULATION OF SATELLITE RADIANCES
9 
10 !** INTERFACE.
11 ! ----------
12 ! *CALL* *SUSAT
13 
14 ! EXPLICIT ARGUMENTS :
15 ! --------------------
16 ! NONE
17 
18 ! IMPLICIT ARGUMENTS :
19 ! --------------------
20 ! COMMON YOESAT
21 
22 ! METHOD.
23 ! -------
24 ! SEE DOCUMENTATION
25 
26 ! EXTERNALS.
27 ! ----------
28 ! NONE
29 
30 ! REFERENCE.
31 ! ----------
32 ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE
33 ! "IN CORE MODEL"
34 
35 ! AUTHOR.
36 ! -------
37 ! JEAN-JACQUES MORCRETTE *ECMWF*
38 
39 ! MODIFICATIONS.
40 ! --------------
41 ! ORIGINAL : 88-12-15
42 ! M.Hamrud 01-Oct-2003 CY28 Cleaning
43 ! ------------------------------------------------------------------
44 
45 USE parkind1 ,ONLY : jpim ,jprb
46 USE yomhook ,ONLY : lhook, dr_hook
47 
48 USE yomlun_ifsaux , ONLY : nulout
49 USE yomcst , ONLY : rpi
50 USE yoesat , ONLY : ngeo ,rgalt ,rgnad ,rgnor ,&
51  & rgsou ,rgwst ,rgeas ,lgeose ,lgeosw ,&
52  & lgms ,lindsa ,lmto
53 
54 IMPLICIT NONE
55 
56 INTEGER(KIND=JPIM) :: ISATEL, JSATEL
57 
58 REAL(KIND=JPRB) :: ZDEGRAD
59 REAL(KIND=JPRB) :: ZHOOK_HANDLE
60 
61 !*CALL COMDOC
62 !----------------------------------------------------------------------
63 
64 !* 1. SET DEFAULT VALUES.
65 ! -------------------
66 
67 IF (lhook) CALL dr_hook('SUSAT',0,zhook_handle)
68 isatel=5
69 DO jsatel = 1 , isatel
70  rgalt(jsatel) = 0.0_jprb
71  rgnad(jsatel) = 0.0_jprb
72  rgnor(jsatel) = 0.0_jprb
73  rgsou(jsatel) = 0.0_jprb
74  rgwst(jsatel) = 0.0_jprb
75  rgeas(jsatel) = 0.0_jprb
76 ENDDO
77 
78 IF (ngeo /= 0) THEN
79 
80 ! ----------------------------------------------------------------
81 
82 !* 2. MODIFY DEFAULT VALUES FOR THE VARIOUS GEO.SATELLITES
83 ! ----------------------------------------------------
84 
85  isatel = 0
86  zdegrad = rpi / 180._jprb
87 
88  WRITE(unit=nulout,fmt='('' COMMON YOESAT '')')
89  WRITE(unit=nulout,fmt='('' NGEO = '',I1 )') ngeo
90 ! ----------------------------------------------------------------
91 
92 !* 2.1 GOES EAST SATELLITE
93 ! -------------------
94 
95  IF (lgeose) THEN
96  isatel = isatel + 1
97  rgalt(isatel) = 0.0_jprb
98  rgalt(isatel) = 35793000._jprb
99  rgnad(isatel) = 285._jprb * zdegrad
100  rgnor(isatel) = +70._jprb * zdegrad
101  rgsou(isatel) = -70._jprb * zdegrad
102  rgwst(isatel) = rgnad(isatel) -70._jprb * zdegrad
103  rgeas(isatel) = rgnad(isatel) +70._jprb * zdegrad
104  WRITE(unit=nulout,fmt='('' LGOESE = '',L5 &
105  & ,'' ALTITUDE ='',F10.0 &
106  & ,'' LONG.NADIR='',F9.6 &
107  & ,'' LIMFOV N. ='',F9.6 &
108  & ,'' S. ='',F9.6 &
109  & ,'' W. ='',F9.6 &
110  & ,'' E. ='',F9.6 &
111  & )')&
112  & lgeose,rgalt(isatel),rgnad(isatel)&
113  & ,rgnor(isatel),rgsou(isatel),rgwst(isatel),rgeas(isatel)
114  ENDIF
115 
116 ! ----------------------------------------------------------------
117 
118 !* 2.2 GOES WEST SATELLITE
119 ! -------------------
120 
121  IF (lgeosw) THEN
122  isatel = isatel + 1
123  rgalt(isatel) = 0.0_jprb
124  rgalt(isatel) = 35793000._jprb
125  rgnad(isatel) = 225._jprb * zdegrad
126  rgnor(isatel) = +70._jprb * zdegrad
127  rgsou(isatel) = -70._jprb * zdegrad
128  rgwst(isatel) = rgnad(isatel) -70._jprb * zdegrad
129  rgeas(isatel) = rgnad(isatel) +70._jprb * zdegrad
130  WRITE(unit=nulout,fmt='('' LGEOSW = '',L5 &
131  & ,'' ALTITUDE ='',F10.0 &
132  & ,'' LONG.NADIR='',F9.6 &
133  & ,'' LIMFOV N. ='',F9.6 &
134  & ,'' S. ='',F9.6 &
135  & ,'' W. ='',F9.6 &
136  & ,'' E. ='',F9.6 &
137  & )')&
138  & lgeosw,rgalt(isatel),rgnad(isatel)&
139  & ,rgnor(isatel),rgsou(isatel),rgwst(isatel),rgeas(isatel)
140  ENDIF
141 
142 ! ----------------------------------------------------------------
143 
144 !* 2.3 G.M.S. SATELLITE
145 ! ----------------
146 
147  IF (lgms) THEN
148  isatel = isatel + 1
149  rgalt(isatel) = 0.0_jprb
150  rgalt(isatel) = 35793000._jprb
151  rgnad(isatel) = 140._jprb * zdegrad
152  rgnor(isatel) = +70._jprb * zdegrad
153  rgsou(isatel) = -70._jprb * zdegrad
154  rgwst(isatel) = rgnad(isatel) -70._jprb * zdegrad
155  rgeas(isatel) = rgnad(isatel) +70._jprb * zdegrad
156  WRITE(unit=nulout,fmt='('' LGMS = '',L5 &
157  & ,'' ALTITUDE ='',F10.0 &
158  & ,'' LONG.NADIR='',F9.6 &
159  & ,'' LIMFOV N. ='',F9.6 &
160  & ,'' S. ='',F9.6 &
161  & ,'' W. ='',F9.6 &
162  & ,'' E. ='',F9.6 &
163  & )')&
164  & lgms,rgalt(isatel),rgnad(isatel)&
165  & ,rgnor(isatel),rgsou(isatel),rgwst(isatel),rgeas(isatel)
166  ENDIF
167 
168 ! ----------------------------------------------------------------
169 
170 !* 2.4 INDSAT SATELLITE
171 ! ----------------
172 
173  IF (lindsa) THEN
174  isatel = isatel + 1
175  rgalt(isatel) = 0.0_jprb
176  rgalt(isatel) = 35793000._jprb
177 ! ???? RGNAD(ISATEL) = 70. * ZDEGRAD
178  rgnad(isatel) = 0.0_jprb
179  rgnor(isatel) = +70._jprb * zdegrad
180  rgsou(isatel) = -70._jprb * zdegrad
181  rgwst(isatel) = 0.0_jprb
182  rgeas(isatel) = 0.0_jprb
183  WRITE(unit=nulout,fmt='('' LINDSA = '',L5 &
184  & ,'' ALTITUDE ='',F10.0 &
185  & ,'' LONG.NADIR='',F9.6 &
186  & ,'' LIMFOV N. ='',F9.6 &
187  & ,'' S. ='',F9.6 &
188  & ,'' W. ='',F9.6 &
189  & ,'' E. ='',F9.6 &
190  & )')&
191  & lindsa,rgalt(isatel),rgnad(isatel)&
192  & ,rgnor(isatel),rgsou(isatel),rgwst(isatel),rgeas(isatel)
193  ENDIF
194 
195 ! ----------------------------------------------------------------
196 
197 !* 2.5 METEOSAT SATELLITE
198 ! ------------------
199 
200  IF (lmto) THEN
201  isatel = isatel + 1
202  rgalt(isatel) = 35793000._jprb
203  rgnad(isatel) = 0.0_jprb * zdegrad
204  rgnor(isatel) = +70._jprb * zdegrad
205  rgsou(isatel) = -70._jprb * zdegrad
206  rgwst(isatel) = 2.0_jprb * rpi - 70._jprb * zdegrad
207  rgeas(isatel) = +70._jprb * zdegrad
208  WRITE(unit=nulout,fmt='('' LMTO = '',L5 &
209  & ,'' ALTITUDE ='',F10.0 &
210  & ,'' LONG.NADIR='',F9.6 &
211  & ,'' LIMFOV N. ='',F9.6 &
212  & ,'' S. ='',F9.6 &
213  & ,'' W. ='',F9.6 &
214  & ,'' E. ='',F9.6 &
215  & )')&
216  & lmto,rgalt(isatel),rgnad(isatel)&
217  & ,rgnor(isatel),rgsou(isatel),rgwst(isatel),rgeas(isatel)
218  ENDIF
219 
220 ENDIF
221 
222 ! -----------------------------------------------------------------
223 
224 IF (lhook) CALL dr_hook('SUSAT',1,zhook_handle)
225 END SUBROUTINE susat
real(kind=jprb), dimension(5) rgwst
Definition: yoesat.F90:19
real(kind=jprb) rpi
Definition: yomcst.F90:15
integer(kind=jpim) nulout
real(kind=jprb), dimension(5) rgeas
Definition: yoesat.F90:20
logical lindsa
Definition: yoesat.F90:24
Definition: yoesat.F90:1
integer, parameter jprb
Definition: parkind1.F90:31
real(kind=jprb), dimension(5) rgnor
Definition: yoesat.F90:17
logical lmto
Definition: yoesat.F90:25
real(kind=jprb), dimension(5) rgalt
Definition: yoesat.F90:15
logical lgeose
Definition: yoesat.F90:21
real(kind=jprb), dimension(5) rgsou
Definition: yoesat.F90:18
logical lhook
Definition: yomhook.F90:12
logical lgeosw
Definition: yoesat.F90:22
logical lgms
Definition: yoesat.F90:23
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
real(kind=jprb), dimension(5) rgnad
Definition: yoesat.F90:16
integer(kind=jpim) ngeo
Definition: yoesat.F90:13
integer, parameter jpim
Definition: parkind1.F90:13
subroutine susat
Definition: susat.F90:2
Definition: yomcst.F90:1
!$Header!integer nvarmx s s unit
Definition: gradsdef.h:20