37 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
38 |
C == Local variables == |
C == Local variables == |
39 |
INTEGER iMin,iMax,jMin,jMax |
INTEGER iMin,iMax,jMin,jMax |
40 |
INTEGER i,j,k |
INTEGER i, j, k, km1 |
41 |
_RL gWtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL gWtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
42 |
_RL tmpFac, nh_Fac, igwFac |
_RL tmpFac, nh_Fac, igwFac |
43 |
CEOP |
CEOP |
56 |
nh_Fac = 0. |
nh_Fac = 0. |
57 |
IF ( nh_Am2.NE.0. ) nh_Fac = 1. _d 0 / nh_Am2 |
IF ( nh_Am2.NE.0. ) nh_Fac = 1. _d 0 / nh_Am2 |
58 |
|
|
59 |
k = 1 |
DO k=1,Nr |
60 |
DO j=1-Oly,sNy+Oly |
km1 = MAX( k-1, 1 ) |
|
DO i=1-Olx,sNx+Olx |
|
|
gW(i,j,k,bi,bj) = wVel(i,j,k,bi,bj) |
|
|
ENDDO |
|
|
ENDDO |
|
|
|
|
|
DO k=2,Nr |
|
61 |
|
|
62 |
IF ( implicitNHPress.NE.1. _d 0 ) THEN |
IF ( implicitNHPress.NE.1. _d 0 ) THEN |
63 |
C-- add explicit part of NH pressure gradient: |
C-- add explicit part of NH pressure gradient: |
64 |
tmpFac = pfFacMom*(1. _d 0 - implicitNHPress) |
tmpFac = pfFacMom*(1. _d 0 - implicitNHPress) |
65 |
& *wUnit2rVel(k)*wUnit2rVel(k) |
& * wUnit2rVel(k)*wUnit2rVel(k)*recip_rhoFacF(k) |
66 |
& *recip_rhoFacF(k) |
IF ( k.GE.2 ) THEN |
67 |
DO j=jMin,jMax |
DO j=jMin,jMax |
68 |
DO i=iMin,iMax |
DO i=iMin,iMax |
69 |
gW(i,j,k,bi,bj) = gW(i,j,k,bi,bj) |
gW(i,j,k,bi,bj) = gW(i,j,k,bi,bj) |
70 |
& - tmpFac*rkSign*recip_drC(k) |
& - tmpFac*rkSign*recip_drC(k) |
71 |
& *( phi_nh(i,j,k,bi,bj) - phi_nh(i,j,k-1,bi,bj) ) |
& *( phi_nh(i,j,k,bi,bj) - phi_nh(i,j,k-1,bi,bj) ) |
72 |
|
ENDDO |
73 |
ENDDO |
ENDDO |
74 |
ENDDO |
ELSEIF ( selectNHfreeSurf.GE.1 ) THEN |
75 |
|
DO j=jMin,jMax |
76 |
|
DO i=iMin,iMax |
77 |
|
gW(i,j,k,bi,bj) = gW(i,j,k,bi,bj) |
78 |
|
& - tmpFac*rkSign*recip_drC(k) |
79 |
|
& *( phi_nh(i,j,k,bi,bj) - dPhiNH(i,j,bi,bj) ) |
80 |
|
ENDDO |
81 |
|
ENDDO |
82 |
|
ENDIF |
83 |
ENDIF |
ENDIF |
84 |
C apply mask to gW and keep a copy of wVel in gW: |
C apply mask to gW and keep a copy of wVel in gW: |
85 |
DO j=1-Oly,sNy+Oly |
DO j=1-Oly,sNy+Oly |
86 |
DO i=1-Olx,sNx+Olx |
DO i=1-Olx,sNx+Olx |
87 |
gWtmp(i,j) = gW(i,j,k,bi,bj) |
gWtmp(i,j) = gW(i,j,k,bi,bj) |
88 |
& *maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj) |
& *maskC(i,j,k,bi,bj)*maskC(i,j,km1,bi,bj) |
89 |
gW(i,j,k,bi,bj) = wVel(i,j,k,bi,bj) |
gW(i,j,k,bi,bj) = wVel(i,j,k,bi,bj) |
90 |
ENDDO |
ENDDO |
91 |
ENDDO |
ENDDO |