File indexing completed on 2024-01-06 06:10:49 UTC
view on githubraw file Latest commit aef96ed3 on 2024-01-05 19:00:20 UTC
905f660335 Alis*0001 #include "CPP_OPTIONS.h"
                0002 
644a731b64 Jean*0003 
                0004 
                0005 
905f660335 Alis*0006       SUBROUTINE INI_VEL( myThid )
                0007 
644a731b64 Jean*0008 
                0009 
                0010 
                0011 
                0012 
                0013 
905f660335 Alis*0014 
644a731b64 Jean*0015 
                0016       IMPLICIT NONE
905f660335 Alis*0017 
                0018 #include "SIZE.h"
                0019 #include "EEPARAMS.h"
                0020 #include "PARAMS.h"
                0021 #include "GRID.h"
                0022 #include "DYNVARS.h"
                0023 
644a731b64 Jean*0024 
aef96ed361 Jean*0025 
905f660335 Alis*0026       INTEGER myThid
                0027 
aef96ed361 Jean*0028 
                0029 
                0030 
                0031       INTEGER i, j, k
                0032       INTEGER bi, bj
                0033       INTEGER ip1, jp1
                0034       _RL psi, omegaprime, fac
                0035 
905f660335 Alis*0036 
aef96ed361 Jean*0037 
                0038       psi(i,j,bi,bj) = fac*fCoriG(i,j,bi,bj)
905f660335 Alis*0039 
                0040 
                0041 
                0042 
                0043 
                0044 
                0045 
                0046 
aef96ed361 Jean*0047 
                0048       omegaprime = 80. _d 0 / rSphere
                0049       fac = -(rSphere*rSphere)*omegaprime/(2. _d 0*Omega)
905f660335 Alis*0050       DO bj = myByLo(myThid), myByHi(myThid)
                0051        DO bi = myBxLo(myThid), myBxHi(myThid)
                0052         DO k=1,Nr
aef96ed361 Jean*0053          DO j=1-OLy,sNy+OLy
                0054           jp1 = MIN(j+1,sNy+OLy)
                0055           DO i=1-OLx,sNx+OLx
                0056            ip1 = MIN(i+1,sNx+OLx)
                0057            uVel(i,j,k,bi,bj) = 0. _d 0
                0058      &      + (psi(i,j,bi,bj)-psi(i,jp1,bi,bj))*recip_dyG(i,j,bi,bj)
                0059            vVel(i,j,k,bi,bj) = 0. _d 0
                0060      &      + (psi(ip1,j,bi,bj)-psi(i,j,bi,bj))*recip_dxG(i,j,bi,bj)
905f660335 Alis*0061           ENDDO
                0062          ENDDO
                0063         ENDDO
                0064        ENDDO
                0065       ENDDO
                0066 
aef96ed361 Jean*0067 
905f660335 Alis*0068 
aef96ed361 Jean*0069        IF ( uVelInitFile .NE. ' ' )
                0070      & CALL READ_FLD_XYZ_RL( uVelInitFile, ' ', uVel, 0, myThid )
905f660335 Alis*0071 
aef96ed361 Jean*0072        IF ( vVelInitFile .NE. ' ' )
                0073      & CALL READ_FLD_XYZ_RL( vVelInitFile, ' ', vVel, 0, myThid )
905f660335 Alis*0074 
644a731b64 Jean*0075        CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid)
                0076 
                0077 
905f660335 Alis*0078       DO bj = myByLo(myThid), myByHi(myThid)
                0079        DO bi = myBxLo(myThid), myBxHi(myThid)
                0080         DO k=1,Nr
aef96ed361 Jean*0081          DO j=1-OLy,sNy+OLy
                0082           DO i=1-OLx,sNx+OLx
                0083            uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)*_maskW(i,j,k,bi,bj)
                0084            vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)*_maskS(i,j,k,bi,bj)
905f660335 Alis*0085           ENDDO
                0086          ENDDO
                0087         ENDDO
                0088        ENDDO
                0089       ENDDO
                0090 
                0091       RETURN
                0092       END