REOWAV.inc
References to this file elsewhere.
1 SUBROUTINE REOWAV
2 1 (WDATA,QDATA,MEND1,NEND1,JEND1,MNWAV,KWMAX,KQMAX,KWW,KQQ,
3 2 KMX2 ,LAG ,IWORG,INOUT)
4 C
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
9 C
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
14 C
15 IF(INOUT.EQ.'IN ') THEN
16 C
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
33 C
34 ELSE IF(INOUT.EQ.'OUT ') THEN
35 C
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
45 C
46 END IF
47 C
48 RETURN
49 END SUBROUTINE REOWAV
50