1 SUBROUTINE PREGSM1(PS,GT,GU,GV,GQ,PSB,GTB,GUB,GVB,GQB,
2 & IMAXE,JMAXE,ISST,JSST,MAXJZ,IVAR,
3 & IMAX,JMAX,KMAX,IDIM,JDIM,MEND1,NEMD1,JEND1,
4 & ISNW,JSNW,JMAXHF,MNWAV,IMX) !shc start
5 INTEGER IDATE(5), IDGES(5), IDSST(5)
6 CHARACTER*8 FILE, MODEL, RESL
8 CHARACTER*4 TYPE, EXPR, KTUNIT, NPROD, NPROM, VCODD, VCODM
9 CHARACTER*4 LEVEL, ELEM
13 ! modified by shc p1 start
14 CHARACTER*80 CINF_X(10),CINF_temp
15 CHARACTER*4 VCODD_X, VCODM_X
16 ! modified by shc p1 end
21 CHARACTER*10 FROMUNPACK
24 DIMENSION A(KMAX+1), B(KMAX+1), AAM(KMAX+1), BBM(KMAX+1)
25 DIMENSION AGD(KMAX+1), BGD(KMAX+1), AGM(KMAX+1), BGM(KMAX+1)
26 DIMENSION GPHIS(IMAX*JMAX)
27 REAL, DIMENSION(IMAX,JMAX) :: GAU
28 DIMENSION PS (IMAX,JMAX), GRH (IMAX,JMAX,KMAX), !shc
29 1 GZ (IMAX,JMAX,KMAX), GT (IMAX,JMAX,KMAX),
30 2 GU (IMAX,JMAX,KMAX), GV (IMAX,JMAX,KMAX),
31 3 GQ (IMAX,JMAX,KMAX), AGT (IMAX,JMAX,KMAX),
32 4 GCWC(IMAX,JMAX,KMAX), GCVR(IMAX,JMAX,KMAX),
33 5 GUMB(IMAX,JMAX,KMAX),
34 6 GSST(IMAX,JMAX) , GSNW(IMAX,JMAX)
35 DIMENSION PSB (IMAX,JMAX), GRHB(IMAX,JMAX,KMAX), !shc start
36 1 GQB (IMAX,JMAX,KMAX), GTB (IMAX,JMAX,KMAX),
37 2 GUB (IMAX,JMAX,KMAX), GVB (IMAX,JMAX,KMAX) !shc end
39 DIMENSION VLG(IMAX,JMAX,KMAX)
40 C DIMENSION WRK1(IMAX,JMAX,KMAX), WRK2(IMAX,JMAX,KMAX),
41 REAL * 8 WRK1(IMAX,JMAX,KMAX), WRK2(IMAX,JMAX,KMAX)
42 DIMENSION WRK3(IMAX,JMAX,KMAX), WRK4(IMAX,JMAX,KMAX),
43 2 WRK5(IMAX,JMAX,KMAX), WRK6(IMAX,JMAX,KMAX)
45 !modified by shc I2 start
46 c INTEGER*2 I2(IDIM*JDIM) !shc-rizvi
47 INTEGER I2(IDIM*JDIM/2) !shc-rizvi
48 !modified by shc I2 end
50 DIMENSION SSTA(ISST*JSST), SEWA(ISNW,JSNW)
51 DIMENSION COLRAD(JMAX), DY(JMAX), LY(JMAX)
52 DIMENSION WORK(362,182),DP(4,IMAX,JMAX)
53 INTEGER*2 IP(2,IMAX,JMAX)
54 REAL*8 GAUL(JMAX),GAUW(JMAX),COCOT(JMAX)
55 COMMON/CTETEN/TABLE(25000)
56 COMMON/DTETEN/DTABLE(25000)
57 REAL*8 TABLE,DTABLE,RGSA
58 real rdum (imax,jmax,kmax) !shcimsi
59 !modified by shc AB start
61 !modified by shc AB end
62 DIMENSION RLAT(MAXJZ), ZDAT(MAXJZ,KMAX)
64 NAMELIST /NAMFIL/ NALFL,NVPFL,NGSFL,NSSTFL,NSNWFL,NINFL,
65 1 KTLAG,IDCHCK,NDIGFL,NTPFL,NALOT,NRSFL
66 C NAMELIST /HEADIN/ TYPE,FILE,KTUNIT,IDTYPE,
68 C------------------------------------------------------------------------
69 C NALFL : 3DOI INPUT FILE
70 C NVPFL : VERTIAL LEVEL DEF. FILE
72 C NALOT : 3DOI INPUT SAVE FILE
73 C NRSFL : UNPACK INPUT FILE
74 C------------------------------------------------------------------------
75 NAMELIST /NAMVER/ MODEL, RESL, EXPR, CINF
78 DATA TLAPS,QCONS,QMIN,KST,ITERMX/2.0E-3,2.5E-6,1.0E-10,10,3/
80 DATA NALFL ,NGSFL ,NSSTFL,NSNWFL,NINFL ,NVPFL ,NALOT,NRSFL
81 1 / 1, 2, -1, -1, 11, 21, 12, -1/
84 !modified by shc AB start
85 c The definition A and B by 'DATA' was removed
86 !modified by shc AB end
87 !modified by shc AB start
88 READ(115) MMM0,MMM1,MMM2,FFF1,MMM3,MMM4,
89 1 (A(K),K=1,MMM4),(B(K),K=1,MMM4)
90 A(KMAX+1)=0.0; B(KMAX+1)=0.0
91 !modified by shc AB end
93 C =================================================================
94 C >>> READ ANAL TIME <<<
95 C =================================================================
96 READ(94,'(I4,3I2)') (IDATE(I),I=1,4)
98 C =================================================================
99 C >>> NAMELIST (NAMFIL) <<<
100 C =================================================================
105 !modified by shc p1 start
107 !modified by shc p1 end
108 C =================================================================
109 C >>> Select Input Source <<<
110 C =================================================================
112 c CALL GETENV('FROMUNPACK',FROMUNPACK)
113 c IF (LEN_TRIM(FROMUNPACK).EQ.0) THEN
116 c READ(FROMUNPACK,'(I1)') IUNPACK
118 c WRITE(6,*)'IUNPACK=',IUNPACK
120 C =================================================================
121 C >>> GENERATE GAUSSIAN LATITUDES <<<
122 C =================================================================
123 CALL GAUSS(GAUL,GAUW,JMAX)
125 COLRAD(J)=ACOS(GAUL(J))
127 CALL ZMNLAT( RLAT, MAXJZ, COLRAD, JMAX )
129 C =================================================================
131 C =================================================================
134 C =================================================================
136 C =================================================================
138 c go to 33333 ! shc For T63 only
140 READ(NTPFL)NWV,DUM,IGRD,JGRD
141 IF ((IGRD.NE.IMAX).OR.(JGRD.NE.JMAX)) THEN
142 WRITE(*,*)' TOPO DIM DOES NOT MATCH'
143 WRITE(*,*)'IMAX=',IMAX,' IGRD=',IGRD
144 WRITE(*,*)'JMAX=',JMAX,' JGRD=',JGRD
150 WRITE(*,*)'GRID DISTANCE=',DUM
152 C---------------------------------------------------------------------
153 C +++ CONVERT LAT/LON to GAUSS
154 C---------------------------------------------------------------------
156 c READ(NTPFL,'(10f10.3)')GPHIS !shc For T63 only
158 C =================================================================
159 C >>> PS, TEMP, Q -> RH
160 C =================================================================
162 I (GT ,GQ ,PS ,IMAX,JMAX,KMAX,A,B,
165 I (GTB ,GQB ,PSB ,IMAX,JMAX,KMAX,A,B,
167 PIHF = pi*0.5 !shc start
171 AANAL = GRH(I,J,K)-GRHB(I,J,K) !shc end
172 AGES = GRHB(I,J,K) !shc start
173 IF ( AGES.LE.0.0 .AND. AANAL.LE.0.0 ) THEN
174 AANAL = 1.0E-6 ! \214\270\202\351\227]\222n\202\252\202\310\202\242
175 ELSEIF( AGES.GE.1.0 .AND. AANAL.GE.0.0 ) THEN
176 AANAL = 1.0 ! \221\235\202\246\202\351\227]\222n\202\252\202\310\202\242
178 IF( AANAL.GT.0.0 ) THEN
179 RES = 1.0-AGES ! \213\226\227e\227\312
181 RES = -AGES !shc start
183 IF( ABS(AANAL).LE.ABS(RES*0.5) ) THEN ! \224\274\225\252\210\310\211\272
184 AANAL = AGES+AANAL ! \202\273\202\314\202\334\202\334
186 AA = RES/PIHF*0.5 !shc end
187 XN = AANAL-RES*0.5 !shc start
188 AANAL = AGES + 0.5*RES + AA*ATAN(XN/AA)
191 AANAL = MAX( AANAL, 1.0E-6 ) ! \215\305\217I\222\262\220\256
192 AANAL = MIN( AANAL, 1.0E0 )
196 3739 CONTINUE !shc end
198 C =================================================================
199 C >>> PS, TEMP, Q -> Z
200 C =================================================================
202 I (PS,GT,GQ,GPHIS,IMAX,JMAX,KMAX,gas_constant,gravity,A,B,
208 CLSW write(99,FMT='(10F12.5,1x)') (GZ(I,J,K),I=1,IMAX)
211 C ==================================================================
212 C >>> SAVE INPUT DATA
213 C ==================================================================
222 Crizvi ELSE ! START WITH UNPACK FILE
224 Crizvi READ(NRSFL)IDATE
230 Crizvi READ(NRSFL)AGT
232 Crizvi END IF ! READ ANAL FINISH
233 print*,' Gaussian lats data size ',IMAX, JMAX, KMAX
234 write(661,'(10f10.3)')PS
235 write(661,'(10f10.3)')GU
236 write(661,'(10f10.3)')GV
237 write(661,'(10f10.3)')GT
238 write(661,'(10f10.3)')GQ
240 CLSW write(99,*) ' Gauss GT'
243 CLSW write(99,FMT='(10F12.5,1x)') (GT(I,J,k),I=1,IMAX)
246 C---------------------------------------------------------------------
248 C write(99,FMT='(10F12.5,1x)') (GAU(I,J),I=1,IMAX)
253 C =================================================================
254 C >>> NAMELIST (NAMVER) <<<
255 C =================================================================
256 CINF(1)=' ';CINF(2)=' ';CINF(3)=' ';CINF(4)=' ';CINF(5)=' '
257 CINF(6)=' ';CINF(7)=' ';CINF(8)=' ';CINF(9)=' ';CINF(10)=' '
260 C =================================================================
263 I(NGSFL ,IMAX ,JMAX ,KMAX ,KTLAG ,IDATE ,IDCHCK,
264 O IDGES ,AGD ,BGD ,AGM ,BGM ,GCWC ,GCVR ,GUMB ,
267 !modified by shc ZT start
269 !modified by shc ZT end
270 C =================================================================
272 C =================================================================
273 C CALL CTIME( 4, 'ZE2TVE ' )
274 C >>> GT IS TV (OUTPUT)
276 CALL GH2TV(GZ, GT, PS, GPHIS, A, B,
277 1 IMAX , JMAX , KMAX ,WRK1 , WRK2 , WRK3 , WRK4)
279 CALL ZE2TVE( GZ , GT , PS , A , B ,
280 I IMAX , JMAX , KMAX ,
281 W VLG , WRK1 , WRK2 , WRK3 , WRK4 , WRK5 ,
284 CLSW write(99,*) ' Z->TV'
287 CLSW write(99,FMT='(10F12.5,1x)') (GT(I,J,K),I=1,IMAX)
291 CLSW CALL ZMNT( ZDAT, MAXJZ, KMAX, GT , IMAX, JMAX )
292 CLSW CALL OUTZ( ZDAT, MAXJZ, KMAX, 'TV ',
294 CLSW 2 0, RLAT, 'KMAX' )
296 C =================================================================
297 C >>> RH, TV -> Q, T <<<
298 C =================================================================
309 I(IMAX*JMAX, KMAX, PS, A, B, gravity,gas_constant,
310 I TLAPS,QCONS,QMIN,KST,ITERMX,
313 C write(99,*) ' after RH, TV -> Q, T'
316 C write(99,FMT='(10F12.5,1x)') (GT(I,J,K),I=1,IMAX)
319 !modified by shc ZT start
321 !modified by shc ZT end
323 !modified by shc q0 start
327 IF (GQ(I,J,K).LT.0.00) GQ(I,J,K)=1.E-06
331 print *, 'shcimsi q0=',1.E-06
332 !modified by shc q0 end
334 !modified by shc p1 start
347 I 'GVS1',IDATE ,'ANALETA ','GANL9603','T213L30L',
348 I 'R03 ','HOUR',1 ,0 ,0 ,
349 I IMAX ,JMAX ,'GAUS', 0.0 , 0.0,
350 I 0.0 ,0.0, 0.0 ,0.0 ,
351 I VCODD_X,KMAX ,A ,B ,
352 I IMAX ,JMAX ,'GAUS', 0.0 , 0.0,
353 I 0.0 ,0.0, 0.0 ,0.0 ,
354 I VCODM_X,KMAX ,A ,B ,
358 CALL MOVERD(GPHIS, WRK, IMAX*JMAX)
360 1(NANFL , IDATE , KT , 'SURF', 'TOPO',
361 2 'GEOPOTENTIAL HEIGHT ', 'M ',
362 3 0 , 0 ,WRK , IMAX , JMAX , I2 )
364 CALL MOVERD(PS, WRK, IMAX*JMAX)
366 1(NANFL , IDATE , KT , 'SURF', 'P ',
367 2 'SURFACE PRESSURE ', 'HPA ',
368 3 0 , 0 ,WRK , IMAX , JMAX , I2 )
370 CALL MOVERD(GU(1,1,1), WRK, IMAX*JMAX)
372 1(NANFL , IDATE , KT , 'SURF', 'U ',
373 2 'SURFACE U ', 'M/S ',
374 3 0 , 0 ,WRK , IMAX , JMAX , I2 )
376 CALL MOVERD(GV(1,1,1), WRK, IMAX*JMAX)
378 1(NANFL , IDATE , KT , 'SURF', 'V ',
379 2 'SURFACE V ', 'M/S ',
380 3 0 , 0 ,WRK , IMAX , JMAX , I2 )
382 CALL MOVERD(GT(1,1,1), WRK, IMAX*JMAX)
384 1(NANFL , IDATE , KT , 'SURF', 'T ',
385 2 'SURFACE T ', 'K ',
386 3 0 , 0 ,WRK , IMAX , JMAX , I2 )
388 CALL MOVERD(GRH(1,1,1), WRK, IMAX*JMAX)
390 1(NANFL , IDATE , KT , 'SURF', 'RH ',
391 2 'SURFACE RELATIVE HUMIDITY ', '0-1 ',
392 3 0 , 0 ,WRK , IMAX , JMAX , I2 )
395 CALL MOVERD(GU(1,1,K), WRK, IMAX*JMAX)
396 WRITE(ALVL(1:4), '(I4)') K
398 1 (NANFL , IDATE , KT , ALVL, 'U ',
400 3 0 , 0 ,WRK , IMAX , JMAX , I2 )
404 CALL MOVERD(GV(1,1,K), WRK, IMAX*JMAX)
405 WRITE(ALVL(1:4), '(I4)') K
407 1 (NANFL , IDATE , KT , ALVL, 'V ',
409 3 0 , 0 ,WRK , IMAX , JMAX , I2 )
413 CALL MOVERD(GZ(1,1,K), WRK, IMAX*JMAX)
414 WRITE(ALVL(1:4), '(I4)') K
416 1 (NANFL , IDATE , KT , ALVL, 'Z ',
417 2 'GEOPOTENTIAL HEIGHT ', 'M ',
418 3 0 , 0 ,WRK , IMAX , JMAX , I2 )
422 CALL MOVERD(GT(1,1,K), WRK, IMAX*JMAX)
423 WRITE(ALVL(1:4), '(I4)') K
425 1 (NANFL , IDATE , KT , ALVL, 'T ',
426 2 'TEMPERATURE ', 'K ',
427 3 0 , 0 ,WRK , IMAX , JMAX , I2 )
431 CALL MOVERD(GRH(1,1,K), WRK, IMAX*JMAX)
432 WRITE(ALVL(1:4), '(I4)') K
434 1 (NANFL , IDATE , KT , ALVL, 'RH ',
435 2 'RELATIVE HUMIDITY ', '0-1 ',
436 3 0 , 0 ,WRK , IMAX , JMAX , I2 )
440 CALL MOVERD(GQ(1,1,K), WRK, IMAX*JMAX)
441 WRITE(ALVL(1:4), '(I4)') K
443 1 (NANFL , IDATE , KT , ALVL, 'Q ',
444 2 'SPECIFIC HUMIDITY ', 'KG/KG ',
445 3 0 , 0 ,WRK , IMAX , JMAX , I2 )
447 WRITE(NANFL) IDATE,KT,0,' ',' '
448 !modified by shc p1 end
449 C *****************************************************************
450 C >>> OUTPUT INITIAL VALUE <<<
451 C *****************************************************************
452 C =================================================================
454 C =================================================================
457 I 'GVS1',IDATE ,'INITETA ',MODEL, RESL,
458 I EXPR ,'HOUR',1 ,0 ,0 ,
459 I IMAX ,JMAX ,'GAUS',360.0/IMAX, REAL(JMAX),
460 I 1.0 ,(JMAX+1)/2.0, 0.0 ,0.0 ,
461 I 'ETA ',KMAX ,A ,B ,
462 I IMAX ,JMAX ,'GAUS',360.0/IMAX, REAL(JMAX),
463 I 1.0 ,(JMAX+1)/2.0, 0.0 ,0.0 ,
464 I 'ETA ',KMAX ,A ,B ,
467 C =================================================================
469 C =================================================================
470 CALL MOVERD(PS, WRK, IMAX*JMAX)
472 1(NINFL , IDATE , -1 , 'SURF', 'P ',
474 3 0 , 0 , WRK , IMAX , JMAX , I2 )
476 C =================================================================
478 C =================================================================
480 CALL MOVERD(GU(1,1,K), WRK, IMAX*JMAX)
481 WRITE(ALVL(1:4), '(I4)') K
483 1 (NINFL , IDATE , -1 , ALVL , 'U ',
485 3 0 , 0 , WRK , IMAX , JMAX , I2 )
488 CALL MOVERD(GV(1,1,K), WRK, IMAX*JMAX)
489 WRITE(ALVL(1:4), '(I4)') K
491 1 (NINFL , IDATE , -1 , ALVL , 'V ',
493 3 0 , 0 , WRK , IMAX , JMAX , I2 )
495 C =================================================================
497 C =================================================================
499 CALL MOVERD(GT(1,1,K), WRK, IMAX*JMAX)
500 WRITE(ALVL(1:4), '(I4)') K
502 1 (NINFL , IDATE , -1 , ALVL , 'T ',
504 3 0 , 0 , WRK , IMAX , JMAX , I2 )
507 CALL MOVERD(GQ(1,1,K), WRK, IMAX*JMAX)
508 WRITE(ALVL(1:4), '(I4)') K
510 1 (NINFL , IDATE , -1 , ALVL , 'Q ',
512 3 0 , 0 , WRK , IMAX , JMAX , I2 )
514 C =================================================================
515 C >>> SAVE INPUT FIELD FOR DIAG.
516 C =================================================================
517 IF (NDIGFL.GT.0) THEN
522 C =================================================================
524 C =================================================================
527 CALL MOVERD(GCWC(1,1,K), WRK, IMAX*JMAX)
528 WRITE(ALVL(1:4), '(I4)') K
530 1 (NINFL , IDATE , -1 , ALVL , 'CWC ',
531 2 'CLOUD WATER CONTENT ', 'KG/KG ',
532 3 0 , 0 , WRK , IMAX , JMAX , I2 )
535 CALL MOVERD(GCVR(1,1,K), WRK, IMAX*JMAX)
536 WRITE(ALVL(1:4), '(I4)') K
538 1 (NINFL , IDATE , -1 , ALVL , 'CVR ',
539 2 'CLOUD COVER ', '- ',
540 3 0 , 0 , WRK , IMAX , JMAX , I2 )
543 C =================================================================
545 C =================================================================
547 CALL MOVERD(GUMB(1,1,K), WRK, IMAX*JMAX)
548 WRITE(ALVL(1:4), '(I4)') K
550 1 (NINFL , IDATE , -1 , ALVL , 'UMB ',
551 2 'UPWARD MASS FLUX AT CLOUD BASE ', 'KG/S/M**2 ',
552 3 0 , 0 , WRK , IMAX , JMAX , I2 )
556 C *****************************************************************
557 C >>> SST ANOMALY <<<
558 C *****************************************************************
559 IF( NSSTFL.NE.-1 ) THEN
560 CALL GETTYP(NSSTFL,IOTYP)
563 C CALL GVDFIR(NSSTFL,
564 C 1 IDSST,IBACK,IM,JM,MDLINF,DTHPRO,CINF,ITYP,IRTN)
565 C WRITE(6,*) 'GVDFIR:IRTN=',IRTN
566 C CALL GVDFNR(NSSTFL,IDSST,0,'SURF','SSTA',
567 C 1 LABEL,JTINF,SSTA,IRTN)
568 C WRITE(6,*) 'GVDFNR:IRTN=',IRTN
569 WRITE(*,*)' UNKNOWN IOTYP:1'
571 ELSE IF(IOTYP.EQ.3) THEN
572 C =================================================================
574 C =================================================================
577 O TYPE ,IDSST ,FILE ,MODEL ,RESL ,EXPR ,KTUNIT,IDTYPE,
579 O IMD ,JMD ,NPROD ,FLONID, FLATID,
580 O XID ,XJD ,XLATD ,XLOND ,
582 O IMM ,JMM ,NPROM ,FLONIM, FLATIM,
583 O XIM ,XJM ,XLATM ,XLONM ,
584 O VCODM ,KMM ,AAM ,BBM ,
586 C =================================================================
587 C >>> SST ANOMALLY <<<
588 C =================================================================
595 O LEVEL , ELEM , TITLE , UNIT , KTSD , KTSA ,
599 IF(ELEM.NE.'SSTA') GOTO 3001
600 WRITE(6,*) '## ', TITLE, '(',UNIT,')'
603 WRITE(6,*) '## ', IDSST, KT
604 IF( IDCHCK.EQ.1 ) THEN
605 CALL CVDATE( IDGES, IDSST, 24 )
606 IF( IDATE(1).NE.IDGES(1).OR.IDATE(2).NE.IDGES(2).OR.
607 1 IDATE(3).NE.IDGES(3) ) THEN
608 WRITE(6,*) 'SSTA : DATE CHECK ERROR'
613 CALL LT2GAU(SSTA,ISST,JSST,IMAX,JMAX,COLRAD,GSST,DY,LY)
614 CALL MOVERD(GSST, WRK, IMAX*JMAX)
616 1(NINFL , IDATE , -1 , 'SURF', 'SSTA',
617 2 'SST ANOMALLY ', 'K ',
618 3 0 , 0 , WRK , IMAX , JMAX , I2 )
619 WRITE(6,*) '## SST ANOMALLY WAS WRITTEN'
623 C *****************************************************************
624 C >>> SNOW ANALYSIS <<<
625 C *****************************************************************
626 IF( NSNWFL.NE.-1 ) THEN
627 C =================================================================
629 C =================================================================
632 O TYPE ,IDSST ,FILE ,MODEL ,RESL ,EXPR ,KTUNIT,IDTYPE,
634 O IMD ,JMD ,NPROD ,FLONID, FLATID,
635 O XID ,XJD ,XLATD ,XLOND ,
637 O IMM ,JMM ,NPROM ,FLONIM, FLATIM,
638 O XIM ,XJM ,XLATM ,XLONM ,
639 O VCODM ,KMM ,AAM ,BBM ,
644 C =================================================================
645 C >>> SNOW ANALYSIS <<<
646 C =================================================================
650 O LEVEL , ELEM , TITLE , UNIT , KTSD , KTSA ,
654 WRITE(6,*) '## ', TITLE, '(',UNIT,')'
655 WRITE(6,*) '## ', IDSST, KT
656 IF( IDCHCK.EQ.1 ) THEN
657 CALL CVDATE( IDGES, IDSST, 24 )
658 IF( IDATE(1).NE.IDGES(1).OR.IDATE(2).NE.IDGES(2).OR.
659 1 IDATE(3).NE.IDGES(3) ) THEN
660 WRITE(6,*) 'SNOW : DATE CHECK ERROR'
665 CALL SETWHT (IMAX,JMAX,DP,IP,GAUL,GAUW,COCOT)
668 WORK(I+1,J+1)=SEWA(I,J)
671 WORK( 1,J+1)=WORK(361,J+1)
672 WORK(362,J+1)=WORK( 2,J+1)
675 WORK(I, 1)=WORK(I, 2)
676 WORK(I,182)=WORK(I,181)
678 CALL INTERP(WORK,GSNW,IMAX,JMAX,DP,IP)
682 GSNW(I,J)=GSNW(I,J)/100.0
686 CALL MOVERD(GSNW, WRK, IMAX*JMAX)
688 1(NINFL , IDATE , -1 , 'SURF', 'SEW ',
689 2 'SNOW EQUIVALENT WATER ', 'M ',
690 3 0 , 0 , WRK , IMAX , JMAX , I2 )
691 WRITE(6,*) '## SNOW ANALYSIS WAS WRITTEN'
693 C =================================================================
695 C =================================================================
696 WRITE(6,*) '## PREGSM IS NORMAL ENDED'
697 !modified shc nk start
700 END SUBROUTINE PREGSM1 !shc end