/[MITgcm]/MITgcm/pkg/generic_advdiff/gad_advection.F
ViewVC logotype

Diff of /MITgcm/pkg/generic_advdiff/gad_advection.F

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

revision 1.42 by heimbach, Tue Jul 18 03:23:50 2006 UTC revision 1.43 by jmc, Tue Dec 5 05:26:46 2006 UTC
# Line 411  C         in corner region) but safer to Line 411  C         in corner region) but safer to
411          IF ( S_edge ) THEN          IF ( S_edge ) THEN
412           DO j=1-Oly,0           DO j=1-Oly,0
413            DO i=iMinUpd,iMaxUpd            DO i=iMinUpd,iMaxUpd
414             localTij(i,j)=localTij(i,j)-dTtracerLev(k)*             localTij(i,j) = localTij(i,j)
415       &       _recip_hFacC(i,j,k,bi,bj)*recip_drF(k)       &      -dTtracerLev(k)*recip_rhoFacC(k)
416       &       *recip_rA(i,j,bi,bj)       &       *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k)
417         &       *recip_rA(i,j,bi,bj)*recip_deepFac2C(k)
418       &       *( af(i+1,j)-af(i,j)       &       *( af(i+1,j)-af(i,j)
419       &         -tracer(i,j,k,bi,bj)*(uTrans(i+1,j)-uTrans(i,j))       &         -tracer(i,j,k,bi,bj)*(uTrans(i+1,j)-uTrans(i,j))
420       &        )       &        )
# Line 423  C         in corner region) but safer to Line 424  C         in corner region) but safer to
424          IF ( N_edge ) THEN          IF ( N_edge ) THEN
425           DO j=sNy+1,sNy+Oly           DO j=sNy+1,sNy+Oly
426            DO i=iMinUpd,iMaxUpd            DO i=iMinUpd,iMaxUpd
427             localTij(i,j)=localTij(i,j)-dTtracerLev(k)*             localTij(i,j) = localTij(i,j)
428       &       _recip_hFacC(i,j,k,bi,bj)*recip_drF(k)       &      -dTtracerLev(k)*recip_rhoFacC(k)
429       &       *recip_rA(i,j,bi,bj)       &       *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k)
430         &       *recip_rA(i,j,bi,bj)*recip_deepFac2C(k)
431       &       *( af(i+1,j)-af(i,j)       &       *( af(i+1,j)-af(i,j)
432       &         -tracer(i,j,k,bi,bj)*(uTrans(i+1,j)-uTrans(i,j))       &         -tracer(i,j,k,bi,bj)*(uTrans(i+1,j)-uTrans(i,j))
433       &        )       &        )
# Line 441  C      do not only update the overlap Line 443  C      do not only update the overlap
443          IF ( interiorOnly .AND. N_edge ) jMaxUpd = sNy          IF ( interiorOnly .AND. N_edge ) jMaxUpd = sNy
444          DO j=jMinUpd,jMaxUpd          DO j=jMinUpd,jMaxUpd
445           DO i=1-Olx+1,sNx+Olx-1           DO i=1-Olx+1,sNx+Olx-1
446             localTij(i,j)=localTij(i,j)-dTtracerLev(k)*             localTij(i,j) = localTij(i,j)
447       &       _recip_hFacC(i,j,k,bi,bj)*recip_drF(k)       &      -dTtracerLev(k)*recip_rhoFacC(k)
448       &       *recip_rA(i,j,bi,bj)       &       *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k)
449         &       *recip_rA(i,j,bi,bj)*recip_deepFac2C(k)
450       &       *( af(i+1,j)-af(i,j)       &       *( af(i+1,j)-af(i,j)
451       &         -tracer(i,j,k,bi,bj)*(uTrans(i+1,j)-uTrans(i,j))       &         -tracer(i,j,k,bi,bj)*(uTrans(i+1,j)-uTrans(i,j))
452       &        )       &        )
# Line 575  C         in corner region) but safer to Line 578  C         in corner region) but safer to
578          IF ( W_edge ) THEN          IF ( W_edge ) THEN
579           DO j=jMinUpd,jMaxUpd           DO j=jMinUpd,jMaxUpd
580            DO i=1-Olx,0            DO i=1-Olx,0
581             localTij(i,j)=localTij(i,j)-dTtracerLev(k)*             localTij(i,j) = localTij(i,j)
582       &       _recip_hFacC(i,j,k,bi,bj)*recip_drF(k)       &      -dTtracerLev(k)*recip_rhoFacC(k)
583       &       *recip_rA(i,j,bi,bj)       &       *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k)
584         &       *recip_rA(i,j,bi,bj)*recip_deepFac2C(k)
585       &       *( af(i,j+1)-af(i,j)       &       *( af(i,j+1)-af(i,j)
586       &         -tracer(i,j,k,bi,bj)*(vTrans(i,j+1)-vTrans(i,j))       &         -tracer(i,j,k,bi,bj)*(vTrans(i,j+1)-vTrans(i,j))
587       &        )       &        )
# Line 587  C         in corner region) but safer to Line 591  C         in corner region) but safer to
591          IF ( E_edge ) THEN          IF ( E_edge ) THEN
592           DO j=jMinUpd,jMaxUpd           DO j=jMinUpd,jMaxUpd
593            DO i=sNx+1,sNx+Olx            DO i=sNx+1,sNx+Olx
594             localTij(i,j)=localTij(i,j)-dTtracerLev(k)*             localTij(i,j) = localTij(i,j)
595       &       _recip_hFacC(i,j,k,bi,bj)*recip_drF(k)       &      -dTtracerLev(k)*recip_rhoFacC(k)
596       &       *recip_rA(i,j,bi,bj)       &       *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k)
597         &       *recip_rA(i,j,bi,bj)*recip_deepFac2C(k)
598       &       *( af(i,j+1)-af(i,j)       &       *( af(i,j+1)-af(i,j)
599       &         -tracer(i,j,k,bi,bj)*(vTrans(i,j+1)-vTrans(i,j))       &         -tracer(i,j,k,bi,bj)*(vTrans(i,j+1)-vTrans(i,j))
600       &        )       &        )
# Line 605  C      do not only update the overlap Line 610  C      do not only update the overlap
610          IF ( interiorOnly .AND. E_edge ) iMaxUpd = sNx          IF ( interiorOnly .AND. E_edge ) iMaxUpd = sNx
611          DO j=1-Oly+1,sNy+Oly-1          DO j=1-Oly+1,sNy+Oly-1
612           DO i=iMinUpd,iMaxUpd           DO i=iMinUpd,iMaxUpd
613             localTij(i,j)=localTij(i,j)-dTtracerLev(k)*             localTij(i,j) = localTij(i,j)
614       &       _recip_hFacC(i,j,k,bi,bj)*recip_drF(k)       &      -dTtracerLev(k)*recip_rhoFacC(k)
615       &       *recip_rA(i,j,bi,bj)       &       *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k)
616         &       *recip_rA(i,j,bi,bj)*recip_deepFac2C(k)
617       &       *( af(i,j+1)-af(i,j)       &       *( af(i,j+1)-af(i,j)
618       &         -tracer(i,j,k,bi,bj)*(vTrans(i,j+1)-vTrans(i,j))       &         -tracer(i,j,k,bi,bj)*(vTrans(i,j+1)-vTrans(i,j))
619       &        )       &        )
# Line 655  C-    explicit advection is done ; store Line 661  C-    explicit advection is done ; store
661          ENDDO          ENDDO
662        ELSE        ELSE
663  C-    horizontal advection done; store intermediate result in 3D array:  C-    horizontal advection done; store intermediate result in 3D array:
664         DO j=1-Oly,sNy+Oly          DO j=1-Oly,sNy+Oly
665          DO i=1-Olx,sNx+Olx           DO i=1-Olx,sNx+Olx
666           localTijk(i,j,k)=localTij(i,j)            localTijk(i,j,k)=localTij(i,j)
667             ENDDO
668          ENDDO          ENDDO
        ENDDO  
