38 |
_RL minusone |
_RL minusone |
39 |
parameter(minusone = -1.) |
parameter(minusone = -1.) |
40 |
_RL plumefrac(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL plumefrac(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
41 |
_RL plumetend(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
Catn: unit plumeStend [kg/s/m2 psu] = [g/s/m2]; same as saltPlumeFlux |
42 |
|
_RL plumeStend(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
43 |
#ifdef SALT_PLUME_VOLUME |
#ifdef SALT_PLUME_VOLUME |
44 |
_RL gS_Surf2kLev, gS_Below2kLev, gS_kLev2Above |
_RL gS_Surf2kLev, gS_Below2kLev, gS_kLev2Above |
45 |
integer kp1 |
integer kp1 |
70 |
U plumekb, |
U plumekb, |
71 |
I myTime, 1, myThid ) |
I myTime, 1, myThid ) |
72 |
plumefrac(I,J) = (plumekb(2)-plumekb(1))*maskC(i,j,klev,bi,bj) |
plumefrac(I,J) = (plumekb(2)-plumekb(1))*maskC(i,j,klev,bi,bj) |
73 |
plumetend(I,J) = saltPlumeFlux(i,j,bi,bj)*plumefrac(I,J) |
plumeStend(I,J) = saltPlumeFlux(i,j,bi,bj)*plumefrac(I,J) |
74 |
gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)+plumetend(I,J) |
gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)+plumeStend(I,J) |
75 |
& *recip_drF(kLev)*mass2rUnit*_recip_hFacC(i,j,kLev,bi,bj) |
& *recip_drF(kLev)*mass2rUnit*_recip_hFacC(i,j,kLev,bi,bj) |
76 |
ELSE |
ELSE |
77 |
plumefrac(I,J) = 0. _d 0 |
plumefrac(I,J) = 0. _d 0 |
78 |
plumetend(I,J) = 0. _d 0 |
plumeStend(I,J)= 0. _d 0 |
79 |
ENDIF |
ENDIF |
80 |
ENDDO |
ENDDO |
81 |
ENDDO |
ENDDO |
84 |
if(kLev.EQ.Nr) kp1 = kLev |
if(kLev.EQ.Nr) kp1 = kLev |
85 |
DO j=jMin,jMax |
DO j=jMin,jMax |
86 |
DO i=iMin,iMax |
DO i=iMin,iMax |
87 |
Catn: check unit |
Catn: [m/s * psu * kg/m3] = [kg/s/m2 psu] = unit of saltPlumeFlux |
88 |
gS_Surf2kLev = dSPvolSurf2kLev(i,j,kLev,bi,bj) |
gS_Surf2kLev = dSPvolSurf2kLev(i,j,kLev,bi,bj) |
89 |
& * SPbrineSalt(i,j,bi,bj) |
& * SPbrineSalt(i,j,bi,bj) * rhoConst |
90 |
gS_Below2kLev = dSPvolBelow2kLev(i,j,kLev,bi,bj) |
gS_Below2kLev = dSPvolBelow2kLev(i,j,kLev,bi,bj) |
91 |
* salt(i,j,kp1,bi,bj) |
* salt(i,j,kp1,bi,bj) * rhoConst |
92 |
Catn: gS_kLev2Above works even for kLev=1 because this is how much |
Catn: gS_kLev2Above works even for kLev=1 because this is how much |
93 |
C volume of original salinity was replaced by same volume of brine. |
C volume of original salinity was replaced by same volume of brine. |
94 |
C Note: by design, dSPvolkLev2Above already is negative |
C Note: by design, dSPvolkLev2Above already is negative |
95 |
gS_kLev2Above = dSPvolkLev2Above(i,j,kLev,bi,bj) |
gS_kLev2Above = dSPvolkLev2Above(i,j,kLev,bi,bj) |
96 |
* salt(i,j,kLev,bi,bj) |
* salt(i,j,kLev,bi,bj) * rhoConst |
97 |
plumetend(i,j)=gS_Surf2kLev + gS_Below2kLev + gS_kLev2Above |
plumeStend(i,j)=gS_Surf2kLev + gS_Below2kLev + gS_kLev2Above |
98 |
gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)+plumetend(I,J) |
gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)+plumeStend(I,J) |
99 |
& *recip_drF(kLev)*mass2rUnit*_recip_hFacC(i,j,kLev,bi,bj) |
& *recip_drF(kLev)*mass2rUnit*_recip_hFacC(i,j,kLev,bi,bj) |
100 |
ENDDO |
ENDDO |
101 |
ENDDO |
ENDDO |
108 |
& plumefrac,'PLUMEKB ',kLev,1,2,bi,bj,myThid ) |
& plumefrac,'PLUMEKB ',kLev,1,2,bi,bj,myThid ) |
109 |
#endif /* SALT_PLUME_VOLUME */ |
#endif /* SALT_PLUME_VOLUME */ |
110 |
CALL DIAGNOSTICS_FILL ( |
CALL DIAGNOSTICS_FILL ( |
111 |
& plumetend,'oceSPtnd',kLev,1,2,bi,bj,myThid ) |
& plumeStend,'oceSPtnd',kLev,1,2,bi,bj,myThid ) |
112 |
ENDIF |
ENDIF |
113 |
#endif /* ALLOW_DIAGNOSTICS */ |
#endif /* ALLOW_DIAGNOSTICS */ |
114 |
|
|