28 |
#include "GRID.h" |
#include "GRID.h" |
29 |
#include "SURFACE.h" |
#include "SURFACE.h" |
30 |
#include "CG2D.h" |
#include "CG2D.h" |
|
#ifdef ALLOW_OBCS |
|
|
#include "OBCS.h" |
|
|
#endif |
|
31 |
|
|
32 |
C !INPUT/OUTPUT PARAMETERS: |
C !INPUT/OUTPUT PARAMETERS: |
33 |
C === Routine arguments === |
C === Routine arguments === |
38 |
C === Local variables === |
C === Local variables === |
39 |
C bi,bj :: tile indices |
C bi,bj :: tile indices |
40 |
C i,j,k :: Loop counters |
C i,j,k :: Loop counters |
41 |
C faceArea - Temporary used to hold cell face areas. |
C faceArea :: Temporary used to hold cell face areas. |
42 |
C myNorm - Work variable used in calculating normalisation factor |
C myNorm :: Work variable used in calculating normalisation factor |
|
C sumArea - Work variable used to compute the total Domain Area |
|
43 |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
44 |
INTEGER bi, bj |
INTEGER bi, bj |
45 |
INTEGER i, j, k, ks |
INTEGER i, j, k, ks |
108 |
ENDDO |
ENDDO |
109 |
ENDDO |
ENDDO |
110 |
ENDDO |
ENDDO |
|
#ifdef ALLOW_OBCS |
|
|
IF (useOBCS) THEN |
|
|
DO i=1,sNx |
|
|
IF (OB_Jn(i,bi,bj).NE.0) aS2d(i, OB_Jn(i,bi,bj), bi,bj)=0. |
|
|
IF (OB_Jn(i,bi,bj).NE.0) aS2d(i,OB_Jn(i,bi,bj)+1,bi,bj)=0. |
|
|
IF (OB_Js(i,bi,bj).NE.0) aS2d(i,OB_Js(i,bi,bj)+1,bi,bj)=0. |
|
|
IF (OB_Js(i,bi,bj).NE.0) aS2d(i, OB_Js(i,bi,bj), bi,bj)=0. |
|
|
ENDDO |
|
|
DO j=1,sNy |
|
|
IF (OB_Ie(j,bi,bj).NE.0) aW2d(OB_Ie(j,bi,bj), j, bi,bj)=0. |
|
|
IF (OB_Ie(j,bi,bj).NE.0) aW2d(OB_Ie(j,bi,bj)+1,j,bi,bj)=0. |
|
|
IF (OB_Iw(j,bi,bj).NE.0) aW2d(OB_Iw(j,bi,bj)+1,j,bi,bj)=0. |
|
|
IF (OB_Iw(j,bi,bj).NE.0) aW2d(OB_Iw(j,bi,bj), j, bi,bj)=0. |
|
|
ENDDO |
|
|
ENDIF |
|
|
#endif |
|
111 |
DO j=1,sNy |
DO j=1,sNy |
112 |
DO i=1,sNx |
DO i=1,sNx |
113 |
myNorm = MAX(ABS(aW2d(i,j,bi,bj)),myNorm) |
#ifdef ALLOW_OBCS |
114 |
myNorm = MAX(ABS(aS2d(i,j,bi,bj)),myNorm) |
aW2d(i,j,bi,bj) = aW2d(i,j,bi,bj) |
115 |
|
& *maskInC(i,j,bi,bj)*maskInC(i-1,j,bi,bj) |
116 |
|
aS2d(i,j,bi,bj) = aS2d(i,j,bi,bj) |
117 |
|
& *maskInC(i,j,bi,bj)*maskInC(i,j-1,bi,bj) |
118 |
|
#endif /* ALLOW_OBCS */ |
119 |
|
myNorm = MAX(ABS(aW2d(i,j,bi,bj)),myNorm) |
120 |
|
myNorm = MAX(ABS(aS2d(i,j,bi,bj)),myNorm) |
121 |
ENDDO |
ENDDO |
122 |
ENDDO |
ENDDO |
123 |
ENDDO |
ENDDO |