/[MITgcm]/MITgcm/pkg/ctrl/ctrl_getobcse.F
ViewVC logotype

Diff of /MITgcm/pkg/ctrl/ctrl_getobcse.F

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

revision 1.10 by mlosch, Mon Mar 14 17:08:00 2011 UTC revision 1.11 by mmazloff, Wed Apr 20 19:14:07 2011 UTC
# Line 75  cgg      _RL maskyz   (1-oly:sny+oly,nr, Line 75  cgg      _RL maskyz   (1-oly:sny+oly,nr,
75    
76        character*(80) fnameobcse        character*(80) fnameobcse
77    
78  cgg(  Variables for splitting barotropic/baroclinic vels.  #ifdef ALLOW_OBCS_CONTROL_MODES
79        _RL ubaro        integer nk,nz
80        _RL utop        _RL     tmpz (nr,nsx,nsy)
81  cgg)        _RL     stmp
82    #endif
83    
84  c     == external functions ==  c     == external functions ==
85    
# Line 98  c     == end of interface == Line 99  c     == end of interface ==
99        imax = snx+olx        imax = snx+olx
100        ip1  = 0        ip1  = 0
101    
 cgg(  Initialize variables for balancing volume flux.  
       ubaro = 0.d0  
       utop = 0.d0  
 cgg)  
   
102  c--   Now, read the control vector.  c--   Now, read the control vector.
103        doglobalread = .false.        doglobalread = .false.
104        ladinit      = .false.        ladinit      = .false.
# Line 130  c--   Get the counters, flags, and the i Line 126  c--   Get the counters, flags, and the i
126    
127          do bj = jtlo,jthi          do bj = jtlo,jthi
128           do bi = itlo,ithi           do bi = itlo,ithi
129    #ifdef ALLOW_OBCS_CONTROL_MODES
130              if (iobcs .gt. 2) then
131               do j = jmin,jmax
132                i = OB_Ie(j,bi,bj)
133    cih    Determine number of open vertical layers.
134                nz = 0
135                do k = 1,Nr
136                  if (iobcs .eq. 3) then
137                    nz = nz + maskW(i+ip1,j,k,bi,bj)
138                  else
139                    nz = nz + maskS(i,j,k,bi,bj)
140                  endif
141                end do
142    cih    Compute absolute velocities from the barotropic-baroclinic modes.
143                do k = 1,Nr
144                 if (k.le.nz) then
145                  stmp = 0.
146                  do nk = 1,nz
147                   stmp = stmp +
148         &         modesv(k,nk,nz)*tmpfldyz(j,nk,bi,bj)
149                  end do
150                   tmpz(k,bi,bj) = stmp
151                 else
152                  tmpz(k,bi,bj) = 0.
153                 end if
154                enddo
155                do k = 1,Nr
156                  if (iobcs .eq. 3) then
157                    tmpfldyz(j,k,bi,bj) = tmpz(k,bi,bj)
158         &            *recip_hFacW(i+ip1,j,k,bi,bj)
159                  else
160                    tmpfldyz(j,k,bi,bj) = tmpz(k,bi,bj)
161         &            *recip_hFacS(i,j,k,bi,bj)
162                  endif
163                end do
164               enddo
165              endif
166    #endif
167            do k = 1,nr            do k = 1,nr
168             do j = jmin,jmax             do j = jmin,jmax
169              xx_obcse1(j,k,bi,bj,iobcs)  = tmpfldyz (j,k,bi,bj)              xx_obcse1(j,k,bi,bj,iobcs)  = tmpfldyz (j,k,bi,bj)
# Line 160  cgg   & Line 194  cgg   &
194    
195          do bj = jtlo,jthi          do bj = jtlo,jthi
196           do bi = itlo,ithi           do bi = itlo,ithi
197    #ifdef ALLOW_OBCS_CONTROL_MODES
198              if (iobcs .gt. 2) then
199               do j = jmin,jmax
200                i = OB_Ie(j,bi,bj)
201    cih    Determine number of open vertical layers.
202                nz = 0
203                do k = 1,Nr
204                  if (iobcs .eq. 3) then
205                    nz = nz + maskW(i+ip1,j,k,bi,bj)
206                  else
207                    nz = nz + maskS(i,j,k,bi,bj)
208                  endif
209                end do
210    cih    Compute absolute velocities from the barotropic-baroclinic modes.
211                do k = 1,Nr
212                 if (k.le.nz) then
213                  stmp = 0.
214                  do nk = 1,nz
215                   stmp = stmp +
216         &         modesv(k,nk,nz)*tmpfldyz(j,nk,bi,bj)
217                  end do
218                   tmpz(k,bi,bj) = stmp
219                 else
220                  tmpz(k,bi,bj) = 0.
221                 endif
222                enddo
223                do k = 1,Nr
224                  if (iobcs .eq. 3) then
225                    tmpfldyz(j,k,bi,bj) = tmpz(k,bi,bj)
226         &            *recip_hFacW(i+ip1,j,k,bi,bj)
227                  else
228                    tmpfldyz(j,k,bi,bj) = tmpz(k,bi,bj)
229         &            *recip_hFacS(i,j,k,bi,bj)
230                  endif
231                end do
232               enddo
233              endif
234    #endif
235            do k = 1,nr            do k = 1,nr
236             do j = jmin,jmax             do j = jmin,jmax
237              xx_obcse1 (j,k,bi,bj,iobcs) = tmpfldyz (j,k,bi,bj)              xx_obcse1 (j,k,bi,bj,iobcs) = tmpfldyz (j,k,bi,bj)

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22