PREGSM.F
References to this file elsewhere.
1 C***********************************************************************
2 PROGRAM PREGSM
3 USE module_wave2grid_kma
4 ! Duplicated in module
5 ! PARAMETER ( KMAX=30 )
6 ! PARAMETER ( IMAX=640, JMAX=320 )
7 ! PARAMETER ( IMAXE=640, JMAXE=321 )
8 ! PARAMETER ( ISST=360, JSST=181 )
9 ! PARAMETER ( ISNW=360, JSNW=180 )
10 ! PARAMETER ( IDIM=428, JDIM=214 ) ! MAX(MAX,SST,SNW)
11 ! PARAMETER ( MAXJZ=16 )
12 ! PARAMETER (MEND1 =214,NEND1=214,JEND1=214)
13 ! PARAMETER (JMAXHF= JMAX/2)
14 ! PARAMETER (MNWAV =MEND1*(MEND1+1)/2)
15 ! PARAMETER (IVAR=6,IMX=IMAX+2)
16 C
17 INTEGER IDATE(5), IDGES(5), IDSST(5)
18 CHARACTER*8 FILE, MODEL, RESL
19 CHARACTER*80 CINF(10)
20 CHARACTER*4 TYPE, EXPR, KTUNIT, NPROD, NPROM, VCODD, VCODM
21 CHARACTER*4 LEVEL, ELEM
22 CHARACTER*32 TITLE
23 CHARACTER*16 UNIT
24 CHARACTER*8 MDLINF(4)
25 REAL DTHPRO(7)
26 INTEGER ITYP(2)
27 CHARACTER*48 LABEL
28 INTEGER JTINF(2)
29 CHARACTER*10 FROMUNPACK
30 INTEGER IUNPACK
31 C
32 DIMENSION A(KMAX+1), B(KMAX+1), AAM(KMAX+1), BBM(KMAX+1)
33 DIMENSION AGD(KMAX+1), BGD(KMAX+1), AGM(KMAX+1), BGM(KMAX+1)
34 DIMENSION GPHIS(IMAX*JMAX)
35 REAL, DIMENSION(IMAX,JMAX) :: GAU
36 REAL, DIMENSION(JMAX) :: SINCLT,COSCLT,GW,DGW,DCOSCL,COLRAD,DY
37
38 COMMON PSE (IMAXE,JMAXE),
39 1 GZE (IMAXE,JMAXE,KMAX), GTE (IMAXE,JMAXE,KMAX),
40 2 GUE (IMAXE,JMAXE,KMAX), GVE (IMAXE,JMAXE,KMAX),
41 3 GQE (IMAXE,JMAXE,KMAX)
42 COMMON PS (IMAX,JMAX),
43 1 GZ (IMAX,JMAX,KMAX), GT (IMAX,JMAX,KMAX),
44 2 GU (IMAX,JMAX,KMAX), GV (IMAX,JMAX,KMAX),
45 3 GQ (IMAX,JMAX,KMAX), AGT (IMAX,JMAX,KMAX),
46 4 GCWC(IMAX,JMAX,KMAX), GCVR(IMAX,JMAX,KMAX),
47 5 GUMB(IMAX,JMAX,KMAX),
48 6 GSST(IMAX,JMAX) , GSNW(IMAX,JMAX)
49 DIMENSION VLG(IMAX,JMAX,KMAX)
50 C DIMENSION WRK1(IMAX,JMAX,KMAX), WRK2(IMAX,JMAX,KMAX),
51 REAL * 8 WRK1(IMAX,JMAX,KMAX), WRK2(IMAX,JMAX,KMAX)
52 DIMENSION WRK3(IMAX,JMAX,KMAX), WRK4(IMAX,JMAX,KMAX),
53 2 WRK5(IMAX,JMAX,KMAX), WRK6(IMAX,JMAX,KMAX)
54 CHARACTER*4 ALVL
55 INTEGER*2 I2(IDIM*JDIM)
56 REAL*8 WRK(IDIM,JDIM)
57 DIMENSION SSTA(ISST*JSST), SEWA(ISNW,JSNW)
58 DIMENSION COLRAD(JMAX), DY(JMAX), LY(JMAX)
59 DIMENSION WORK(362,182),DP(4,IMAX,JMAX)
60 INTEGER*2 IP(2,IMAX,JMAX)
61 REAL*8 GAUL(JMAX),GAUW(JMAX),COCOT(JMAX)
62 COMMON/CTETEN/TABLE(25000)
63 COMMON/DTETEN/DTABLE(25000)
64 REAL*8 TABLE,DTABLE,RGSA,G
65 DIMENSION RLAT(MAXJZ), ZDAT(MAXJZ,KMAX)
66 C
67 NAMELIST /NAMFIL/ NALFL,NVPFL,NGSFL,NSSTFL,NSNWFL,NINFL,
68 1 KTLAG,IDCHCK,NDIGFL,NTPFL,NALOT,NRSFL
69 NAMELIST /HEADIN/ TYPE,FILE,KTUNIT,IDTYPE,
70 1 IBACK,NNSP
71 C------------------------------------------------------------------------
72 C NALFL : 3DOI INPUT FILE
73 C NVPFL : VERTIAL LEVEL DEF. FILE
74 C NTPFL : TOPO FILE
75 C NALOT : 3DOI INPUT SAVE FILE
76 C NRSFL : UNPACK INPUT FILE
77 C------------------------------------------------------------------------
78 NAMELIST /NAMVER/ MODEL, RESL, EXPR, CINF
79 C
80 DATA RHMIN/1.0E-3/
81 DATA GRAV,ER,GASR,GAMMA/9.80665,6371.E3,287.04,0.0050/
82 DATA TLAPS,QCONS,QMIN,KST,ITERMX/2.0E-3,2.5E-6,1.0E-10,10,3/
83 C
84 DATA NALFL ,NGSFL ,NSSTFL,NSNWFL,NINFL ,NVPFL ,NALOT,NRSFL
85 1 / 1, 2, -1, -1, 11, 21, 12, -1/
86 DATA KTLAG / 6/
87 DATA IDCHCK/ 1/
88 DATA A/0.00000000000D+00,0.00000000000D+00,0.00000000000D+00,
89 & 0.00000000000D+00,1.546082500000000,5.614406590000000,
90 & 12.42546270000000,21.63197330000000,32.59785460000000,
91 & 44.61235050000000,57.01704410000000,69.26280210000000,
92 & 80.92097470000000,91.66931150000001,101.2670900000000,
93 & 109.5278170000000,116.2947540000000,121.4214780000000,
94 & 124.7591550000000,126.1514430000000,125.4377290000000,
95 & 122.4657440000000,117.1135710000000,109.3194430000000,
96 & 99.11479190000000,86.65005490000000,72.19601440000000,
97 & 56.09729000000000,38.66041560000000,19.99998470000000,
98 & 0.00000000000D+00/
99 DATA B/1.0000000000000,0.9889042970000000,0.9682830569999999,
100 & 0.9399999980000000,0.9042294030000000,0.8613848090000000,
101 & 0.8124753240000000,0.7589231130000000,0.7022829060000000,
102 & 0.6440208549999999,0.5853865740000000,0.5273658630000000,
103 & 0.4706876280000000,0.4158638720000000,0.3632441160000000,
104 & 0.3130739930000000,0.2655510310000000,0.2208738920000000,
105 & 0.1792818900000000,0.1410827640000000,0.1066635850000000,
106 & 7.647979300000D-02,5.101471400000D-02,3.070007300000D-02,
107 & 1.579232499999D-02,6.205350000000D-03,1.324939000000D-03,
108 & 0.000000000000D+00,0.000000000000D+00,0.000000000000D+00,
109 & 0.000000000000D+00/
110 C
111 C =================================================================
112 C >>> READ ANAL TIME <<<
113 C =================================================================
114 READ(94,'(I4,3I2)') (IDATE(I),I=1,4)
115 IDATE(5)=0
116 C =================================================================
117 C >>> NAMELIST (NAMFIL) <<<
118 C =================================================================
119 READ(95,NAMFIL)
120 READ(95,HEADIN)
121 WRITE(6,NAMFIL)
122 WRITE(6,HEADIN)
123 C =================================================================
124 C >>> Select Input Source <<<
125 C =================================================================
126 CALL GETENV('FROMUNPACK',FROMUNPACK)
127 IF (LEN_TRIM(FROMUNPACK).EQ.0) THEN
128 IUNPACK=0
129 ELSE
130 READ(FROMUNPACK,'(I1)') IUNPACK
131 END IF
132 WRITE(6,*)'IUNPACK=',IUNPACK
133 C =================================================================
134 C >>> GENERATE GAUSSIAN LATITUDES <<<
135 C =================================================================
136 CALL GAUSS(GAUL,GAUW,JMAX)
137 DO 800 J=1,JMAX
138 COLRAD(J)=ACOS(GAUL(J))
139 800 CONTINUE
140 DO J=1,JMAXHF
141 *vdir nodep
142 GW ( J)=0.5*DGW (J)
143 GW (JMAX+1-J)=0.5*DGW (J)
144 COSCLT( J)= DCOSCL(J)
145 COSCLT(JMAX+1-J)= -DCOSCL(J)
146 SINCLT( J)=SQRT(1.0-DCOSCL(J)**2)
147 SINCLT(JMAX+1-J)=SQRT(1.0-DCOSCL(J)**2)
148 END DO
149 CALL ZMNLAT( RLAT, MAXJZ, COLRAD, JMAX )
150 C
151 C =================================================================
152 C >>> TETEN <<<
153 C =================================================================
154 ICE = 1
155 CALL TETEN(ICE)
156 C =================================================================
157 C >>> READ TOPO FILE
158 C =================================================================
159 IF (NTPFL.GT.0) THEN
160 READ(NTPFL)NWV,DUM,IGRD,JGRD
161 IF ((IGRD.NE.IMAX).OR.(JGRD.NE.JMAX)) THEN
162 WRITE(*,*)' TOPO DIM DOES NOT MATCH'
163 WRITE(*,*)'IMAX=',IMAX,' IGRD=',IGRD
164 WRITE(*,*)'JMAX=',JMAX,' JGRD=',JGRD
165 STOP 9988
166 END IF
167 READ(NTPFL)
168 READ(NTPFL)
169 READ(NTPFL)GPHIS
170 WRITE(*,*)'GRID DISTANCE=',DUM
171 END IF
172 C---------------------------------------------------------------------
173 C READ INPUT DATA
174 C---------------------------------------------------------------------
175 IF (NRSFL.LE.0) THEN
176
177 CALL REDDAT_ASCII
178 CLSW CALL REDDAT_BIN
179 I(NALFL ,IMAXE ,JMAXE ,KMAX , PSE,
180 O GTE ,GUE ,GVE ,GQE )
181 C---------------------------------------------------------------------
182 C +++ CONVERT LAT/LON to GAUSS
183 C---------------------------------------------------------------------
184 CALL LT2GAU (PSE,IMAXE,JMAXE,IMAX,JMAX,
185 1 COLRAD,PS,DY,LY)
186 DO K = 1, KMAX
187 CALL LT2GAU (GTE(:,:,K),IMAXE,JMAXE,IMAX,JMAX,
188 1 COLRAD,GT(:,:,K),DY,LY)
189 CALL LT2GAU (GUE(:,:,K),IMAXE,JMAXE,IMAX,JMAX,
190 1 COLRAD,GU(:,:,K),DY,LY)
191 CALL LT2GAU (GVE(:,:,K),IMAXE,JMAXE,IMAX,JMAX,
192 1 COLRAD,GV(:,:,K),DY,LY)
193 CALL LT2GAU (GQE(:,:,K),IMAXE,JMAXE,IMAX,JMAX,
194 1 COLRAD,GQ(:,:,K),DY,LY)
195 ENDDO
196 C =================================================================
197 C >>> PS, TEMP, Q -> Z
198 C =================================================================
199 RGAS = 287.04
200 G = 9.80665
201 CALL GPLHGT
202 I (PS,GT,GQ,GPHIS,IMAX,JMAX,KMAX,RGAS,G,A,B,
203 I 1,JMAX,
204 O GZ)
205
206 CLSW do k=1,22,3
207 CLSW do j=1,jmax
208 CLSW write(99,FMT='(10F12.5,1x)') (GZ(I,J,K),I=1,IMAX)
209 CLSW enddo
210 CLSW enddo
211 C ==================================================================
212 C >>> SAVE INPUT DATA
213 C ==================================================================
214 IF (NALOT.GT.0) THEN
215 WRITE(NALOT)PS
216 WRITE(NALOT)GZ
217 WRITE(NALOT)GU
218 WRITE(NALOT)GV
219 WRITE(NALOT)GQ
220 WRITE(NALOT)GT
221 END IF
222 ELSE ! START WITH UNPACK FILE
223 LARHM=20
224 READ(NRSFL)IDATE
225 READ(NRSFL)PS
226 READ(NRSFL)GZ
227 READ(NRSFL)GU
228 READ(NRSFL)GV
229 READ(NRSFL)GQ
230 READ(NRSFL)AGT
231
232 END IF ! READ ANAL FINISH
233
234 CLSW write(99,*) ' Gauss GT'
235 CLSW do k=1,2
236 CLSW do j=1,jmax
237 CLSW write(99,FMT='(10F12.5,1x)') (GT(I,J,k),I=1,IMAX)
238 CLSW enddo
239 CLSW enddo
240 C---------------------------------------------------------------------
241 C DO J = 1, JMAX
242 C write(99,FMT='(10F12.5,1x)') (GAU(I,J),I=1,IMAX)
243 C ENDDO
244
245 1000 CONTINUE
246
247 C =================================================================
248 C >>> NAMELIST (NAMVER) <<<
249 C =================================================================
250 CINF(1)=' ';CINF(2)=' ';CINF(3)=' ';CINF(4)=' ';CINF(5)=' '
251 CINF(6)=' ';CINF(7)=' ';CINF(8)=' ';CINF(9)=' ';CINF(10)=' '
252 READ(95,NAMVER)
253 WRITE(6,NAMVER)
254 C =================================================================
255 IF(NGSFL.GE.0) THEN
256 CALL REDGES
257 I(NGSFL ,IMAX ,JMAX ,KMAX ,KTLAG ,IDATE ,IDCHCK,
258 O IDGES ,AGD ,BGD ,AGM ,BGM ,GCWC ,GCVR ,GUMB ,
259 W I2 ,IDSST )
260 ENDIF
261 C =================================================================
262 C >>> Z -> TV <<<
263 C =================================================================
264 C CALL CTIME( 4, 'ZE2TVE ' )
265 C >>> GT IS TV (OUTPUT)
266 IF (NTPFL.LT.0) THEN
267 CALL GH2TV(GZ, GT, PS, GPHIS, A, B,
268 1 IMAX , JMAX , KMAX ,WRK1 , WRK2 , WRK3 , WRK4)
269 ELSE
270 CALL ZE2TVE( GZ , GT , PS , A , B ,
271 I IMAX , JMAX , KMAX ,
272 W VLG , WRK1 , WRK2 , WRK3 , WRK4 , WRK5 ,
273 W WRK6 )
274 C
275 CLSW write(99,*) ' Z->TV'
276 CLSW do k=1,2
277 CLSW do j=1,jmax
278 CLSW write(99,FMT='(10F12.5,1x)') (GT(I,J,K),I=1,IMAX)
279 CLSW enddo
280 CLSW enddo
281 END IF
282 CLSW CALL ZMNT( ZDAT, MAXJZ, KMAX, GT , IMAX, JMAX )
283 CLSW CALL OUTZ( ZDAT, MAXJZ, KMAX, 'TV ',
284 CLSW 1 'TV ', 'K ',
285 CLSW 2 0, RLAT, 'KMAX' )
286
287 C =================================================================
288 C >>> RH, TV -> Q, T <<<
289 C =================================================================
290 IDX=1
291 CALL CRH2SHA
292 I(IMAX*JMAX, KMAX, PS, A, B, GRAV,GASR,TLAPS,QCONS,QMIN,KST,ITERMX,
293 I IDX, LARHM,
294 O GQ, GT)
295 write(99,*) ' after RH, TV -> Q, T'
296 do k=1,2
297 do j=1,jmax
298 write(99,FMT='(10F12.5,1x)') (GT(I,J,K),I=1,IMAX)
299 enddo
300 enddo
301
302 C *****************************************************************
303 C >>> OUTPUT INITIAL VALUE <<<
304 C *****************************************************************
305 C =================================================================
306 C >>> HEADER <<<
307 C =================================================================
308 CALL WRTHED
309 I(NINFL ,
310 I 'GVS1',IDATE ,'INITETA ',MODEL, RESL,
311 I EXPR ,'HOUR',1 ,0 ,0 ,
312 I IMAX ,JMAX ,'GAUS',360.0/IMAX, REAL(JMAX),
313 I 1.0 ,(JMAX+1)/2.0, 0.0 ,0.0 ,
314 I 'ETA ',KMAX ,A ,B ,
315 I IMAX ,JMAX ,'GAUS',360.0/IMAX, REAL(JMAX),
316 I 1.0 ,(JMAX+1)/2.0, 0.0 ,0.0 ,
317 I 'ETA ',KMAX ,A ,B ,
318 I CINF )
319 C
320 C =================================================================
321 C >>> PS <<<
322 C =================================================================
323 CALL MOVERD(PS, WRK, IMAX*JMAX)
324 CALL WRTDAT
325 1(NINFL , IDATE , -1 , 'SURF', 'P ',
326 2 'P ', 'HPA ',
327 3 0 , 0 , WRK , IMAX , JMAX , I2 )
328 C
329 C =================================================================
330 C >>> U, V <<<
331 C =================================================================
332 DO 9030 K=1,KMAX
333 CALL MOVERD(GU(1,1,K), WRK, IMAX*JMAX)
334 WRITE(ALVL(1:4), '(I4)') K
335 CALL WRTDAT
336 1 (NINFL , IDATE , -1 , ALVL , 'U ',
337 2 'U ', 'M/S ',
338 3 0 , 0 , WRK , IMAX , JMAX , I2 )
339 9030 CONTINUE
340 DO 9040 K=1,KMAX
341 CALL MOVERD(GV(1,1,K), WRK, IMAX*JMAX)
342 WRITE(ALVL(1:4), '(I4)') K
343 CALL WRTDAT
344 1 (NINFL , IDATE , -1 , ALVL , 'V ',
345 2 'V ', 'M/S ',
346 3 0 , 0 , WRK , IMAX , JMAX , I2 )
347 9040 CONTINUE
348 C =================================================================
349 C >>> T, Q <<<
350 C =================================================================
351 DO 9010 K=1,KMAX
352 CALL MOVERD(GT(1,1,K), WRK, IMAX*JMAX)
353 WRITE(ALVL(1:4), '(I4)') K
354 CALL WRTDAT
355 1 (NINFL , IDATE , -1 , ALVL , 'T ',
356 2 'T ', 'K ',
357 3 0 , 0 , WRK , IMAX , JMAX , I2 )
358 9010 CONTINUE
359 DO 9020 K=1,KMAX
360 CALL MOVERD(GQ(1,1,K), WRK, IMAX*JMAX)
361 WRITE(ALVL(1:4), '(I4)') K
362 CALL WRTDAT
363 1 (NINFL , IDATE , -1 , ALVL , 'Q ',
364 2 'Q ', 'KG/KG ',
365 3 0 , 0 , WRK , IMAX , JMAX , I2 )
366 9020 CONTINUE
367 C =================================================================
368 C >>> SAVE INPUT FIELD FOR DIAG.
369 C =================================================================
370 IF (NDIGFL.GT.0) THEN
371 WRITE(NDIGFL)GT
372 WRITE(NDIGFL)GQ
373 END IF
374 C
375 C =================================================================
376 C >>> CWC, CVR <<<
377 C =================================================================
378 IF(NGSFL.GT.0) THEN
379 DO 9050 K=1,KMAX
380 CALL MOVERD(GCWC(1,1,K), WRK, IMAX*JMAX)
381 WRITE(ALVL(1:4), '(I4)') K
382 CALL WRTDAT
383 1 (NINFL , IDATE , -1 , ALVL , 'CWC ',
384 2 'CLOUD WATER CONTENT ', 'KG/KG ',
385 3 0 , 0 , WRK , IMAX , JMAX , I2 )
386 9050 CONTINUE
387 DO 9060 K=1,KMAX
388 CALL MOVERD(GCVR(1,1,K), WRK, IMAX*JMAX)
389 WRITE(ALVL(1:4), '(I4)') K
390 CALL WRTDAT
391 1 (NINFL , IDATE , -1 , ALVL , 'CVR ',
392 2 'CLOUD COVER ', '- ',
393 3 0 , 0 , WRK , IMAX , JMAX , I2 )
394 9060 CONTINUE
395 C
396 C =================================================================
397 C >>> UMB <<<
398 C =================================================================
399 DO 9070 K=1,KMAX
400 CALL MOVERD(GUMB(1,1,K), WRK, IMAX*JMAX)
401 WRITE(ALVL(1:4), '(I4)') K
402 CALL WRTDAT
403 1 (NINFL , IDATE , -1 , ALVL , 'UMB ',
404 2 'UPWARD MASS FLUX AT CLOUD BASE ', 'KG/S/M**2 ',
405 3 0 , 0 , WRK , IMAX , JMAX , I2 )
406 9070 CONTINUE
407 END IF !NGSFL>0
408 C
409 C *****************************************************************
410 C >>> SST ANOMALY <<<
411 C *****************************************************************
412 IF( NSSTFL.NE.-1 ) THEN
413 CALL GETTYP(NSSTFL,IOTYP)
414 C
415 IF(IOTYP.EQ.1) THEN
416 C CALL GVDFIR(NSSTFL,
417 C 1 IDSST,IBACK,IM,JM,MDLINF,DTHPRO,CINF,ITYP,IRTN)
418 C WRITE(6,*) 'GVDFIR:IRTN=',IRTN
419 C CALL GVDFNR(NSSTFL,IDSST,0,'SURF','SSTA',
420 C 1 LABEL,JTINF,SSTA,IRTN)
421 C WRITE(6,*) 'GVDFNR:IRTN=',IRTN
422 WRITE(*,*)' UNKNOWN IOTYP:1'
423 STOP 9999
424 ELSE IF(IOTYP.EQ.3) THEN
425 C =================================================================
426 C >>> HEADER <<<
427 C =================================================================
428 CALL REDHED
429 I(NSSTFL,
430 O TYPE ,IDSST ,FILE ,MODEL ,RESL ,EXPR ,KTUNIT,IDTYPE,
431 O IBACK ,NNSP ,
432 O IMD ,JMD ,NPROD ,FLONID, FLATID,
433 O XID ,XJD ,XLATD ,XLOND ,
434 O VCODD ,KMD ,A ,B ,
435 O IMM ,JMM ,NPROM ,FLONIM, FLATIM,
436 O XIM ,XJM ,XLATM ,XLONM ,
437 O VCODM ,KMM ,AAM ,BBM ,
438 O CINF )
439 C =================================================================
440 C >>> SST ANOMALLY <<<
441 C =================================================================
442 DO 1 I=1,NNSP
443 READ(NSSTFL)
444 1 CONTINUE
445 3001 CALL REDDAT
446 I(NSSTFL,
447 O IDSST , KT ,
448 O LEVEL , ELEM , TITLE , UNIT , KTSD , KTSA ,
449 O SSTA , IRTN ,
450 I ISST , JSST , 1 ,
451 W BASE , AMP ,I2 )
452 IF(ELEM.NE.'SSTA') GOTO 3001
453 WRITE(6,*) '## ', TITLE, '(',UNIT,')'
454 ENDIF
455 C
456 WRITE(6,*) '## ', IDSST, KT
457 IF( IDCHCK.EQ.1 ) THEN
458 CALL CVDATE( IDGES, IDSST, 24 )
459 IF( IDATE(1).NE.IDGES(1).OR.IDATE(2).NE.IDGES(2).OR.
460 1 IDATE(3).NE.IDGES(3) ) THEN
461 WRITE(6,*) 'SSTA : DATE CHECK ERROR'
462 STOP 999
463 ENDIF
464 ENDIF
465 C
466 CALL LT2GAU(SSTA,ISST,JSST,IMAX,JMAX,COLRAD,GSST,DY,LY)
467 CALL MOVERD(GSST, WRK, IMAX*JMAX)
468 CALL WRTDAT
469 1(NINFL , IDATE , -1 , 'SURF', 'SSTA',
470 2 'SST ANOMALLY ', 'K ',
471 3 0 , 0 , WRK , IMAX , JMAX , I2 )
472 WRITE(6,*) '## SST ANOMALLY WAS WRITTEN'
473 C
474 ENDIF
475 C
476 C *****************************************************************
477 C >>> SNOW ANALYSIS <<<
478 C *****************************************************************
479 IF( NSNWFL.NE.-1 ) THEN
480 C =================================================================
481 C >>> HEADER <<<
482 C =================================================================
483 CALL REDHED
484 I(NSNWFL,
485 O TYPE ,IDSST ,FILE ,MODEL ,RESL ,EXPR ,KTUNIT,IDTYPE,
486 O IBACK ,NNSP ,
487 O IMD ,JMD ,NPROD ,FLONID, FLATID,
488 O XID ,XJD ,XLATD ,XLOND ,
489 O VCODD ,KMD ,A ,B ,
490 O IMM ,JMM ,NPROM ,FLONIM, FLATIM,
491 O XIM ,XJM ,XLATM ,XLONM ,
492 O VCODM ,KMM ,AAM ,BBM ,
493 O CINF )
494 DO 2 I=1,NNSP
495 READ(NSNWFL)
496 2 CONTINUE
497 C =================================================================
498 C >>> SNOW ANALYSIS <<<
499 C =================================================================
500 CALL REDDAT
501 I(NSNWFL,
502 O IDSST , KT ,
503 O LEVEL , ELEM , TITLE , UNIT , KTSD , KTSA ,
504 O SEWA , IRTN ,
505 I ISNW , JSNW , 1 ,
506 W BASE , AMP ,I2 )
507 WRITE(6,*) '## ', TITLE, '(',UNIT,')'
508 WRITE(6,*) '## ', IDSST, KT
509 IF( IDCHCK.EQ.1 ) THEN
510 CALL CVDATE( IDGES, IDSST, 24 )
511 IF( IDATE(1).NE.IDGES(1).OR.IDATE(2).NE.IDGES(2).OR.
512 1 IDATE(3).NE.IDGES(3) ) THEN
513 WRITE(6,*) 'SNOW : DATE CHECK ERROR'
514 STOP 999
515 ENDIF
516 ENDIF
517 C -----
518 CALL SETWHT (IMAX,JMAX,DP,IP,GAUL,GAUW,COCOT)
519 DO 100 J=1,180
520 DO 100 I=1,360
521 WORK(I+1,J+1)=SEWA(I,J)
522 100 CONTINUE
523 DO 200 J=1,180
524 WORK( 1,J+1)=WORK(361,J+1)
525 WORK(362,J+1)=WORK( 2,J+1)
526 200 CONTINUE
527 DO 300 I=1,362
528 WORK(I, 1)=WORK(I, 2)
529 WORK(I,182)=WORK(I,181)
530 300 CONTINUE
531 CALL INTERP(WORK,GSNW,IMAX,JMAX,DP,IP)
532 C
533 DO 400 J=1,JMAX
534 DO 410 I=1,IMAX
535 GSNW(I,J)=GSNW(I,J)/100.0
536 410 CONTINUE
537 400 CONTINUE
538 C -----
539 CALL MOVERD(GSNW, WRK, IMAX*JMAX)
540 CALL WRTDAT
541 1(NINFL , IDATE , -1 , 'SURF', 'SEW ',
542 2 'SNOW EQUIVALENT WATER ', 'M ',
543 3 0 , 0 , WRK , IMAX , JMAX , I2 )
544 WRITE(6,*) '## SNOW ANALYSIS WAS WRITTEN'
545 ENDIF
546 C =================================================================
547 C >>> EOF <<<
548 C =================================================================
549 WRITE(6,*) '## PREGSM IS NORMAL ENDED'
550 C
551 STOP
552 END