/[MITgcm]/MITgcm/pkg/mom_vecinv/mom_vecinv.F
ViewVC logotype

Diff of /MITgcm/pkg/mom_vecinv/mom_vecinv.F

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

revision 1.34 by baylor, Thu Mar 10 02:39:56 2005 UTC revision 1.42 by jmc, Wed Jun 22 00:33:14 2005 UTC
# Line 114  C--   (at least in part) Line 114  C--   (at least in part)
114        fVerV(1,1,kUp) = fVerV(1,1,kUp)        fVerV(1,1,kUp) = fVerV(1,1,kUp)
115  #endif  #endif
116    
117        writeDiag = DIFFERENT_MULTIPLE(diagFreq, myTime,        writeDiag = DIFFERENT_MULTIPLE(diagFreq, myTime, deltaTClock)
      &                                         myTime-deltaTClock)  
118    
119  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
120        IF (useMNC .AND. snapshot_mnc .AND. writeDiag) THEN        IF (useMNC .AND. snapshot_mnc .AND. writeDiag) THEN
121          IF ((bi .EQ. 1).AND.(bj .EQ. 1).AND.(k .EQ. 1)) THEN          IF ((bi .EQ. 1).AND.(bj .EQ. 1).AND.(k .EQ. 1)) THEN
122            CALL MNC_CW_SET_UDIM('mom_vi', -1, myThid)            CALL MNC_CW_SET_UDIM('mom_vi', -1, myThid)
123            CALL MNC_CW_I_W_S('I','mom_vi',0,0,'T',myIter,myThid)            CALL MNC_CW_RL_W_S('D','mom_vi',0,0,'T',myTime,myThid)
124            CALL MNC_CW_SET_UDIM('mom_vi', 0, myThid)            CALL MNC_CW_SET_UDIM('mom_vi', 0, myThid)
125              CALL MNC_CW_I_W_S('I','mom_vi',0,0,'iter',myIter,myThid)
126          ENDIF          ENDIF
127          DO i = 1,9          DO i = 1,9
128            offsets(i) = 0            offsets(i) = 0
# Line 232  C      in terms of vorticity and diverge Line 232  C      in terms of vorticity and diverge
232       &                       myThid)       &                       myThid)
233         ENDIF         ENDIF
234  C      or in terms of tension and strain  C      or in terms of tension and strain
235         IF (viscAstrain.NE.0. .OR. viscAtension.NE.0.) THEN         IF (viscAstrain.NE.0. .OR. viscAtension.NE.0.
236         O      .OR. viscC2smag.ne.0) THEN
237           CALL MOM_CALC_TENSION(bi,bj,k,uFld,vFld,           CALL MOM_CALC_TENSION(bi,bj,k,uFld,vFld,
238       O                         tension,       O                         tension,
239       I                         myThid)       I                         myThid)
# Line 271  C--   Tendency is minus divergence of th Line 272  C--   Tendency is minus divergence of th
272       &   -_recip_hFacW(i,j,k,bi,bj)*recip_drF(k)       &   -_recip_hFacW(i,j,k,bi,bj)*recip_drF(k)
273       &   *recip_rAw(i,j,bi,bj)       &   *recip_rAw(i,j,bi,bj)
274       &  *(       &  *(
275       &   +fVerU(i,j,kUp)*rkFac - fVerU(i,j,kDown)*rkFac       &    fVerU(i,j,kDown) - fVerU(i,j,kUp)
276       &   )       &   )*rkSign
277          ENDDO          ENDDO
278         ENDDO         ENDDO
279        ENDIF        ENDIF
# Line 331  C--   Tendency is minus divergence of th Line 332  C--   Tendency is minus divergence of th
332       &   -_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)       &   -_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)
333       &    *recip_rAs(i,j,bi,bj)       &    *recip_rAs(i,j,bi,bj)
334       &  *(       &  *(
335       &   +fVerV(i,j,kUp)*rkFac - fVerV(i,j,kDown)*rkFac       &    fVerV(i,j,kDown) - fVerV(i,j,kUp)
336       &   )       &   )*rkSign
337          ENDDO          ENDDO
338         ENDDO         ENDDO
339        ENDIF        ENDIF
# Line 369  c      ENDDO Line 370  c      ENDDO
370  c     ENDIF  c     ENDIF
371    
372  C--   Horizontal Coriolis terms  C--   Horizontal Coriolis terms
373        IF (useCoriolis .AND. .NOT.useCDscheme  c     IF (useCoriolis .AND. .NOT.useCDscheme
374       &    .AND. .NOT. useAbsVorticity) THEN  c    &    .AND. .NOT. useAbsVorticity) THEN
375         CALL MOM_VI_CORIOLIS(bi,bj,k,uFld,vFld,hFacZ,r_hFacZ,  C- jmc: change it to keep the Coriolis terms when useAbsVorticity=T & momAdvection=F
376       &                      uCf,vCf,myThid)        IF ( useCoriolis .AND.
377         &     .NOT.( useCDscheme .OR. useAbsVorticity.AND.momAdvection )
378         &   ) THEN
379           IF (useAbsVorticity) THEN
380            CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,omega3,hFacZ,r_hFacZ,
381         &                         uCf,myThid)
382            CALL MOM_VI_V_CORIOLIS(bi,bj,K,uFld,omega3,hFacZ,r_hFacZ,
383         &                         vCf,myThid)
384           ELSE
385            CALL MOM_VI_CORIOLIS(bi,bj,k,uFld,vFld,hFacZ,r_hFacZ,
386         &                       uCf,vCf,myThid)
387           ENDIF
388         DO j=jMin,jMax         DO j=jMin,jMax
389          DO i=iMin,iMax          DO i=iMin,iMax
390           gU(i,j,k,bi,bj) = uCf(i,j) - phxFac*dPhiHydX(i,j)           gU(i,j,k,bi,bj) = uCf(i,j) - phxFac*dPhiHydX(i,j)
# Line 403  C--   Horizontal Coriolis terms Line 415  C--   Horizontal Coriolis terms
415        ENDIF        ENDIF
416    
417        IF (momAdvection) THEN        IF (momAdvection) THEN
418  C--   Horizontal advection of relative vorticity  C--   Horizontal advection of relative (or absolute) vorticity
419         IF (useAbsVorticity) THEN         IF (highOrderVorticity.AND.useAbsVorticity) THEN
420            CALL MOM_VI_U_CORIOLIS_C4(bi,bj,k,vFld,omega3,r_hFacZ,
421         &                         uCf,myThid)
422           ELSEIF (highOrderVorticity) THEN
423            CALL MOM_VI_U_CORIOLIS_C4(bi,bj,k,vFld,vort3, r_hFacZ,
424         &                         uCf,myThid)
425           ELSEIF (useAbsVorticity) THEN
426          CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,omega3,hFacZ,r_hFacZ,          CALL MOM_VI_U_CORIOLIS(bi,bj,K,vFld,omega3,hFacZ,r_hFacZ,
427       &                         uCf,myThid)       &                         uCf,myThid)
428         ELSE         ELSE
429          CALL MOM_VI_U_CORIOLIS(bi,bj,k,vFld,vort3,hFacZ,r_hFacZ,          CALL MOM_VI_U_CORIOLIS(bi,bj,k,vFld,vort3, hFacZ,r_hFacZ,
430       &                         uCf,myThid)       &                         uCf,myThid)
431         ENDIF         ENDIF
 c      CALL MOM_VI_U_CORIOLIS_C4(bi,bj,K,vFld,vort3,r_hFacZ,uCf,myThid)  
