2 |
|
|
3 |
#include "CPP_EEOPTIONS.h" |
#include "CPP_EEOPTIONS.h" |
4 |
|
|
5 |
SUBROUTINE CONVECT( bi, bj, iMin, iMax, jMin, jMax, myThid ) |
SUBROUTINE CONVECT( bi, bj, iMin, iMax, jMin, jMax, K, |
6 |
|
& rhoKm1, rhoKp1, myThid ) |
7 |
C /==========================================================\ |
C /==========================================================\ |
8 |
C | SUBROUTINE CONVECT | |
C | SUBROUTINE CONVECT | |
9 |
C | o Does vertical mixing of unstable water column | |
C | o Does vertical mixing of unstable water column | |
18 |
#include "GRID.h" |
#include "GRID.h" |
19 |
|
|
20 |
C == Routine arguments == |
C == Routine arguments == |
21 |
INTEGER bi,bj,iMin,iMax,jMin,jMax |
INTEGER bi,bj,iMin,iMax,jMin,jMax,K |
22 |
|
_RL rhoKm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
23 |
|
_RL rhoKp1(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
24 |
INTEGER myThid |
INTEGER myThid |
25 |
|
|
26 |
C == Local variables == |
C == Local variables == |
27 |
INTEGER i,j,k |
INTEGER i,j |
28 |
_RL tMix(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL tMix(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
29 |
|
_RL sMix(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
30 |
_RL dSum(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL dSum(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
31 |
|
|
32 |
DO k=2,nZ |
C Calculate heat content of two level column |
33 |
DO j=jMin,jmax |
DO j=jMin,jmax |
34 |
DO i=iMin,imax |
DO i=iMin,imax |
35 |
tMix(i,j) = theta(i,j,k-1,bi,bj)*hFacC(i,j,k-1,bi,bj)*dzF(k-1) |
tMix(i,j) = theta(i,j,k-1,bi,bj)*hFacC(i,j,k-1,bi,bj)*dzF(k-1) |
36 |
& +theta(i,j,k,bi,bj)*hFacC(i,j,k,bi,bj)*dzF(k) |
& +theta(i,j,k,bi,bj)*hFacC(i,j,k,bi,bj)*dzF(k) |
37 |
dSum(i,j) = hFacC(i,j,k-1,bi,bj)*dzF(k-1) |
sMix(i,j) = salt(i,j,k-1,bi,bj)*hFacC(i,j,k-1,bi,bj)*dzF(k-1) |
38 |
& +hFacC(i,j,k,bi,bj)*dzF(k) |
& +salt(i,j,k,bi,bj)*hFacC(i,j,k,bi,bj)*dzF(k) |
39 |
ENDDO |
dSum(i,j) = hFacC(i,j,k-1,bi,bj)*dzF(k-1) |
40 |
|
& +hFacC(i,j,k,bi,bj)*dzF(k) |
41 |
ENDDO |
ENDDO |
42 |
DO j=jMin,jmax |
ENDDO |
43 |
DO i=iMin,imax |
C Where statically unstable, mix the heat and salt |
44 |
IF ( hFacC(i,j,k,bi,bj) .GT. 0. .AND. |
DO j=jMin,jmax |
45 |
& theta(i,j,k-1,bi,bj) .LT. theta(i,j,k,bi,bj) ) THEN |
DO i=iMin,imax |
46 |
theta(i,j,k-1,bi,bj) = tMix(i,j)/dSum(i,j) |
IF ( hFacC(i,j,k,bi,bj) .GT. 0. .AND. |
47 |
theta(i,j,k ,bi,bj) = tMix(i,j)/dSum(i,j) |
& rhokm1(i,j) .GT. rhokp1(i,j) ) THEN |
48 |
ENDIF |
theta(i,j,k-1,bi,bj) = tMix(i,j)/dSum(i,j) |
49 |
ENDDO |
theta(i,j,k ,bi,bj) = tMix(i,j)/dSum(i,j) |
50 |
|
c salt(i,j,k-1,bi,bj) = sMix(i,j)/dSum(i,j) |
51 |
|
c salt(i,j,k ,bi,bj) = sMix(i,j)/dSum(i,j) |
52 |
|
ENDIF |
53 |
ENDDO |
ENDDO |
54 |
ENDDO |
ENDDO |
55 |
|
|