45 |
INTEGER I,J |
INTEGER I,J |
46 |
CEOP |
CEOP |
47 |
|
|
48 |
DO j=1-Oly+1,sNy+Oly |
IF (useEnergyConservingCoriolis) THEN |
49 |
DO i=1-Olx,sNx+Olx-1 |
C Energy conserving discretization |
50 |
|
DO j=1-Oly+1,sNy+Oly |
51 |
|
DO i=1-Olx,sNx+Olx-1 |
52 |
|
vCoriolisTerm(i,j) = |
53 |
|
& 0.5*( _fCori(i, j ,bi,bj) |
54 |
|
& *0.5*( uFld( i , j )+uFld(i+1, j ) ) |
55 |
|
& + _fCori(i,j-1,bi,bj) |
56 |
|
& *0.5*( uFld( i ,j-1)+uFld(i+1,j-1) ) ) |
57 |
|
ENDDO |
58 |
|
ENDDO |
59 |
|
ELSE |
60 |
|
C Original discretization |
61 |
|
DO j=1-Oly+1,sNy+Oly |
62 |
|
DO i=1-Olx,sNx+Olx-1 |
63 |
vCoriolisTerm(i,j) = |
vCoriolisTerm(i,j) = |
64 |
& -0.5*(_fCori(i, j ,bi,bj)+_fCori(i,j-1,bi,bj)) |
& -0.5*(_fCori(i, j ,bi,bj)+_fCori(i,j-1,bi,bj)) |
65 |
& *0.25*( uFld(i, j )+uFld(i+1, j ) |
& *0.25*( uFld(i, j )+uFld(i+1, j ) |
66 |
& +uFld(i,j-1)+uFld(i+1,j-1) |
& +uFld(i,j-1)+uFld(i+1,j-1) |
67 |
& ) |
& ) |
68 |
|
ENDDO |
69 |
ENDDO |
ENDDO |
70 |
ENDDO |
ENDIF |
71 |
|
|
72 |
RETURN |
RETURN |
73 |
END |
END |