432         DO j=jMin,jMax         DO j=jMin,jMax
433          DO i=iMin,iMax          DO i=iMin,iMax
434           gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j)           gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+uCf(i,j)
435          ENDDO          ENDDO
436         ENDDO         ENDDO
437         IF (useAbsVorticity) THEN         IF (highOrderVorticity.AND.useAbsVorticity) THEN
438            CALL MOM_VI_V_CORIOLIS_C4(bi,bj,K,uFld,omega3,r_hFacZ,
439         &                         vCf,myThid)
440           ELSEIF (highOrderVorticity) THEN
441            CALL MOM_VI_V_CORIOLIS_C4(bi,bj,K,uFld,vort3, r_hFacZ,
442         &                         vCf,myThid)
443           ELSEIF (useAbsVorticity) THEN
444          CALL MOM_VI_V_CORIOLIS(bi,bj,K,uFld,omega3,hFacZ,r_hFacZ,          CALL MOM_VI_V_CORIOLIS(bi,bj,K,uFld,omega3,hFacZ,r_hFacZ,
445       &                         vCf,myThid)       &                         vCf,myThid)
446         ELSE         ELSE
447          CALL MOM_VI_V_CORIOLIS(bi,bj,k,uFld,vort3,hFacZ,r_hFacZ,          CALL MOM_VI_V_CORIOLIS(bi,bj,k,uFld,vort3, hFacZ,r_hFacZ,
448       &                         vCf,myThid)       &                         vCf,myThid)
449         ENDIF         ENDIF
 c      CALL MOM_VI_V_CORIOLIS_C4(bi,bj,K,uFld,vort3,r_hFacZ,vCf,myThid)  
450         DO j=jMin,jMax         DO j=jMin,jMax
451          DO i=iMin,iMax          DO i=iMin,iMax
452           gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+vCf(i,j)           gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+vCf(i,j)
# Line 555  C--   Set du/dt & dv/dt on boundaries to Line 577  C--   Set du/dt & dv/dt on boundaries to
577          ENDIF          ENDIF
578  #endif /*  ALLOW_MNC  */  #endif /*  ALLOW_MNC  */
579        ENDIF        ENDIF
580          
581  #endif /* ALLOW_MOM_VECINV */  #endif /* ALLOW_MOM_VECINV */
582    
583        RETURN        RETURN

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

  ViewVC Help
Powered by ViewVC 1.1.22