Back to home page

MITgcm

 
 

    


File indexing completed on 2024-01-06 06:10:39 UTC

view on githubraw file Latest commit aef96ed3 on 2024-01-05 19:00:20 UTC
5273e7d26a Alis*0001 #include "CPP_OPTIONS.h"
                0002 
2d5a0937bf Jean*0003 CBOP
                0004 C     !ROUTINE: INI_VEL
                0005 C     !INTERFACE:
5273e7d26a Alis*0006       SUBROUTINE INI_VEL( myThid )
                0007 
2d5a0937bf Jean*0008 C     !DESCRIPTION: \bv
                0009 C     *=================================================================
                0010 C     | SUBROUTINE INI_VEL
                0011 C     | o Initialize flow field (either to zero or from input files)
                0012 C     *=================================================================
                0013 C     \ev
5273e7d26a Alis*0014 
2d5a0937bf Jean*0015 C     !USES:
                0016       IMPLICIT NONE
5273e7d26a Alis*0017 C     === Global variables ===
                0018 #include "SIZE.h"
                0019 #include "EEPARAMS.h"
                0020 #include "PARAMS.h"
                0021 #include "GRID.h"
                0022 #include "DYNVARS.h"
                0023 
2d5a0937bf Jean*0024 C     !INPUT/OUTPUT PARAMETERS:
aef96ed361 Jean*0025 C     myThid :: my Thread Id number
5273e7d26a Alis*0026       INTEGER myThid
                0027 
2d5a0937bf Jean*0028 C     !LOCAL VARIABLES:
                0029 C     i,j,k  :: Loop counters
                0030 C     bi,bj  :: tile indices
aef96ed361 Jean*0031       INTEGER i, j, k
                0032       INTEGER bi, bj
2d5a0937bf Jean*0033 CEOP
5273e7d26a Alis*0034 
                0035 C--   Initialise velocity fields to zero
                0036 C
                0037 C     If you want to specify an analytic initial state for the flow
                0038 C     field then customize the following section of code.
                0039 C     It is, however, often easier to generate initial conditions
                0040 C     off-line and read them from input files...
                0041 C
                0042       DO bj = myByLo(myThid), myByHi(myThid)
                0043        DO bi = myBxLo(myThid), myBxHi(myThid)
                0044         DO k=1,Nr
aef96ed361 Jean*0045          DO j=1-OLy,sNy+OLy
                0046           DO i=1-OLx,sNx+OLx
                0047            uVel(i,j,k,bi,bj) = 1. _d 0
                0048            vVel(i,j,k,bi,bj) = 1. _d 0
5273e7d26a Alis*0049           ENDDO
                0050          ENDDO
                0051         ENDDO
                0052        ENDDO
                0053       ENDDO
                0054 
aef96ed361 Jean*0055       IF ( uVelInitFile .NE. ' ' .OR. vVelInitFile .NE. ' ' ) THEN
5273e7d26a Alis*0056 C     Read an initial state for each component if required
aef96ed361 Jean*0057        IF ( uVelInitFile .NE. ' ' )
2d5a0937bf Jean*0058      & CALL READ_FLD_XYZ_RL( uVelInitFile, ' ', uVel, 0, myThid )
                0059 
aef96ed361 Jean*0060        IF ( vVelInitFile .NE. ' ' )
2d5a0937bf Jean*0061      & CALL READ_FLD_XYZ_RL( vVelInitFile, ' ', vVel, 0, myThid )
5273e7d26a Alis*0062 
2d5a0937bf Jean*0063        CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid)
5273e7d26a Alis*0064       ENDIF
                0065 
                0066       DO bj = myByLo(myThid), myByHi(myThid)
                0067        DO bi = myBxLo(myThid), myBxHi(myThid)
                0068         DO k=1,Nr
aef96ed361 Jean*0069          DO j=1-OLy,sNy+OLy
                0070           DO i=1-OLx,sNx+OLx
                0071            uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)*_maskW(i,j,k,bi,bj)
                0072            vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)*_maskS(i,j,k,bi,bj)
5273e7d26a Alis*0073           ENDDO
                0074          ENDDO
                0075         ENDDO
                0076        ENDDO
                0077       ENDDO
                0078 
                0079       RETURN
                0080       END