--- MITgcm/verification/advect_cs/code/ini_vel.F 2003/02/11 02:29:54 1.2 +++ MITgcm/verification/advect_cs/code/ini_vel.F 2008/01/08 17:35:55 1.3 @@ -1,13 +1,22 @@ -C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/advect_cs/code/ini_vel.F,v 1.2 2003/02/11 02:29:54 jmc Exp $ +C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/advect_cs/code/ini_vel.F,v 1.3 2008/01/08 17:35:55 jmc Exp $ C $Name: $ #include "CPP_OPTIONS.h" +CBOP +C !ROUTINE: INI_VEL +C !INTERFACE: SUBROUTINE INI_VEL( myThid ) - IMPLICIT NONE -C Initialize 3D flow field (either to zero or from input files) +C !DESCRIPTION: \bv +C *================================================================= +C | SUBROUTINE INI_VEL +C | o Initialize flow field (either to zero or from input files) +C *================================================================= +C \ev +C !USES: + IMPLICIT NONE C === Global variables === #include "SIZE.h" #include "EEPARAMS.h" @@ -15,15 +24,19 @@ #include "GRID.h" #include "DYNVARS.h" +C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == -C myThid - Number of this instance of INI_UVEL +C myThid :: Number of this instance of INI_VEL INTEGER myThid +C !LOCAL VARIABLES: C == Local variables == -C bi,bj,i,j,k - Loop counters +C i,j,k :: Loop counters +C bi,bj :: tile indices INTEGER bi,bj,i,j,k INTEGER ip1,jp1 _RL psi,omegaprime,fac +CEOP psi(i,j,bi,bj)=fac*fCoriG(i,j,bi,bj) @@ -43,30 +56,26 @@ jp1=MIN(j+1,sNy+Oly) DO i=1-Olx,sNx+Olx ip1=MIN(i+1,sNx+Olx) - uVel(i,j,k,bi,bj)=0. - & +(psi(i,j,bi,bj)-psi(i,jp1,bi,bj))*recip_dyg(i,j,bi,bj) - vVel(i,j,k,bi,bj)=0. - & +(psi(ip1,j,bi,bj)-psi(i,j,bi,bj))*recip_dxg(i,j,bi,bj) - wVel(i,j,k,bi,bj)=0. + uVel(i,j,k,bi,bj)=0. _d 0 + & +(psi(i,j,bi,bj)-psi(i,jp1,bi,bj))*recip_dyG(i,j,bi,bj) + vVel(i,j,k,bi,bj)=0. _d 0 + & +(psi(ip1,j,bi,bj)-psi(i,j,bi,bj))*recip_dxG(i,j,bi,bj) ENDDO ENDDO ENDDO ENDDO ENDDO + IF (uVelInitFile .NE. ' ' .OR. vVelInitFile .NE. ' ') THEN + _BARRIER C Read an initial state for each component if required - IF (uVelInitFile .NE. ' ') THEN - _BEGIN_MASTER( myThid ) - CALL READ_FLD_XYZ_RL( uVelInitFile, ' ', uVel, 0, myThid ) - _END_MASTER(myThid) -c _EXCH_XYZ_R8(uVel , myThid ) - ENDIF + IF (uVelInitFile .NE. ' ') + & CALL READ_FLD_XYZ_RL( uVelInitFile, ' ', uVel, 0, myThid ) + + IF (vVelInitFile .NE. ' ') + & CALL READ_FLD_XYZ_RL( vVelInitFile, ' ', vVel, 0, myThid ) - IF (vVelInitFile .NE. ' ') THEN - _BEGIN_MASTER( myThid ) - CALL READ_FLD_XYZ_RL( vVelInitFile, ' ', vVel, 0, myThid ) - _END_MASTER(myThid) -c _EXCH_XYZ_R8(vVel , myThid ) + CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid) ENDIF DO bj = myByLo(myThid), myByHi(myThid) @@ -78,18 +87,9 @@ vVel(i,j,k,bi,bj)=vVel(i,j,k,bi,bj)*_maskS(i,j,k,bi,bj) ENDDO ENDDO - CALL INTEGRATE_FOR_W( - I bi, bj, k, uVel, vVel, - O wVel, - I myThid ) ENDDO ENDDO ENDDO -c IF (uVelInitFile .NE. ' ' .OR. vVelInitFile .NE. ' ') THEN - CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid) - _EXCH_XYZ_R8(wVel,myThid) -c ENDIF - RETURN END