/[MITgcm]/MITgcm/model/src/external_forcing.F
ViewVC logotype

Diff of /MITgcm/model/src/external_forcing.F

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

revision 1.49 by dimitri, Mon Sep 24 01:17:25 2007 UTC revision 1.50 by dimitri, Wed Nov 28 00:18:17 2007 UTC
# Line 397  C     == Global data == Line 397  C     == Global data ==
397  #include "DYNVARS.h"  #include "DYNVARS.h"
398  #include "FFIELDS.h"  #include "FFIELDS.h"
399  #include "SURFACE.h"  #include "SURFACE.h"
 #ifdef ALLOW_SALT_PLUME  
 #ifdef ALLOW_SEAICE  
 #include "SEAICE_PARAMS.h"  
 #endif /* ALLOW_SEAICE */  
 #endif /* ALLOW_SALT_PLUME */  
400    
401  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
402  C     == Routine arguments ==  C     == Routine arguments ==
# Line 422  C     kSurface  :: index of surface laye Line 417  C     kSurface  :: index of surface laye
417        INTEGER i, j        INTEGER i, j
418        INTEGER kSurface        INTEGER kSurface
419  CEOP  CEOP
 #ifdef ALLOW_SALT_PLUME  
       _RL saltPlume  
       integer two2  
       _RL minusone  
       parameter (two2=2,minusone=-1.)  
       _RL plumekb(two2)  
       _RL SPdepth(two2)  
       INTEGER kp1  
 #endif /* ALLOW_SALT_PLUME */  
420    
421        IF ( fluidIsAir ) THEN        IF ( fluidIsAir ) THEN
422         kSurface = 0         kSurface = 0
# Line 492  cph#endif /* ndfef ALLOW_AUTODIFF_TAMC * Line 478  cph#endif /* ndfef ALLOW_AUTODIFF_TAMC *
478  #endif /* ALLOW_SHELFICE */  #endif /* ALLOW_SHELFICE */
479    
480  #ifdef ALLOW_SALT_PLUME  #ifdef ALLOW_SALT_PLUME
481  C saltPlume is the amount of salt rejected by ice while freezing;        IF ( useSaltPlume )
482  C it is here redistributed to multiple vertical levels as per       &     CALL SALT_PLUME_TENDENCY_APPLY_S(
483  C Duffy et al. (GRL 1999)       I     iMin,iMax, jMin,jMax, bi,bj, kLev,
484         DO j=1,sNy       I     myTime, myThid )
         DO i=1,sNx  
 C Penetrating saltplume fraction:  
           plumekb(1)=abs(rF(klev))  
           plumekb(2)=abs(rF(klev+1))  
           SPdepth(1)=SaltPlumeDepth(i,j,bi,bj)  
           SPdepth(2)=SaltPlumeDepth(i,j,bi,bj)  
           CALL PLUMEFRAC(  
      I                   two2,minusone,SPdepth,  
      U                   plumekb,  
      I                   myTime, 1, myThid )  
           kp1 = klev+1  
           IF (klev.EQ.Nr) THEN  
            kp1 = klev  
            plumekb(2)=0. _d 0  
           ENDIF  
           saltPlume = 0.  
 #ifdef ALLOW_SEAICE  
           IF ( saltFlux(i,j,bi,bj) .GT. 0. .AND.  
      &         salt(i,j,kSurface,bi,bj)  .GT. SEAICE_salinity ) THEN  
             saltPlume = saltPlumeFlux(i,j,bi,bj)  
           ENDIF  
 #endif /* ALLOW_SEAICE */  
           IF ( SaltPlumeDepth(i,j,bi,bj) .GT. -rF(kLev) ) THEN  
            gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)  
      &          +saltPlume*(plumekb(1)*maskC(i,j,klev,bi,bj)  
      &                     -plumekb(2)*maskC(i,j,kp1, bi,bj))  
      &          *mass2rUnit  
      &          *recip_drF(kLev)*_recip_hFacC(i,j,kLev,bi,bj)  
           ENDIF  
         ENDDO  
        ENDDO  
485  #endif /* ALLOW_SALT_PLUME */  #endif /* ALLOW_SALT_PLUME */
486    
487  #ifdef ALLOW_RBCS  #ifdef ALLOW_RBCS

Legend:
Removed from v.1.49  
changed lines
  Added in v.1.50

  ViewVC Help
Powered by ViewVC 1.1.22