/[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.47 by jmc, Thu Aug 23 19:12:10 2007 UTC revision 1.48 by dimitri, Sat Sep 22 03:11:02 2007 UTC
# Line 424  C     kSurface  :: index of surface laye Line 424  C     kSurface  :: index of surface laye
424  CEOP  CEOP
425  #ifdef ALLOW_SALT_PLUME  #ifdef ALLOW_SALT_PLUME
426        _RL saltPlume        _RL saltPlume
427          integer two2
428          _RL minusone
429          parameter (two2=2,minusone=-1.)
430          _RL plumekb(two2)
431          _RL SPdepth(two2)
432          INTEGER kp1
433  #endif /* ALLOW_SALT_PLUME */  #endif /* ALLOW_SALT_PLUME */
434    
435        IF ( fluidIsAir ) THEN        IF ( fluidIsAir ) THEN
# Line 491  C it is here redistributed to multiple v Line 497  C it is here redistributed to multiple v
497  C Duffy et al. (GRL 1999)  C Duffy et al. (GRL 1999)
498         DO j=1,sNy         DO j=1,sNy
499          DO i=1,sNx          DO i=1,sNx
500    C Penetrating saltplume fraction:
501              plumekb(1)=abs(rF(klev))
502              plumekb(2)=abs(rF(klev+1))
503              SPdepth(1)=SaltPlumeDepth(i,j,bi,bj)
504              SPdepth(2)=SaltPlumeDepth(i,j,bi,bj)
505              CALL PLUMEFRAC(
506         I                   two2,minusone,SPdepth,
507         U                   plumekb,
508         I                   myTime, 1, myThid )
509              kp1 = klev+1
510              IF (klev.EQ.Nr) THEN
511               kp1 = klev
512               plumekb(2)=0. _d 0
513              ENDIF
514            saltPlume = 0.            saltPlume = 0.
515  #ifdef ALLOW_SEAICE  #ifdef ALLOW_SEAICE
516            IF ( saltFlux(i,j,bi,bj) .GT. 0. .AND.            IF ( saltFlux(i,j,bi,bj) .GT. 0. .AND.
517       &         salt(i,j,kSurface,bi,bj)  .GT. SEAICE_salinity ) THEN       &         salt(i,j,kSurface,bi,bj)  .GT. SEAICE_salinity ) THEN
518             saltPlume = (salt(i,j,kSurface,bi,bj)-SEAICE_salinity) *              saltPlume = saltPlumeFlux(i,j,bi,bj)
      &          saltFlux(i,j,bi,bj) / salt(i,j,kSurface,bi,bj)  
519            ENDIF            ENDIF
520  #endif /* ALLOW_SEAICE */  #endif /* ALLOW_SEAICE */
521            IF ( SaltPlumeDepth(i,j,bi,bj) .GT. -rF(kLev) ) THEN            IF ( SaltPlumeDepth(i,j,bi,bj) .GT. -rF(kLev) ) THEN
522             gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)             gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)
523       &          +saltPlume*mass2rUnit       &          +saltPlume*(plumekb(1)*maskC(i,j,klev,bi,bj)
524         &                     -plumekb(2)*maskC(i,j,kp1, bi,bj))
525         &          *horiVertRatio*recip_rhoConst
526       &          *recip_drF(kLev)*_recip_hFacC(i,j,kLev,bi,bj)       &          *recip_drF(kLev)*_recip_hFacC(i,j,kLev,bi,bj)
      &          *min(drF(kLev),SaltPlumeDepth(i,j,bi,bj)+rF(kLev))  
      &          /SaltPlumeDepth(i,j,bi,bj)  
527            ENDIF            ENDIF
528          ENDDO          ENDDO
529         ENDDO         ENDDO

Legend:
Removed from v.1.47  
changed lines
  Added in v.1.48

  ViewVC Help
Powered by ViewVC 1.1.22