669        ENDIF        ENDIF
670    
671  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
# Line 743  C- Interior interface : Line 749  C- Interior interface :
749             rTransKp1(i,j) = kp1Msk*rTrans(i,j)             rTransKp1(i,j) = kp1Msk*rTrans(i,j)
750             wFld(i,j)   = wVel(i,j,k,bi,bj)             wFld(i,j)   = wVel(i,j,k,bi,bj)
751             rTrans(i,j) = wVel(i,j,k,bi,bj)*rA(i,j,bi,bj)             rTrans(i,j) = wVel(i,j,k,bi,bj)*rA(i,j,bi,bj)
752         &                 *deepFac2F(k)*rhoFacF(k)
753       &                 *maskC(i,j,k-1,bi,bj)       &                 *maskC(i,j,k-1,bi,bj)
754             fVerT(i,j,kUp) = 0.             fVerT(i,j,kUp) = 0.
755            ENDDO            ENDDO
# Line 798  CADJ &     = comlev1_bibj_k_gad, key=kke Line 805  CADJ &     = comlev1_bibj_k_gad, key=kke
805  C--   Divergence of vertical fluxes  C--   Divergence of vertical fluxes
806          DO j=1-Oly,sNy+Oly          DO j=1-Oly,sNy+Oly
807           DO i=1-Olx,sNx+Olx           DO i=1-Olx,sNx+Olx
808            localTij(i,j)=localTijk(i,j,k)-dTtracerLev(k)*            localTij(i,j) = localTijk(i,j,k)
809       &     _recip_hFacC(i,j,k,bi,bj)*recip_drF(k)       &      -dTtracerLev(k)*recip_rhoFacC(k)
810       &     *recip_rA(i,j,bi,bj)       &       *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k)
811       &     *( fVerT(i,j,kDown)-fVerT(i,j,kUp)       &       *recip_rA(i,j,bi,bj)*recip_deepFac2C(k)
812       &       -tracer(i,j,k,bi,bj)*(rTransKp1(i,j)-rTrans(i,j))       &       *( fVerT(i,j,kDown)-fVerT(i,j,kUp)
813       &      )*rkSign       &         -tracer(i,j,k,bi,bj)*(rTransKp1(i,j)-rTrans(i,j))
814         &        )*rkSign
815            gTracer(i,j,k,bi,bj)=            gTracer(i,j,k,bi,bj)=
816       &     (localTij(i,j)-tracer(i,j,k,bi,bj))/dTtracerLev(k)       &     (localTij(i,j)-tracer(i,j,k,bi,bj))/dTtracerLev(k)
817           ENDDO           ENDDO

Legend:
Removed from v.1.42  
changed lines
  Added in v.1.43

  ViewVC Help
Powered by ViewVC 1.1.22