--- MITgcm/model/src/dynamics.F 2005/07/30 23:39:48 1.122 +++ MITgcm/model/src/dynamics.F 2005/12/15 21:09:00 1.127 @@ -1,8 +1,9 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/src/dynamics.F,v 1.122 2005/07/30 23:39:48 jmc Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/src/dynamics.F,v 1.127 2005/12/15 21:09:00 jmc Exp $ C $Name: $ #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" +#undef DYNAMICS_GUGV_EXCH_CHECK CBOP C !ROUTINE: DYNAMICS @@ -219,6 +220,11 @@ C--- CEOP +#ifdef ALLOW_DEBUG + IF ( debugLevel .GE. debLevB ) + & CALL DEBUG_ENTER( 'DYNAMICS', myThid ) +#endif + C-- Call to routine for calculation of C Eliassen-Palm-flux-forced U-tendency, C if desired: @@ -362,6 +368,39 @@ CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE salt (:,:,k,bi,bj) CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +# ifdef NONLIN_FRSURF +cph-test +CADJ STORE phiHydC (:,:) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE phiHydF (:,:) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE gudissip (:,:) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE gvdissip (:,:) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE fVerU (:,:,:) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE fVerV (:,:,:) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE gu(:,:,k,bi,bj) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE gv(:,:,k,bi,bj) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE gunm1(:,:,k,bi,bj) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE gvnm1(:,:,k,bi,bj) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +# ifdef ALLOW_CD_CODE +CADJ STORE unm1(:,:,k,bi,bj) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE vnm1(:,:,k,bi,bj) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE uVelD(:,:,k,bi,bj) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE vVelD(:,:,k,bi,bj) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +# endif +# endif #endif /* ALLOW_AUTODIFF_TAMC */ C-- Integrate hydrostatic balance for phiHyd with BC of @@ -385,12 +424,24 @@ I myTime, myIter, myThid) #endif #ifdef ALLOW_MOM_VECINV - IF (vectorInvariantMomentum) CALL MOM_VECINV( + IF (vectorInvariantMomentum) THEN +C +# ifdef ALLOW_AUTODIFF_TAMC +# ifdef NONLIN_FRSURF +CADJ STORE fVerU(:,:,:) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE fVerV(:,:,:) +CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte +# endif +# endif /* ALLOW_AUTODIFF_TAMC */ +C + CALL MOM_VECINV( I bi,bj,iMin,iMax,jMin,jMax,k,kup,kDown, I KappaRU, KappaRV, U fVerU, fVerV, O guDissip, gvDissip, I myTime, myIter, myThid) + ENDIF #endif CALL TIMESTEP( I bi,bj,iMin,iMax,jMin,jMax,k, @@ -428,7 +479,7 @@ #endif /* ALLOW_AUTODIFF_TAMC */ CALL IMPLDIFF( I bi, bj, iMin, iMax, jMin, jMax, - I 0, KappaRU,recip_HFacW, + I -1, KappaRU,recip_HFacW, U gU, I myThid ) #ifdef ALLOW_AUTODIFF_TAMC @@ -437,7 +488,7 @@ #endif /* ALLOW_AUTODIFF_TAMC */ CALL IMPLDIFF( I bi, bj, iMin, iMax, jMin, jMax, - I 0, KappaRV,recip_HFacS, + I -2, KappaRV,recip_HFacS, U gV, I myThid ) ENDIF @@ -488,11 +539,12 @@ C-- Step forward W field in N-H algorithm IF ( momStepping .AND. nonHydrostatic ) THEN #ifdef ALLOW_DEBUG - IF ( debugLevel .GE. debLevB ) - & CALL DEBUG_CALL('CALC_GW',myThid) + IF ( debugLevel .GE. debLevB ) + & CALL DEBUG_CALL('CALC_GW', myThid ) #endif CALL TIMER_START('CALC_GW [DYNAMICS]',myThid) CALL CALC_GW( myTime, myIter, myThid ) + CALL TIMESTEP_WVEL( myTime, myIter, myThid ) CALL TIMER_STOP ('CALC_GW [DYNAMICS]',myThid) ENDIF #endif @@ -544,5 +596,19 @@ ENDIF #endif +#ifdef DYNAMICS_GUGV_EXCH_CHECK +C- jmc: For safety checking only: This Exchange here should not change +C the solution. If solution changes, it means something is wrong, +C but it does not mean that it is less wrong with this exchange. + IF ( debugLevel .GT. debLevB ) THEN + CALL EXCH_UV_XYZ_RL(gU,gV,.TRUE.,myThid) + ENDIF +#endif + +#ifdef ALLOW_DEBUG + IF ( debugLevel .GE. debLevB ) + & CALL DEBUG_LEAVE( 'DYNAMICS', myThid ) +#endif + RETURN END