50 |
DO i=iMin,iMax |
DO i=iMin,iMax |
51 |
|
|
52 |
C- Horizontal gradients interpolated to W points |
C- Horizontal gradients interpolated to W points |
53 |
dTdx = 0.5d0*( |
dTdx = op5*( |
54 |
& +0.5d0*(_maskW(i+1,j,k,bi,bj) |
& +op5*(_maskW(i+1,j,k,bi,bj) |
55 |
& *_recip_dxC(i+1,j,bi,bj)* |
& *_recip_dxC(i+1,j,bi,bj)* |
56 |
& (Tracer(i+1,j,k,bi,bj)-Tracer(i,j,k,bi,bj)) |
& (Tracer(i+1,j,k,bi,bj)-Tracer(i,j,k,bi,bj)) |
57 |
& +_maskW(i,j,k,bi,bj) |
& +_maskW(i,j,k,bi,bj) |
58 |
& *_recip_dxC(i,j,bi,bj)* |
& *_recip_dxC(i,j,bi,bj)* |
59 |
& (Tracer(i,j,k,bi,bj)-Tracer(i-1,j,k,bi,bj))) |
& (Tracer(i,j,k,bi,bj)-Tracer(i-1,j,k,bi,bj))) |
60 |
& +0.5d0*(_maskW(i+1,j,k-1,bi,bj) |
& +op5*(_maskW(i+1,j,k-1,bi,bj) |
61 |
& *_recip_dxC(i+1,j,bi,bj)* |
& *_recip_dxC(i+1,j,bi,bj)* |
62 |
& (Tracer(i+1,j,k-1,bi,bj)-Tracer(i,j,k-1,bi,bj)) |
& (Tracer(i+1,j,k-1,bi,bj)-Tracer(i,j,k-1,bi,bj)) |
63 |
& +_maskW(i,j,k-1,bi,bj) |
& +_maskW(i,j,k-1,bi,bj) |
65 |
& (Tracer(i,j,k-1,bi,bj)-Tracer(i-1,j,k-1,bi,bj))) |
& (Tracer(i,j,k-1,bi,bj)-Tracer(i-1,j,k-1,bi,bj))) |
66 |
& ) |
& ) |
67 |
|
|
68 |
dTdy = 0.5d0*( |
dTdy = op5*( |
69 |
& +0.5d0*(_maskS(i,j,k,bi,bj) |
& +op5*(_maskS(i,j,k,bi,bj) |
70 |
& *_recip_dyC(i,j,bi,bj)* |
& *_recip_dyC(i,j,bi,bj)* |
71 |
& (Tracer(i,j,k,bi,bj)-Tracer(i,j-1,k,bi,bj)) |
& (Tracer(i,j,k,bi,bj)-Tracer(i,j-1,k,bi,bj)) |
72 |
& +_maskS(i,j+1,k,bi,bj) |
& +_maskS(i,j+1,k,bi,bj) |
73 |
& *_recip_dyC(i,j+1,bi,bj)* |
& *_recip_dyC(i,j+1,bi,bj)* |
74 |
& (Tracer(i,j+1,k,bi,bj)-Tracer(i,j,k,bi,bj))) |
& (Tracer(i,j+1,k,bi,bj)-Tracer(i,j,k,bi,bj))) |
75 |
& +0.5d0*(_maskS(i,j,k-1,bi,bj) |
& +op5*(_maskS(i,j,k-1,bi,bj) |
76 |
& *_recip_dyC(i,j,bi,bj)* |
& *_recip_dyC(i,j,bi,bj)* |
77 |
& (Tracer(i,j,k-1,bi,bj)-Tracer(i,j-1,k-1,bi,bj)) |
& (Tracer(i,j,k-1,bi,bj)-Tracer(i,j-1,k-1,bi,bj)) |
78 |
& +_maskS(i,j+1,k-1,bi,bj) |
& +_maskS(i,j+1,k-1,bi,bj) |
84 |
df(i,j) = df(i,j) |
df(i,j) = df(i,j) |
85 |
& - _rA(i,j,bi,bj) |
& - _rA(i,j,bi,bj) |
86 |
& *( Kwx(i,j,k,bi,bj)*dTdx +Kwy(i,j,k,bi,bj)*dTdy ) |
& *( Kwx(i,j,k,bi,bj)*dTdx +Kwy(i,j,k,bi,bj)*dTdy ) |
|
cph & *GM_adjointRescale |
|
87 |
|
|
88 |
ENDDO |
ENDDO |
89 |
ENDDO |
ENDDO |
98 |
& +dxG(i,j+1,bi,bj)*GM_PsiY(i,j+1,k,bi,bj) |
& +dxG(i,j+1,bi,bj)*GM_PsiY(i,j+1,k,bi,bj) |
99 |
& -dxG(i, j ,bi,bj)*GM_PsiY(i, j ,k,bi,bj) |
& -dxG(i, j ,bi,bj)*GM_PsiY(i, j ,k,bi,bj) |
100 |
df(i,j) = df(i,j) |
df(i,j) = df(i,j) |
101 |
& +rTrans*0.5d0 |
& +rTrans*op5 |
102 |
& *(Tracer(i,j,k,bi,bj)+Tracer(i,j,k-1,bi,bj)) |
& *(Tracer(i,j,k,bi,bj)+Tracer(i,j,k-1,bi,bj)) |
103 |
ENDDO |
ENDDO |
104 |
ENDDO |
ENDDO |