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

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

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


Revision 1.4 - (show annotations) (download)
Wed Jan 30 04:22:31 2002 UTC (22 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint46n_post, checkpoint51k_post, checkpoint47e_post, checkpoint57m_post, checkpoint52l_pre, checkpoint44e_post, hrcube4, hrcube5, checkpoint46l_post, checkpoint57g_pre, checkpoint46g_pre, checkpoint47c_post, checkpoint50c_post, checkpoint57s_post, checkpoint57b_post, checkpoint46f_post, checkpoint52d_pre, checkpoint57g_post, checkpoint48e_post, checkpoint56b_post, checkpoint50c_pre, checkpoint57y_post, checkpoint44f_post, checkpoint46b_post, checkpoint52j_pre, checkpoint51o_pre, checkpoint54d_post, checkpoint54e_post, checkpoint51l_post, checkpoint48i_post, checkpoint57r_post, checkpoint46l_pre, checkpoint57d_post, checkpoint57i_post, checkpoint52l_post, checkpoint52k_post, chkpt44d_post, checkpoint55, checkpoint54, checkpoint57, checkpoint56, checkpoint51, checkpoint50, checkpoint53, checkpoint52, checkpoint50d_post, checkpoint52f_post, checkpoint57n_post, checkpoint50b_pre, checkpoint44e_pre, checkpoint54f_post, checkpoint51f_post, checkpoint48b_post, checkpoint51d_post, checkpoint48c_pre, checkpoint47d_pre, checkpoint51t_post, checkpoint51n_post, checkpoint55i_post, checkpoint57l_post, checkpoint52i_pre, hrcube_1, hrcube_2, hrcube_3, checkpoint51s_post, checkpoint47a_post, checkpoint57t_post, checkpoint55c_post, checkpoint48d_pre, checkpoint51j_post, checkpoint47i_post, checkpoint52e_pre, checkpoint57v_post, checkpoint57f_post, checkpoint52e_post, checkpoint51n_pre, checkpoint47d_post, checkpoint53d_post, checkpoint46d_pre, checkpoint57a_post, checkpoint48d_post, checkpoint57h_pre, checkpoint48f_post, checkpoint45d_post, checkpoint52b_pre, checkpoint54b_post, checkpoint46j_pre, checkpoint57h_post, checkpoint51l_pre, checkpoint52m_post, checkpoint57y_pre, chkpt44a_post, checkpoint55g_post, checkpoint44h_pre, checkpoint48h_post, checkpoint51q_post, checkpoint51b_pre, checkpoint46a_post, checkpoint47g_post, checkpoint52b_post, checkpoint52c_post, checkpoint46j_post, checkpoint51h_pre, checkpoint46k_post, chkpt44c_pre, checkpoint48a_post, checkpoint45a_post, checkpoint57c_post, checkpoint50f_post, checkpoint50a_post, checkpoint50f_pre, checkpoint52f_pre, checkpoint55d_post, checkpoint47j_post, checkpoint54a_pre, checkpoint53c_post, checkpoint55d_pre, checkpoint57c_pre, checkpoint55j_post, branch-exfmods-tag, checkpoint44g_post, branchpoint-genmake2, checkpoint54a_post, checkpoint46e_pre, checkpoint55h_post, checkpoint51r_post, checkpoint48c_post, checkpoint45b_post, checkpoint46b_pre, checkpoint51i_post, checkpoint57e_post, release1_final_v1, checkpoint55b_post, checkpoint51b_post, checkpoint51c_post, checkpoint46c_pre, checkpoint53a_post, checkpoint46, checkpoint47b_post, checkpoint44b_post, checkpoint55f_post, checkpoint46h_pre, checkpoint52d_post, checkpoint53g_post, checkpoint46m_post, checkpoint57p_post, checkpint57u_post, checkpoint46a_pre, checkpoint50g_post, checkpoint45c_post, checkpoint57q_post, checkpoint44h_post, eckpoint57e_pre, checkpoint46g_post, checkpoint52a_pre, checkpoint50h_post, checkpoint52i_post, checkpoint50e_pre, checkpoint50i_post, checkpoint51i_pre, checkpoint52h_pre, checkpoint56a_post, checkpoint53f_post, checkpoint57h_done, checkpoint52j_post, checkpoint47f_post, checkpoint50e_post, chkpt44a_pre, checkpoint46i_post, checkpoint57j_post, checkpoint57f_pre, checkpoint46c_post, branch-netcdf, checkpoint50d_pre, checkpoint52n_post, checkpoint53b_pre, checkpoint46e_post, checkpoint56c_post, checkpoint51e_post, checkpoint44b_pre, checkpoint57a_pre, checkpoint55a_post, checkpoint47, checkpoint45, checkpoint48, checkpoint49, checkpoint57o_post, checkpoint46h_post, checkpoint51o_post, checkpoint57k_post, checkpoint51f_pre, chkpt44c_post, checkpoint48g_post, checkpoint53b_post, checkpoint47h_post, checkpoint52a_post, checkpoint57w_post, checkpoint44f_pre, checkpoint51g_post, ecco_c52_e35, checkpoint57x_post, checkpoint46d_post, checkpoint50b_post, checkpoint51m_post, checkpoint53d_pre, checkpoint55e_post, checkpoint54c_post, checkpoint51a_post, checkpoint51p_post, checkpoint51u_post
Branch point for: branch-exfmods-curt, release1_final, branch-genmake2, branch-nonh, tg2-branch, netcdf-sm0, checkpoint51n_branch
Changes since 1.3: +45 -1 lines
NonLin_FreeSurf implemented with OBC (but not yet radiative OBC).

1 C $Header: /u/gcmpack/models/MITgcmUV/pkg/obcs/obcs_init_fixed.F,v 1.3 2001/05/14 21:36:45 heimbach Exp $
2 C $Name: $
3
4 #include "OBCS_OPTIONS.h"
5
6 SUBROUTINE OBCS_INIT_FIXED( myThid )
7 C /==========================================================\
8 C | SUBROUTINE OBCS_INIT_FIXED |
9 C | o Initialise OBCs fixed arrays |
10 C |==========================================================|
11 C | |
12 C \==========================================================/
13 IMPLICIT NONE
14
15 C === Global variables ===
16 #include "SIZE.h"
17 #include "EEPARAMS.h"
18 #include "PARAMS.h"
19 #include "OBCS.h"
20 #ifdef NONLIN_FRSURF
21 #include "GRID.h"
22 #include "SURFACE.h"
23 #endif
24
25 C == Routine arguments ==
26 C myThid - Number of this instance of INI_DEPTHS
27 INTEGER myThid
28
29 #ifdef ALLOW_OBCS
30
31 C == Local variables ==
32 INTEGER iG, jG, iGm, jGm
33 INTEGER bi, bj
34 INTEGER I, J, K
35
36 DO bj = myByLo(myThid), myByHi(myThid)
37 DO bi = myBxLo(myThid), myBxHi(myThid)
38
39 DO I=1-Olx,sNx+Olx
40 OB_Jn(I,bi,bj)=0
41 OB_Js(I,bi,bj)=0
42 ENDDO
43
44 DO J=1-Oly,sNy+Oly
45 OB_Ie(J,bi,bj)=0
46 OB_Iw(J,bi,bj)=0
47 ENDDO
48
49 DO J=1-Oly,sNy+Oly
50 C convert from local y index J to global y index jG
51 jG = myYGlobalLo-1+(bj-1)*sNy+J
52 C use periodicity to deal with out of range points caused by the overlaps.
53 C they will be excluded by the mask in any case, but this saves array
54 C out-of-bounds errors here.
55 jGm = 1+mod( jG-1+Ny , Ny )
56 C loop over local x index I
57 DO I=1,sNx
58 iG = myXGlobalLo-1+(bi-1)*sNx+I
59 iGm = 1+mod( iG-1+Nx , Nx )
60 C OB_Ieast(jGm) allows for the eastern boundary to be at variable x locations
61 IF (iG.EQ.OB_Ieast(jGm)) OB_Ie(J,bi,bj)=I
62 IF (iG.EQ.OB_Iwest(jGm)) OB_Iw(J,bi,bj)=I
63 ENDDO
64 ENDDO
65 DO J=1,sNy
66 jG = myYGlobalLo-1+(bj-1)*sNy+J
67 jGm = 1+mod( jG-1+Ny , Ny )
68 DO I=1-Olx,sNx+Olx
69 iG = myXGlobalLo-1+(bi-1)*sNx+I
70 iGm = 1+mod( iG-1+Nx , Nx )
71 C OB_Jnorth(iGm) allows for the northern boundary to be at variable y locations
72 IF (jG.EQ.OB_Jnorth(iGm)) OB_Jn(I,bi,bj)=J
73 IF (jG.EQ.OB_Jsouth(iGm)) OB_Js(I,bi,bj)=J
74 ENDDO
75 ENDDO
76
77 #ifdef NONLIN_FRSURF
78
79 C- save the initial hFacS at the N & S boundaries :
80 DO i=1-Olx,sNx+Olx
81 OBNhFac0(i,bi,bj)=0.
82 OBShFac0(i,bi,bj)=0.
83 C Northern boundary
84 IF ( OB_Jn(i,bi,bj).NE.0 ) THEN
85 j = OB_Jn(i,bi,bj)
86 k = ksurfS(i,j,bi,bj)
87 IF (k.LE.Nr) OBNhFac0(i,bi,bj)=hFacS(i,j,k,bi,bj)
88 ENDIF
89 C Southern boundary
90 IF ( OB_Js(i,bi,bj).NE.0 ) THEN
91 j = OB_Js(i,bi,bj)+1
92 k = ksurfS(i,j,bi,bj)
93 IF (k.LE.Nr) OBShFac0(i,bi,bj)=hFacS(i,j,k,bi,bj)
94 ENDIF
95 ENDDO
96
97 C- save the initial hFacW at the E & W boundaries :
98 DO j=1-Oly,sNy+Oly
99 OBEhFac0(j,bi,bj)=0.
100 OBWhFac0(j,bi,bj)=0.
101 C Eastern boundary
102 IF ( OB_Ie(j,bi,bj).NE.0 ) THEN
103 i = OB_Ie(j,bi,bj)
104 k = ksurfW(i,j,bi,bj)
105 IF (k.LE.Nr) OBEhFac0(j,bi,bj)=hFacW(i,j,k,bi,bj)
106 ENDIF
107 C Western boundary
108 IF ( OB_Iw(j,bi,bj).NE.0 ) THEN
109 i = OB_Iw(j,bi,bj)+1
110 k = ksurfW(i,j,bi,bj)
111 IF (k.LE.Nr) OBWhFac0(j,bi,bj)=hFacW(i,j,k,bi,bj)
112 ENDIF
113 ENDDO
114
115 #endif /* NONLIN_FRSURF */
116
117 ENDDO
118 ENDDO
119
120 #endif /* ALLOW_OBCS */
121 RETURN
122 END

  ViewVC Help
Powered by ViewVC 1.1.22