/[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.2 - (hide annotations) (download)
Thu May 15 15:20:26 2003 UTC (21 years ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint51f_pre, branchpoint-genmake2, checkpoint51e_post, checkpoint51b_post, checkpoint51c_post, checkpoint51, checkpoint51b_pre, checkpoint50g_post, checkpoint50f_post, checkpoint50f_pre, checkpoint51d_post, checkpoint51a_post, checkpoint50i_post
Branch point for: branch-genmake2
Changes since 1.1: +6 -4 lines
Added _d at JMCs suggestion (about a year ago!)

1 adcroft 1.2 C $Header: /u/gcmpack/models/MITgcmUV/verification/advect_xz/code/ini_vel.F,v 1.1 2001/09/28 02:28:10 adcroft 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     wVel(i,j,k,bi,bj)=0.
54     ENDDO
55     ENDDO
56     ENDDO
57     ENDDO
58     ENDDO
59    
60     C Read an initial state for each component if required
61     IF (uVelInitFile .NE. ' ') THEN
62     _BEGIN_MASTER( myThid )
63     CALL READ_FLD_XYZ_RL( uVelInitFile, ' ', uVel, 0, myThid )
64     _END_MASTER(myThid)
65     c _EXCH_XYZ_R8(uVel , myThid )
66     ENDIF
67    
68     IF (vVelInitFile .NE. ' ') THEN
69     _BEGIN_MASTER( myThid )
70     CALL READ_FLD_XYZ_RL( vVelInitFile, ' ', vVel, 0, myThid )
71     _END_MASTER(myThid)
72     c _EXCH_XYZ_R8(vVel , myThid )
73     ENDIF
74    
75     DO bj = myByLo(myThid), myByHi(myThid)
76     DO bi = myBxLo(myThid), myBxHi(myThid)
77     DO k=1,Nr
78     DO j=1-Oly,sNy+Oly
79     DO i=1-Olx,sNx+Olx
80     uVel(i,j,k,bi,bj)=uVel(i,j,k,bi,bj)*_maskW(i,j,k,bi,bj)
81     vVel(i,j,k,bi,bj)=vVel(i,j,k,bi,bj)*_maskS(i,j,k,bi,bj)
82     ENDDO
83     ENDDO
84     CALL INTEGRATE_FOR_W(
85     I bi, bj, k, uVel, vVel,
86     O wVel,
87     I myThid )
88     ENDDO
89     ENDDO
90     ENDDO
91    
92     c IF (uVelInitFile .NE. ' ' .OR. vVelInitFile .NE. ' ') THEN
93     CALL EXCH_UV_XYZ_RL(uVel,vVel,.TRUE.,myThid)
94     _EXCH_XYZ_R8(wVel,myThid)
95     c ENDIF
96    
97     RETURN
98     END

  ViewVC Help
Powered by ViewVC 1.1.22