3 |
#include "TIMEAVE_OPTIONS.h" |
#include "TIMEAVE_OPTIONS.h" |
4 |
|
|
5 |
CStartofinterface |
CStartofinterface |
6 |
SUBROUTINE TIMEAVE_CUMUL_DIF_1T( |
SUBROUTINE TIMEAVE_CUMUL_DIF_1T( |
7 |
O fldtave, |
O fldtave, |
8 |
I fld1, fld2, Ksize, dir, deltaTloc, |
I fld1, fld2, Ksize, dir, deltaTloc, |
9 |
I bi, bj, myThid ) |
I bi, bj, myThid ) |
26 |
C dir - define the gradient direction: 1: X dir ; 2: Y dir ; 3: R dir |
C dir - define the gradient direction: 1: X dir ; 2: Y dir ; 3: R dir |
27 |
C Ksize - 3rd dimension of local arrays (Input and Output fields) |
C Ksize - 3rd dimension of local arrays (Input and Output fields) |
28 |
INTEGER Ksize, dir |
INTEGER Ksize, dir |
29 |
_RL fld1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Ksize,nSx,nSy) |
_RL fld1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Ksize) |
30 |
_RL fld2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Ksize) |
_RL fld2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Ksize) |
31 |
_RL fldtave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Ksize,nSx,nSy) |
_RL fldtave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Ksize,nSx,nSy) |
32 |
_RL deltaTloc |
_RL deltaTloc |
38 |
C == Local variables == |
C == Local variables == |
39 |
C i,j,k,bi,bj - Loop counters |
C i,j,k,bi,bj - Loop counters |
40 |
INTEGER i, j, k |
INTEGER i, j, k |
41 |
|
|
42 |
IF ( dir.eq.1 ) THEN |
IF ( dir.eq.1 ) THEN |
43 |
|
|
44 |
DO k=1,Ksize |
DO k=1,Ksize |
45 |
DO j=1,sNy |
DO j=1,sNy |
46 |
DO i=1,sNx |
DO i=1,sNx |
47 |
fldtave(i,j,k,bi,bj) = fldtave(i,j,k,bi,bj) |
fldtave(i,j,k,bi,bj) = fldtave(i,j,k,bi,bj) |
48 |
& - ( fld1(i,j,k,bi,bj) - fld1(i-1,j,k,bi,bj) ) |
& - ( fld1(i,j,k) - fld1(i-1,j,k) ) |
49 |
& * recip_dxC(i,j,bi,bj) |
& * recip_dxC(i,j,bi,bj) |
50 |
& * fld2(i,j,k) * deltaTloc |
& * fld2(i,j,k) * deltaTloc |
51 |
ENDDO |
ENDDO |
53 |
ENDDO |
ENDDO |
54 |
|
|
55 |
ELSEIF ( dir.eq.2 ) THEN |
ELSEIF ( dir.eq.2 ) THEN |
56 |
|
|
57 |
DO k=1,Ksize |
DO k=1,Ksize |
58 |
DO j=1,sNy |
DO j=1,sNy |
59 |
DO i=1,sNx |
DO i=1,sNx |
60 |
fldtave(i,j,k,bi,bj) = fldtave(i,j,k,bi,bj) |
fldtave(i,j,k,bi,bj) = fldtave(i,j,k,bi,bj) |
61 |
& - ( fld1(i,j,k,bi,bj) - fld1(i,j-1,k,bi,bj) ) |
& - ( fld1(i,j,k) - fld1(i,j-1,k) ) |
62 |
& * recip_dyC(i,j,bi,bj) |
& * recip_dyC(i,j,bi,bj) |
63 |
& * fld2(i,j,k) * deltaTloc |
& * fld2(i,j,k) * deltaTloc |
64 |
ENDDO |
ENDDO |
66 |
ENDDO |
ENDDO |
67 |
|
|
68 |
ELSEIF ( dir.eq.3 ) THEN |
ELSEIF ( dir.eq.3 ) THEN |
69 |
|
|
70 |
DO k=2,Ksize |
DO k=2,Ksize |
71 |
DO j=1,sNy |
DO j=1,sNy |
72 |
DO i=1,sNx |
DO i=1,sNx |
73 |
fldtave(i,j,k,bi,bj) = fldtave(i,j,k,bi,bj) |
fldtave(i,j,k,bi,bj) = fldtave(i,j,k,bi,bj) |
74 |
& + ( fld1(i,j,k,bi,bj) - fld1(i,j,k-1,bi,bj) ) |
& + ( fld1(i,j,k) - fld1(i,j,k-1) ) |
75 |
& * recip_drC(k) |
& * recip_drC(k) |
76 |
& * fld2(i,j,k) * deltaTloc |
& * fld2(i,j,k) * deltaTloc |
77 |
ENDDO |
ENDDO |