--- MITgcm/model/src/dynamics.F 1998/06/08 18:45:28 1.13 +++ MITgcm/model/src/dynamics.F 1998/06/10 01:44:03 1.17 @@ -1,4 +1,4 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/src/dynamics.F,v 1.13 1998/06/08 18:45:28 adcroft Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/model/src/dynamics.F,v 1.17 1998/06/10 01:44:03 cnh Exp $ #include "CPP_EEOPTIONS.h" @@ -39,9 +39,11 @@ C == Local variables C xA, yA - Per block temporaries holding face areas C uTrans, vTrans, wTrans - Per block temporaries holding flow transport -C o uTrans: Zonal transport +C wVel o uTrans: Zonal transport C o vTrans: Meridional transport C o wTrans: Vertical transport +C o wVel: Vertical velocity at upper and lower +C cell faces. C maskC,maskUp o maskC: land/water mask for tracer cells C o maskUp: land/water mask for W points C aTerm, xTerm, cTerm - Work arrays for holding separate terms in @@ -68,6 +70,7 @@ _RL uTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL vTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL wTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL wVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) _RS maskC (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RS maskUp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL aTerm (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -171,6 +174,7 @@ rhokm1(i,j) = 0. _d 0 rhokp1(i,j) = 0. _d 0 rhotmp(i,j) = 0. _d 0 + maskC (i,j) = 0. _d 0 ENDDO ENDDO @@ -181,6 +185,8 @@ DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx wTrans(i,j) = 0. _d 0 + wVel (i,j,1) = 0. _d 0 + wVel (i,j,2) = 0. _d 0 fVerT(i,j,1) = 0. _d 0 fVerT(i,j,2) = 0. _d 0 fVerS(i,j,1) = 0. _d 0 @@ -222,8 +228,8 @@ I bi,bj,iMin,iMax,jMin,jMax,1,rhoKm1,rhoKm1, U pH, I myThid ) - DO J=1-Oly,sNy+Oly - DO I=1-Olx,sNx+Olx + DO J=jMin,jMax + DO I=iMin,iMax rhoKp1(I,J)=rhoKm1(I,J) ENDDO ENDDO @@ -238,8 +244,8 @@ copt O rhoKm1, copt I myThid ) C rhoKm1=rhoKp1 - DO J=1-Oly,sNy+Oly - DO I=1-Olx,sNx+Olx + DO J=jMin,jMax + DO I=iMin,iMax rhoKm1(I,J)=rhoKp1(I,J) ENDDO ENDDO @@ -300,7 +306,7 @@ C-- Get temporary terms used by tendency routines CALL CALC_COMMON_FACTORS ( I bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown, - O xA,yA,uTrans,vTrans,wTrans,maskC,maskUp, + O xA,yA,uTrans,vTrans,wTrans,wVel,maskC,maskUp, I myThid) C-- Calculate the total vertical diffusivity @@ -310,12 +316,11 @@ O KappaZT, I myThid) - C-- Calculate accelerations in the momentum equations IF ( momStepping ) THEN CALL CALC_MOM_RHS( I bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown, - I xA,yA,uTrans,vTrans,wTrans,maskC, + I xA,yA,uTrans,vTrans,wTrans,wVel,maskC, I pH, U aTerm,xTerm,cTerm,mTerm,pTerm, U fZon, fMer, fVerU, fVerV, @@ -361,23 +366,24 @@ ENDDO ENDDO - write(0,*) 'dynamics: pS',minval(cg2d_x),maxval(cg2d_x) - write(0,*) 'dynamics: U',minval(uVel(1:sNx,1:sNy,:,:,:)), - & maxval(uVel(1:sNx,1:sNy,:,:,:)) - write(0,*) 'dynamics: V',minval(vVel(1:sNx,1:sNy,:,:,:)), - & maxval(vVel(1:sNx,1:sNy,:,:,:)) - write(0,*) 'dynamics: K13',minval(K13(1:sNx,1:sNy,:)), - & maxval(K13(1:sNx,1:sNy,:)) - write(0,*) 'dynamics: K23',minval(K23(1:sNx,1:sNy,:)), - & maxval(K23(1:sNx,1:sNy,:)) - write(0,*) 'dynamics: K33',minval(K33(1:sNx,1:sNy,:)), - & maxval(K33(1:sNx,1:sNy,:)) - write(0,*) 'dynamics: gT',minval(gT(1:sNx,1:sNy,:,:,:)), - & maxval(gT(1:sNx,1:sNy,:,:,:)) - write(0,*) 'dynamics: T',minval(Theta(1:sNx,1:sNy,:,:,:)), - & maxval(Theta(1:sNx,1:sNy,:,:,:)) - write(0,*) 'dynamics: pH',minval(pH/(Gravity*Rhonil)), - & maxval(pH/(Gravity*Rhonil)) +C write(0,*) 'dynamics: pS ',minval(cg2d_x(1:sNx,1:sNy,:,:)), +C & maxval(cg2d_x(1:sNx,1:sNy,:,:)) +C write(0,*) 'dynamics: U ',minval(uVel(1:sNx,1:sNy,:,:,:)), +C & maxval(uVel(1:sNx,1:sNy,:,:,:)) +C write(0,*) 'dynamics: V ',minval(vVel(1:sNx,1:sNy,:,:,:)), +C & maxval(vVel(1:sNx,1:sNy,:,:,:)) +cblk write(0,*) 'dynamics: K13',minval(K13(1:sNx,1:sNy,:)), +cblk & maxval(K13(1:sNx,1:sNy,:)) +cblk write(0,*) 'dynamics: K23',minval(K23(1:sNx,1:sNy,:)), +cblk & maxval(K23(1:sNx,1:sNy,:)) +cblk write(0,*) 'dynamics: K33',minval(K33(1:sNx,1:sNy,:)), +cblk & maxval(K33(1:sNx,1:sNy,:)) +C write(0,*) 'dynamics: gT ',minval(gT(1:sNx,1:sNy,:,:,:)), +C & maxval(gT(1:sNx,1:sNy,:,:,:)) +C write(0,*) 'dynamics: T ',minval(Theta(1:sNx,1:sNy,:,:,:)), +C & maxval(Theta(1:sNx,1:sNy,:,:,:)) +cblk write(0,*) 'dynamics: pH ',minval(pH/(Gravity*Rhonil)), +cblk & maxval(pH/(Gravity*Rhonil)) RETURN END