/[MITgcm]/MITgcm/pkg/obcs/orlanski_west.F
ViewVC logotype

Diff of /MITgcm/pkg/obcs/orlanski_west.F

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

revision 1.9 by jmc, Thu Sep 17 16:30:07 2009 UTC revision 1.10 by jmc, Thu Oct 1 21:04:50 2009 UTC
# Line 67  C              wave to travel a distance Line 67  C              wave to travel a distance
67  C              near which d(phi)/dx is small.  C              near which d(phi)/dx is small.
68  C  C
69  C JBG 3/24/03: Fixed phase speed at western boundary (as suggested by  C JBG 3/24/03: Fixed phase speed at western boundary (as suggested by
70  C              Dale Durran's MWR paper). Fixed value (in m/s) is  C              Dale Durran's MWR paper). Fixed value (in m/s) is
71  C              passed in as variable CFIX in data.obcs.  C              passed in as variable CFIX in data.obcs.
72  C  C
73  C JBG 4/10/03: allow choice of Orlanski or fixed wavespeed (by means of new  C JBG 4/10/03: allow choice of Orlanski or fixed wavespeed (by means of new
# Line 121  C              uVel (to be applied at I_ Line 121  C              uVel (to be applied at I_
121                    CL=CMAX                    CL=CMAX
122                 ENDIF                 ENDIF
123                 IF (useFixedCWest) THEN                 IF (useFixedCWest) THEN
124  C                Fixed phase speed (ignoring all of that painstakingly  C                Fixed phase speed (ignoring all of that painstakingly
125  C                 saved data...)  C                saved data...)
126                   CVEL_UW(J,K,bi,bj) = CFIX                   CVEL_UW(J,K,bi,bj) = CFIX
127                 ELSE                 ELSE
128                   CVEL_UW(J,K,bi,bj) = f1*(CL*dxF(I_obc+2,J,bi,bj)/deltaT                   CVEL_UW(J,K,bi,bj) = f1*(CL*dxF(I_obc+2,J,bi,bj)/deltaT
# Line 147  C              vVel Line 147  C              vVel
147                    CL=CMAX                    CL=CMAX
148                 ENDIF                 ENDIF
149                 IF (useFixedCWest) THEN                 IF (useFixedCWest) THEN
150  C                Fixed phase speed (ignoring all of that painstakingly  C                Fixed phase speed (ignoring all of that painstakingly
151  C                 saved data...)  C                saved data...)
152                   CVEL_VW(J,K,bi,bj) = CFIX                   CVEL_VW(J,K,bi,bj) = CFIX
153                 ELSE                 ELSE
154                   CVEL_VW(J,K,bi,bj) = f1*(CL*dxV(I_obc+2,J,bi,bj)/deltaT                   CVEL_VW(J,K,bi,bj) = f1*(CL*dxV(I_obc+2,J,bi,bj)/deltaT
# Line 173  C              Temperature Line 173  C              Temperature
173                    CL=CMAX                    CL=CMAX
174                 ENDIF                 ENDIF
175                 IF (useFixedCWest) THEN                 IF (useFixedCWest) THEN
176  C                Fixed phase speed (ignoring all of that painstakingly  C                Fixed phase speed (ignoring all of that painstakingly
177  C                 saved data...)  C                saved data...)
178                   CVEL_TW(J,K,bi,bj) = CFIX                   CVEL_TW(J,K,bi,bj) = CFIX
179                 ELSE                 ELSE
180                   CVEL_TW(J,K,bi,bj) = f1*(CL*dxC(I_obc+2,J,bi,bj)/deltaT                   CVEL_TW(J,K,bi,bj) = f1*(CL*dxC(I_obc+2,J,bi,bj)/deltaT
# Line 199  C              Salinity Line 199  C              Salinity
199                    CL=CMAX                    CL=CMAX
200                 ENDIF                 ENDIF
201                 IF (useFixedCWest) THEN                 IF (useFixedCWest) THEN
202  C                Fixed phase speed (ignoring all of that painstakingly  C                Fixed phase speed (ignoring all of that painstakingly
203  C                 saved data...)  C                saved data...)
204                   CVEL_SW(J,K,bi,bj) = CFIX                   CVEL_SW(J,K,bi,bj) = CFIX
205                 ELSE                 ELSE
206                   CVEL_SW(J,K,bi,bj) = f1*(CL*dxC(I_obc+2,J,bi,bj)/deltaT                   CVEL_SW(J,K,bi,bj) = f1*(CL*dxC(I_obc+2,J,bi,bj)/deltaT
# Line 211  C              update OBC to next timest Line 211  C              update OBC to next timest
211       &           CVEL_SW(J,K,bi,bj)*(deltaT*recip_dxC(I_obc+1,J,bi,bj))*       &           CVEL_SW(J,K,bi,bj)*(deltaT*recip_dxC(I_obc+1,J,bi,bj))*
212       &           (ab1*(salt(I_obc+1,J,K,bi,bj)-salt(I_obc,J,K,bi,bj))+       &           (ab1*(salt(I_obc+1,J,K,bi,bj)-salt(I_obc,J,K,bi,bj))+
213       &           ab2*(SW_STORE_1(J,K,bi,bj)-SW_STORE_4(J,K,bi,bj)))       &           ab2*(SW_STORE_1(J,K,bi,bj)-SW_STORE_4(J,K,bi,bj)))
 C              wVel  
214  #ifdef ALLOW_NONHYDROSTATIC  #ifdef ALLOW_NONHYDROSTATIC
215                    IF ((WW_STORE_2(J,K,bi,bj).eq.0.).and.               IF ( nonHydrostatic ) THEN
216       &               (WW_STORE_3(J,K,bi,bj).eq.0.)) THEN  C              wVel
217                       CL=0.                 IF ((WW_STORE_2(J,K,bi,bj).eq.0.).and.
218                    ELSE       &            (WW_STORE_3(J,K,bi,bj).eq.0.)) THEN
219                      CL=(wVel(I_obc+1,J,K,bi,bj)-WW_STORE_1(J,K,bi,bj))/                    CL=0.
220       &            (ab1*WW_STORE_2(J,K,bi,bj)+ab2*WW_STORE_3(J,K,bi,bj))                 ELSE
221                    ENDIF                    CL=(wVel(I_obc+1,J,K,bi,bj)-WW_STORE_1(J,K,bi,bj))/
222                    IF (CL.lt.0.) THEN       &          (ab1*WW_STORE_2(J,K,bi,bj)+ab2*WW_STORE_3(J,K,bi,bj))
223                       CL=0.                 ENDIF
224                    ELSEIF (CL.gt.CMAX) THEN                 IF (CL.lt.0.) THEN
225                       CL=CMAX                    CL=0.
226                    ENDIF                 ELSEIF (CL.gt.CMAX) THEN
227                      CL=CMAX
228                   ENDIF
229                 IF (useFixedCWest) THEN                 IF (useFixedCWest) THEN
230  C                Fixed phase speed (ignoring all of that painstakingly  C                Fixed phase speed (ignoring all of that painstakingly
231  C                 saved data...)  C                saved data...)
232                   CVEL_WW(J,K,bi,bj) = CFIX                   CVEL_WW(J,K,bi,bj) = CFIX
233                 ELSE                 ELSE
234                   CVEL_WW(J,K,bi,bj)=f1*(CL*dxC(I_obc+2,J,bi,bj)/deltaT)                   CVEL_WW(J,K,bi,bj)=f1*(CL*dxC(I_obc+2,J,bi,bj)/deltaT)
235       &                   + f2*CVEL_WW(J,K,bi,bj)       &                   + f2*CVEL_WW(J,K,bi,bj)
236                 ENDIF                 ENDIF
237  C                 update OBC to next timestep  C              update OBC to next timestep
238                    OBWw(J,K,bi,bj)=wVel(I_obc,J,K,bi,bj)+                 OBWw(J,K,bi,bj)=wVel(I_obc,J,K,bi,bj)+
239       &           CVEL_WW(J,K,bi,bj)*(deltaT*recip_dxC(I_obc+1,J,bi,bj))*       &           CVEL_WW(J,K,bi,bj)*(deltaT*recip_dxC(I_obc+1,J,bi,bj))*
240       &            (ab1*(wVel(I_obc+1,J,K,bi,bj)-wVel(I_obc,J,K,bi,bj))+       &            (ab1*(wVel(I_obc+1,J,K,bi,bj)-wVel(I_obc,J,K,bi,bj))+
241       &            ab2*(WW_STORE_1(J,K,bi,bj)-WW_STORE_4(J,K,bi,bj)))       &            ab2*(WW_STORE_1(J,K,bi,bj)-WW_STORE_4(J,K,bi,bj)))
242  #endif               ENDIF
243    #endif /* ALLOW_NONHYDROSTATIC */
244  C              update/save storage arrays  C              update/save storage arrays
245  C              uVel  C              uVel
246  C              copy t-1 to t-2 array  C              copy t-1 to t-2 array
# Line 266  C              copy (current time) t to Line 268  C              copy (current time) t to
268                 TW_STORE_4(J,K,bi,bj)=theta(I_obc,J,K,bi,bj)                 TW_STORE_4(J,K,bi,bj)=theta(I_obc,J,K,bi,bj)
269  c              Salinity  c              Salinity
270  C              copy t-1 to t-2 array  C              copy t-1 to t-2 array
271                 SW_STORE_3(J,K,bi,bj)=SW_STORE_2(J,K,bi,bj)                 SW_STORE_3(J,K,bi,bj)=SW_STORE_2(J,K,bi,bj)
272  C              copy (current time) t to t-1 arrays  C              copy (current time) t to t-1 arrays
273                 SW_STORE_2(J,K,bi,bj)=salt(I_obc+2,J,K,bi,bj) -                 SW_STORE_2(J,K,bi,bj)=salt(I_obc+2,J,K,bi,bj) -
274       &         salt(I_obc+1,J,K,bi,bj)       &         salt(I_obc+1,J,K,bi,bj)
275                 SW_STORE_1(J,K,bi,bj)=salt(I_obc+1,J,K,bi,bj)                 SW_STORE_1(J,K,bi,bj)=salt(I_obc+1,J,K,bi,bj)
276                 SW_STORE_4(J,K,bi,bj)=salt(I_obc,J,K,bi,bj)                 SW_STORE_4(J,K,bi,bj)=salt(I_obc,J,K,bi,bj)
 C              wVel  
277  #ifdef ALLOW_NONHYDROSTATIC  #ifdef ALLOW_NONHYDROSTATIC
278                 IF ( nonHydrostatic ) THEN
279    C              wVel
280  C              copy t-1 to t-2 array  C              copy t-1 to t-2 array
281                 WW_STORE_3(J,K,bi,bj)=WW_STORE_2(J,K,bi,bj)                 WW_STORE_3(J,K,bi,bj)=WW_STORE_2(J,K,bi,bj)
282  C              copy (current time) t to t-1 arrays  C              copy (current time) t to t-1 arrays
# Line 281  C              copy (current time) t to Line 284  C              copy (current time) t to
284       &         wVel(I_obc+1,J,K,bi,bj)       &         wVel(I_obc+1,J,K,bi,bj)
285                 WW_STORE_1(J,K,bi,bj)=wVel(I_obc+1,J,K,bi,bj)                 WW_STORE_1(J,K,bi,bj)=wVel(I_obc+1,J,K,bi,bj)
286                 WW_STORE_4(J,K,bi,bj)=wVel(I_obc,J,K,bi,bj)                 WW_STORE_4(J,K,bi,bj)=wVel(I_obc,J,K,bi,bj)
287  #endif               ENDIF
288    #endif /* ALLOW_NONHYDROSTATIC */
289              ENDIF              ENDIF
290           ENDDO           ENDDO
291        ENDDO        ENDDO

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

  ViewVC Help
Powered by ViewVC 1.1.22