/[MITgcm]/MITgcm_contrib/atnguyen/code_21Dec2012_saltplume/salt_plume_tendency_apply_s.F
ViewVC logotype

Diff of /MITgcm_contrib/atnguyen/code_21Dec2012_saltplume/salt_plume_tendency_apply_s.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.2 by atn, Sun Apr 20 04:03:07 2014 UTC revision 1.3 by atn, Sun Apr 20 09:00:36 2014 UTC
# Line 38  C     !LOCAL VARIABLES: Line 38  C     !LOCAL VARIABLES:
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
# Line 69  C Penetrating saltplume fraction:cumulat Line 70  C Penetrating saltplume fraction:cumulat
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
# Line 83  C Penetrating saltplume fraction:cumulat Line 84  C Penetrating saltplume fraction:cumulat
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
# Line 107  C Note: by design, dSPvolkLev2Above alre Line 108  C Note: by design, dSPvolkLev2Above alre
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                

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22