/[MITgcm]/MITgcm_contrib/sannino/OASIS_3.0_Coupler/pkg/oasis_grid.F
ViewVC logotype

Annotation of /MITgcm_contrib/sannino/OASIS_3.0_Coupler/pkg/oasis_grid.F

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


Revision 1.1 - (hide annotations) (download)
Thu Jul 20 21:08:16 2006 UTC (19 years ago) by sannino
Branch: MAIN
CVS Tags: HEAD
o Adding OASIS package
o Adding grid refinement package

1 sannino 1.1 C $Header: /u/gcmpack/MITgcm/pkg/oasis/oasis_check.F,v 1.0 2005/07/18 01:19:36 gianmaria sannino Exp $
2     C $Name: $
3     #include "OASIS_OPTIONS.h"
4    
5     SUBROUTINE OASIS_GRID( myThid )
6     C /==========================================================\
7     C | SUBROUTINE OASIS_GRID |
8     C | o Gather all the GRIDs and MASKs variable needed to OASIS|
9     C | |
10     C \==========================================================/
11     IMPLICIT NONE
12    
13     C === Global variables ===
14     #include "SIZE.h"
15     #include "EEPARAMS.h"
16     #include "EESUPPORT.h"
17     #include "PARAMS.h"
18     #include "GRID.h"
19    
20     C === Routine arguments ===
21     C myThid - Number of this instance of OASIS_GRID
22     INTEGER myThid
23    
24    
25     C !LOCAL VARIABLES:
26     C == Local variables ==
27     INTEGER iG, jG, bi, bj, I, J, K
28     c _RL XC_global (Nx,Ny)
29     c _RL YC_global (Nx,Ny)
30     c _RL XG_global (Nx,Ny)
31     c _RL YG_global (Nx,Ny)
32     c _RL maskC_global (Nx,Ny)
33     c _RL maskS_global (Nx,Ny)
34     c _RL maskW_global (Nx,Ny)
35     c _RL rA_global (Nx,Ny)
36     c _RL rAW_global (Nx,Ny)
37     c _RL rAS_global (Nx,Ny)
38     c _RL rAZ_global (Nx,Ny)
39    
40    
41     CALL GATHER_2D( XC_global, XC, myThid )
42     CALL GATHER_2D( YC_global, YC, myThid )
43    
44     CALL GATHER_2D( XG_global, XG, myThid )
45     CALL GATHER_2D( YG_global, YG, myThid )
46    
47    
48     cgm **** attenzione ai bi bj
49     cgm ***
50    
51     cgm *** La maskera deve essere invertita per OASIS
52    
53     DO bj=myByLo(myThid),myByHi(myThid)
54     DO bi=myBxLo(myThid),myBxHi(myThid)
55     DO k=1,Nr
56     DO j=1-OLy,sNy+OLy
57     DO i=1-OLx,sNx+OLx
58     IF (maskC(i,j,k,bi,bj).eq.1.) maskC(i,j,k,bi,bj) = 2.
59     IF (maskW(i,j,k,bi,bj).eq.1.) maskW(i,j,k,bi,bj) = 2.
60     IF (maskS(i,j,k,bi,bj).eq.1.) maskS(i,j,k,bi,bj) = 2.
61     IF (maskC(i,j,k,bi,bj).eq.0.) maskC(i,j,k,bi,bj) = 3.
62     IF (maskW(i,j,k,bi,bj).eq.0.) maskW(i,j,k,bi,bj) = 3.
63     IF (maskS(i,j,k,bi,bj).eq.0.) maskS(i,j,k,bi,bj) = 3.
64     ENDDO
65     ENDDO
66     ENDDO
67    
68     DO k=1,Nr
69     DO j=1-OLy,sNy+OLy
70     DO i=1-OLx,sNx+OLx
71     IF (maskC(i,j,k,bi,bj).eq.2.) maskC(i,j,k,bi,bj) = 0.
72     IF (maskW(i,j,k,bi,bj).eq.2.) maskW(i,j,k,bi,bj) = 0.
73     IF (maskS(i,j,k,bi,bj).eq.2.) maskS(i,j,k,bi,bj) = 0.
74     IF (maskC(i,j,k,bi,bj).eq.3.) maskC(i,j,k,bi,bj) = 1.
75     IF (maskW(i,j,k,bi,bj).eq.3.) maskW(i,j,k,bi,bj) = 1.
76     IF (maskS(i,j,k,bi,bj).eq.3.) maskS(i,j,k,bi,bj) = 1.
77    
78     ENDDO
79     ENDDO
80     ENDDO
81     ENDDO
82     ENDDO
83     cgm **********************************
84     CALL GATHER_2D( maskC_global, maskC(:,:,1,1,1), myThid )
85     CALL GATHER_2D( maskW_global, maskW(:,:,1,1,1), myThid )
86     CALL GATHER_2D( maskS_global, maskS(:,:,1,1,1), myThid )
87    
88    
89     DO bj=myByLo(myThid),myByHi(myThid)
90     DO bi=myBxLo(myThid),myBxHi(myThid)
91     DO k=1,Nr
92     DO j=1-OLy,sNy+OLy
93     DO i=1-OLx,sNx+OLx
94     IF (maskC(i,j,k,bi,bj).eq.1.) maskC(i,j,k,bi,bj) = 2.
95     IF (maskW(i,j,k,bi,bj).eq.1.) maskW(i,j,k,bi,bj) = 2.
96     IF (maskS(i,j,k,bi,bj).eq.1.) maskS(i,j,k,bi,bj) = 2.
97     IF (maskC(i,j,k,bi,bj).eq.0.) maskC(i,j,k,bi,bj) = 3.
98     IF (maskW(i,j,k,bi,bj).eq.0.) maskW(i,j,k,bi,bj) = 3.
99     IF (maskS(i,j,k,bi,bj).eq.0.) maskS(i,j,k,bi,bj) = 3.
100     ENDDO
101     ENDDO
102     ENDDO
103    
104     DO k=1,Nr
105     DO j=1-OLy,sNy+OLy
106     DO i=1-OLx,sNx+OLx
107     IF (maskC(i,j,k,bi,bj).eq.2.) maskC(i,j,k,bi,bj) = 0.
108     IF (maskW(i,j,k,bi,bj).eq.2.) maskW(i,j,k,bi,bj) = 0.
109     IF (maskS(i,j,k,bi,bj).eq.2.) maskS(i,j,k,bi,bj) = 0.
110     IF (maskC(i,j,k,bi,bj).eq.3.) maskC(i,j,k,bi,bj) = 1.
111     IF (maskW(i,j,k,bi,bj).eq.3.) maskW(i,j,k,bi,bj) = 1.
112     IF (maskS(i,j,k,bi,bj).eq.3.) maskS(i,j,k,bi,bj) = 1.
113    
114     ENDDO
115     ENDDO
116     ENDDO
117     ENDDO
118     ENDDO
119    
120    
121    
122    
123    
124     cgm
125     cgm
126    
127    
128     CALL GATHER_2D( rAS_global, rAS, myThid )
129     CALL GATHER_2D( rAW_global, rAW, myThid )
130     CALL GATHER_2D( rA_global, rA, myThid )
131     CALL GATHER_2D( rAz_global, rAz, myThid )
132    
133     IF( mpiMyId .EQ. 0 ) THEN
134     CALL OASIS_GRID_WRITE
135     ENDIF
136    
137     _BARRIER
138    
139    
140     return
141     end

  ViewVC Help
Powered by ViewVC 1.1.22