/[MITgcm]/MITgcm/verification/advect_xz/code/ini_vel.F
ViewVC logotype

Annotation of /MITgcm/verification/advect_xz/code/ini_vel.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.5 - (hide annotations) (download)
Tue Jan 3 19:06:45 2006 UTC (18 years, 3 months ago) by jmc
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +1 -1 lines
FILE REMOVED
read from files bathymetry & initial conditions

1 jmc 1.5 C $Header: /u/gcmpack/MITgcm/verification/advect_xz/code/ini_vel.F,v 1.4 2003/10/09 04:19:22 edhill Exp $
2 adcroft 1.1 C $Name: $
3    
4     #include "CPP_OPTIONS.h"
5    
6     SUBROUTINE INI_VEL( myThid )
7     IMPLICIT NONE
8    
9     C Initialize 3D flow field (either to zero or from input files)
10    
11     C === Global variables ===
12     #include "SIZE.h"
13     #include "EEPARAMS.h"
14     #include "PARAMS.h"
15     #include "GRID.h"
16     #include "DYNVARS.h"
17    
18     C == Routine arguments ==
19     C myThid - Number of this instance of INI_UVEL
20     INTEGER myThid
21    
22     C == Local variables ==
23     C bi,bj,i,j,k - Loop counters
24     INTEGER bi,bj,i,j,k
25    
26     _RL psi,Lfac,Rpi
27     psi(i,j,k,bi,bj)=Lfac*sin(XG(i,j,bi,bj)*Rpi/Lfac)
28 adcroft 1.2 & *sin( max(RF(k),
29     & max(R_low(i,j,bi,bj),R_low(i-1,j,bi,bj))
30     & )*Rpi*recip_Rcol(i,j,bi,bj))
31 adcroft 1.1
32 adcroft 1.2 Rpi=3.14159265358979 _d 0
33 adcroft 1.1 Lfac=(DELX(1)*float(Nx))
34    
35    
36     C-- Initialise velocity fields to zero
37     C
38     C If you want to specify an analytic initial state for the flow
39     C field then customize the following section of code.
40     C It is, however, often easier to generate initial conditions
41     C off-line and read them from input files...
42     C
43     DO bj = myByLo(myThid), myByHi(myThid)
44     DO bi = myBxLo(myThid), myBxHi(myThid)
45     DO k=1,Nr
46     DO j=1-Oly,sNy+Oly
47 adcroft 1.2 DO i=1-Olx+1,sNx+Olx
48 adcroft 1.1 uVel (I,J,K,bi,bj) = 0. _d 0
49     & + (psi(I,J,K,bi,bj)-psi(I,J,K+1,bi,bj))*recip_dRF(k)
50     & *recip_hFacW(i,j,k,bi,bj)
51    
52     vVel(i,j,k,bi,bj)=0.
53     ENDDO
54     ENDDO
55     ENDDO
56     ENDDO
57     ENDDO
58    
59     C Read an initial state for each component if required
60     IF (uVelInitFile .NE. ' ') THEN
61     _BEGIN_MASTER( myThid )
62     CALL READ_FLD_XYZ_RL( uVelInitFile, ' ', uVel, 0, myThid )
63     _END_MASTER(myThid)
64     c _EXCH_XYZ_R8(uVel , myThid )
65     ENDIF
66    
67     IF (vVelInitFile .NE. ' ') THEN
68     _BEGIN_MASTER( myThid )
69     CALL READ_FLD_XYZ_RL( vVelInitFile, ' ', vVel, 0, myThid )
70     _END_MASTER(myThid)
71     c _EXCH_XYZ_R8(vVel , myThid )
72     ENDIF
73    
74     DO bj = myByLo(myThid), myByHi(myThid)
75     DO bi = myBxLo(myThid), myBxHi(myThid)
76     DO k=1,Nr
77     DO j=1-Oly,sNy+Oly
78     DO i=1-Olx,sNx+Olx
79     uVel(i,j,k,bi,bj)=uVel(i,j,k,bi,bj)*_maskW(i,j,k,bi,bj)
80     vVel(i,j,k,bi,bj)=vVel(i,j,k,bi,bj)*_maskS(i,j,k,bi,bj)
81     ENDDO
82     ENDDO
83     ENDDO
84     ENDDO
85     ENDDO
86    
87     c IF (uVelInitFile .NE. ' ' .OR. vVelInitFile .NE. ' ') THEN
88     CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid)
89     c ENDIF
90    
91     RETURN
92     END

  ViewVC Help
Powered by ViewVC 1.1.22