/[MITgcm]/MITgcm/pkg/rbcs/rbcs_init_fixed.F
ViewVC logotype

Contents of /MITgcm/pkg/rbcs/rbcs_init_fixed.F

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


Revision 1.7 - (show annotations) (download)
Tue Jun 7 22:25:10 2011 UTC (12 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64q, checkpoint64p, checkpoint64r, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint64, checkpoint63, checkpoint62z
Changes since 1.6: +3 -3 lines
refine debugLevel criteria when printing messages

1 C $Header: /u/gcmpack/MITgcm/pkg/rbcs/rbcs_init_fixed.F,v 1.6 2011/05/14 19:52:12 jmc Exp $
2 C $Name: $
3
4 #include "RBCS_OPTIONS.h"
5
6 C !INTERFACE: ==========================================================
7 SUBROUTINE RBCS_INIT_FIXED( myThid )
8
9 C !DESCRIPTION:
10 C calls subroutines that initializes fixed variables for relaxed
11 c boundary conditions
12
13 C !USES: ===============================================================
14 IMPLICIT NONE
15 #include "SIZE.h"
16 #include "EEPARAMS.h"
17 #include "PARAMS.h"
18 #include "GRID.h"
19 #ifdef ALLOW_PTRACERS
20 #include "PTRACERS_SIZE.h"
21 #endif
22 #include "RBCS_SIZE.h"
23 #include "RBCS_PARAMS.h"
24 #include "RBCS_FIELDS.h"
25
26 C !INPUT PARAMETERS: ===================================================
27 C myThid :: my Thread Id number
28 INTEGER myThid
29 CEOP
30
31 #ifdef ALLOW_RBCS
32 C !LOCAL VARIABLES:
33 C i,j,k,bi,bj,irbc :: loop indices
34 C msgBuf :: Informational/error message buffer
35 INTEGER i,j,k,bi,bj
36 INTEGER irbc
37 #ifndef DISABLE_RBCS_MOM
38 CHARACTER*(MAX_LEN_MBUF) msgBuf
39 #endif
40
41 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
42
43 #ifndef DISABLE_RBCS_MOM
44 C Loop over tiles
45 DO bj = myByLo(myThid), myByHi(myThid)
46 DO bi = myBxLo(myThid), myBxHi(myThid)
47 DO k=1,Nr
48 DO j=1-Oly,sNy+OLy
49 DO i=1-Olx,sNx+Olx
50 RBC_maskU(i,j,k,bi,bj) = 0. _d 0
51 RBC_maskV(i,j,k,bi,bj) = 0. _d 0
52 ENDDO
53 ENDDO
54 ENDDO
55 ENDDO
56 ENDDO
57 #endif /* DISABLE_RBCS_MOM */
58
59 C Loop over mask index
60 DO irbc=1,maskLEN
61
62 C Loop over tiles
63 DO bj = myByLo(myThid), myByHi(myThid)
64 DO bi = myBxLo(myThid), myBxHi(myThid)
65
66 C Initialize arrays in common blocks :
67 DO k=1,Nr
68 DO j=1-Oly,sNy+OLy
69 DO i=1-Olx,sNx+Olx
70 RBC_mask(i,j,k,bi,bj,irbc) = 0. _d 0
71 ENDDO
72 ENDDO
73 ENDDO
74
75 C end bi,bj loops
76 ENDDO
77 ENDDO
78 C end of mask index loop
79 ENDDO
80
81 C read in mask for relaxing
82 DO irbc=1,maskLEN
83 IF ( relaxMaskFile(irbc).NE. ' ' ) THEN
84 CALL READ_FLD_XYZ_RS(relaxMaskFile(irbc),' ',
85 & RBC_mask(1-Olx,1-Oly,1,1,1,irbc), 0, myThid)
86 CALL EXCH_XYZ_RS( RBC_mask(1-Olx,1-Oly,1,1,1,irbc), myThid )
87 C-- Apply mask:
88 DO bj = myByLo(myThid), myByHi(myThid)
89 DO bi = myBxLo(myThid), myBxHi(myThid)
90 DO k=1,Nr
91 DO j=1-Oly,sNy+OLy
92 DO i=1-Olx,sNx+Olx
93 RBC_mask(i,j,k,bi,bj,irbc) = RBC_mask(i,j,k,bi,bj,irbc)
94 & * maskC(i,j,k,bi,bj)
95 ENDDO
96 ENDDO
97 ENDDO
98 ENDDO
99 ENDDO
100 IF ( debugLevel.GE.debLevC ) THEN
101 _BARRIER
102 _BEGIN_MASTER( myThid )
103 CALL PLOT_FIELD_XYRS( RBC_mask(1-Olx,1-Oly,1,1,1,irbc),
104 & 'Boundary Relaxing' ,1, myThid )
105 _END_MASTER(myThid)
106 ENDIF
107 ENDIF
108 ENDDO
109
110 #ifndef DISABLE_RBCS_MOM
111 IF ( useRBCuVel .AND. relaxMaskUFile.NE. ' ' ) THEN
112 CALL READ_FLD_XYZ_RS(relaxMaskUFile,' ',RBC_maskU, 0, myThid)
113 ELSEIF( useRBCuVel ) THEN
114 WRITE(msgBuf,'(2A)') '** WARNING ** RBCS_INIT_FIXED: ',
115 & 'no relaxMaskUFile => use Temp mask instead'
116 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
117 & SQUEEZE_RIGHT, myThid )
118 DO bj = myByLo(myThid), myByHi(myThid)
119 DO bi = myBxLo(myThid), myBxHi(myThid)
120 DO k=1,Nr
121 DO j=1-Oly,sNy+OLy
122 DO i=2-Olx,sNx+Olx
123 RBC_maskU(i,j,k,bi,bj) =
124 & ( RBC_mask(i-1,j,k,bi,bj,1)
125 & + RBC_mask( i ,j,k,bi,bj,1) )*0.5 _d 0
126 ENDDO
127 ENDDO
128 ENDDO
129 ENDDO
130 ENDDO
131 ENDIF
132 IF ( useRBCvVel .AND. relaxMaskVFile.NE. ' ' ) THEN
133 CALL READ_FLD_XYZ_RS(relaxMaskVFile,' ',RBC_maskV, 0, myThid)
134 ELSEIF( useRBCvVel ) THEN
135 WRITE(msgBuf,'(2A)') '** WARNING ** RBCS_INIT_FIXED: ',
136 & 'no relaxMaskVFile => use Temp mask instead'
137 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
138 & SQUEEZE_RIGHT, myThid )
139 DO bj = myByLo(myThid), myByHi(myThid)
140 DO bi = myBxLo(myThid), myBxHi(myThid)
141 DO k=1,Nr
142 DO j=2-Oly,sNy+OLy
143 DO i=1-Olx,sNx+Olx
144 RBC_maskV(i,j,k,bi,bj) =
145 & ( RBC_mask(i,j-1,k,bi,bj,1)
146 & + RBC_mask(i, j ,k,bi,bj,1) )*0.5 _d 0
147 ENDDO
148 ENDDO
149 ENDDO
150 ENDDO
151 ENDDO
152 ENDIF
153 IF( useRBCuVel .OR. useRBCvVel ) THEN
154 CALL EXCH_UV_XYZ_RS( RBC_maskU, RBC_maskV, .FALSE., myThid )
155 C-- Apply mask:
156 DO bj = myByLo(myThid), myByHi(myThid)
157 DO bi = myBxLo(myThid), myBxHi(myThid)
158 DO k=1,Nr
159 DO j=1-Oly,sNy+OLy
160 DO i=1-Olx,sNx+Olx
161 RBC_maskU(i,j,k,bi,bj) = RBC_maskU(i,j,k,bi,bj)
162 & * maskW(i,j,k,bi,bj)
163 RBC_maskV(i,j,k,bi,bj) = RBC_maskV(i,j,k,bi,bj)
164 & * maskS(i,j,k,bi,bj)
165 ENDDO
166 ENDDO
167 ENDDO
168 ENDDO
169 ENDDO
170 IF ( debugLevel.GE.debLevC ) THEN
171 _BARRIER
172 _BEGIN_MASTER( myThid )
173 CALL PLOT_FIELD_XYRS( RBC_maskU,
174 & 'Boundary Relaxing U' ,1, myThid )
175 CALL PLOT_FIELD_XYRS( RBC_maskV,
176 & 'Boundary Relaxing V' ,1, myThid )
177 _END_MASTER(myThid)
178 ENDIF
179 ENDIF
180 #endif /* DISABLE_RBCS_MOM */
181
182 #endif /* ALLOW_RBCS */
183
184 RETURN
185 END

  ViewVC Help
Powered by ViewVC 1.1.22