Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / convertor / kma_wave2grid / REOWAV.inc
blobad40c361f5dc00d7a838741cc0206072afddaaf0
1       SUBROUTINE REOWAV
2      1  (WDATA,QDATA,MEND1,NEND1,JEND1,MNWAV,KWMAX,KQMAX,KWW,KQQ,
3      2   KMX2 ,LAG  ,IWORG,INOUT)
5 Crizvi      REAL*4 WDATA(KWMAX,MNWAV), QDATA(KQMAX,MNWAV)
6       REAL WDATA(KWMAX,MNWAV), QDATA(KQMAX,MNWAV)
7       INTEGER*4 LAG(MEND1,NEND1)
8       CHARACTER*4 IWORG,INOUT
10 C  INOUT='IN  '...COPIES FROM WDATA TO QDATA
11 C        'OUT '...COPIES FROM QDATA TO WDATA
12 C  IWORG='CLMN'...DOES NOTHING
13 C        'DGNL'...CHANGES FROM DIAGONAL TO COLUMWISE ORDER
15       IF(INOUT.EQ.'IN  ') THEN
17              IF(IWORG.EQ.'CLMN') THEN
18         DO 100 K=1,KMX2
19         DO 100 L=1,MNWAV
20          QDATA(K+KQQ,L)=WDATA(K+KWW,L)
21   100   CONTINUE
22         ELSE IF(IWORG.EQ.'DGNL') THEN
23         L=0
24         DO 200 M=1,MEND1
25          NMAX=MIN(NEND1,JEND1+1-M)
26         DO 200 N=1,NMAX
27          L=L+1
28          LX=LAG(M,N)
29         DO 200 K=1,KMX2
30          QDATA(K+KQQ,L)=WDATA(K+KWW,LX)
31   200   CONTINUE
32         END IF
34       ELSE IF(INOUT.EQ.'OUT ') THEN
36         IF(IWORG.EQ.'CLMN') THEN
37         DO 300 K=1,KMX2
38         DO 300 L=1,MNWAV
39          WDATA(K+KWW,L)=QDATA(K+KQQ,L)
40   300   CONTINUE
41         ELSE IF(IWORG.EQ.'DGNL') THEN
42         WRITE(96,*)'SUBR.REOWAV DOES NOT TAKE CARE OF DIAGONAL OUTPUT'
43         STOP 9999
44         END IF
46       END IF
48       RETURN
49       END SUBROUTINE REOWAV