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

Contents of /MITgcm/pkg/obcs/obcs_apply_eta.F

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


Revision 1.7 - (show annotations) (download)
Tue May 24 14:31:14 2011 UTC (12 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62z, checkpoint62y, checkpoint63, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c
Changes since 1.6: +3 -2 lines
split header file "OBCS.h" into 4 separated files:
  OBCS_PARAMS.h, OBCS_GRID.h, OBCS_FIELDS.h & OBCS_SEAICE.h

1 C $Header: /u/gcmpack/MITgcm/pkg/obcs/obcs_apply_eta.F,v 1.6 2011/05/20 21:45:53 jmc Exp $
2 C $Name: $
3
4 #include "OBCS_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: OBCS_APPLY_ETA
8 C !INTERFACE:
9 SUBROUTINE OBCS_APPLY_ETA( bi, bj,
10 U etaFld,
11 I myThid )
12
13 C !DESCRIPTION:
14 C *==========================================================*
15 C | S/R OBCS_APPLY_ETA
16 C | Apply surface position anomaly (Eta) OB values
17 C | to corresponding field array
18 C *==========================================================*
19
20 C !USES:
21 IMPLICIT NONE
22 C == Global variables ==
23 #include "SIZE.h"
24 #include "EEPARAMS.h"
25 #include "PARAMS.h"
26 #include "GRID.h"
27 #include "SURFACE.h"
28 #include "OBCS_GRID.h"
29 #include "OBCS_FIELDS.h"
30
31 C !INPUT/OUTPUT PARAMETERS:
32 C == Routine Arguments ==
33 C bi, bj :: indices of current tile
34 C etaFld :: surface r-position anomaly field
35 C myThid :: my Thread Id number
36 INTEGER bi, bj
37 _RL etaFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
38 INTEGER myThid
39 CEOP
40
41 #ifdef NONLIN_FRSURF
42 C !LOCAL VARIABLES:
43 C == Local variables ==
44 INTEGER i, j
45 INTEGER Iobc, Jobc
46
47 c IF ( nonlinFreeSurf.GT.0 ) THEN
48
49 C Set model variable to OB values on North/South Boundaries
50 IF ( tileHasOBN(bi,bj) ) THEN
51 C Northern boundary
52 DO i=1-Olx,sNx+Olx
53 Jobc = OB_Jn(i,bi,bj)
54 IF ( Jobc.NE.0 ) THEN
55 IF ( kSurfS(i,Jobc,bi,bj).LE.Nr )
56 & etaFld(i,Jobc,bi,bj) = OBNeta(i,bi,bj)
57 ENDIF
58 ENDDO
59 ENDIF
60 IF ( tileHasOBS(bi,bj) ) THEN
61 C Southern boundary
62 DO i=1-Olx,sNx+Olx
63 Jobc = OB_Js(i,bi,bj)
64 IF ( Jobc.NE.0 ) THEN
65 IF ( kSurfS(i,Jobc+1,bi,bj).LE.Nr )
66 & etaFld(i,Jobc,bi,bj) = OBSeta(i,bi,bj)
67 ENDIF
68 ENDDO
69 ENDIF
70
71 C Set model variables to OB values on East/West Boundaries
72 IF ( tileHasOBE(bi,bj) ) THEN
73 C Eastern boundary
74 DO j=1-Oly,sNy+Oly
75 Iobc = OB_Ie(j,bi,bj)
76 IF ( Iobc.NE.0 ) THEN
77 IF ( kSurfW(Iobc,j,bi,bj).LE.Nr )
78 & etaFld(Iobc,j,bi,bj) = OBEeta(j,bi,bj)
79 ENDIF
80 ENDDO
81 ENDIF
82 IF ( tileHasOBW(bi,bj) ) THEN
83 C Western boundary
84 DO j=1-Oly,sNy+Oly
85 Iobc = OB_Iw(j,bi,bj)
86 IF ( Iobc.NE.0 ) THEN
87 IF ( kSurfW(Iobc+1,j,bi,bj).LE.Nr )
88 & etaFld(Iobc,j,bi,bj) = OBWeta(j,bi,bj)
89 ENDIF
90 ENDDO
91 ENDIF
92
93 c ENDIF
94 #endif /* NONLIN_FRSURF */
95
96 RETURN
97 END

  ViewVC Help
Powered by ViewVC 1.1.22