@@ -162,13 +162,16 @@ SUBROUTINE CPL_OASIS_GRID(LD_MASTER,ID_LCOMM)
162
162
! / | Last update : April-2016 |
163
163
! / +-----------------------------------+
164
164
! /
165
- ! / Jul-2013 : Origination. ( version 4.18 )
166
- ! / April-2016 : Add comments (J. Pianezze) ( version 5.07 )
167
- ! / Sept-2016 : Correct bug MPI (J. Pianezze) ( version 5.12 )
165
+ ! / Jul-2013 : Origination. ( version 4.18 )
166
+ ! / April-2016 : Add comments (J. Pianezze) ( version 5.07 )
167
+ ! / Sept-2016 : Correct bug MPI (J. Pianezze) ( version 5.12 )
168
+ ! / Jan-2025 : Use scrip format (J.M. Castillo) ( version x.xx )
168
169
! /
169
170
! 1. Purpose :
170
171
!
171
- ! Grid data file definition
172
+ ! Grid data file definition in the scrip format.
173
+ ! In this format, grid corners are specified in counterclockwise
174
+ ! order, being the first corner the one at the bottom left.
172
175
!
173
176
! 2. Method :
174
177
! 3. Parameters :
@@ -250,41 +253,30 @@ SUBROUTINE CPL_OASIS_GRID(LD_MASTER,ID_LCOMM)
250
253
NYS= 1
251
254
NYN= NY
252
255
!
253
- ! lat/lon
254
256
ALLOCATE ( LON(NNODES,1 ), LAT(NNODES,1 ) )
255
- I = 0
256
- DO IY = NYS, NYN
257
- DO IX = NXW, NXE
258
- I = I+1
259
- LON(I,1 )= XGRD(IY,IX)* FACTOR
260
- LAT(I,1 )= YGRD(IY,IX)* FACTOR
261
- END DO
262
- END DO
263
- !
264
- ! areas, corners
265
257
ALLOCATE ( AREA(NNODES,1 ), CORLON(NNODES,1 ,4 ), CORLAT(NNODES,1 ,4 ) )
266
- I = 0
267
- DO IY = NYS, NYN
268
- DO IX = NXW, NXE
269
- I = I+1
270
- CORLON(I,1 ,1 )= LON(I,1 )+ HPFAC(IY,IX)/ 2 .* FACTOR
271
- CORLON(I,1 ,2 )= LON(I,1 )- HPFAC(IY,IX)/ 2 .* FACTOR
272
- CORLON(I,1 ,3 )= LON(I,1 )- HPFAC(IY,IX)/ 2 .* FACTOR
273
- CORLON(I,1 ,4 )= LON(I,1 )+ HPFAC(IY,IX)/ 2 .* FACTOR
274
- CORLAT(I,1 ,1 )= LAT(I,1 )+ HQFAC(IY,IX)/ 2 .* FACTOR
275
- CORLAT(I,1 ,2 )= LAT(I,1 )+ HQFAC(IY,IX)/ 2 .* FACTOR
276
- CORLAT(I,1 ,3 )= LAT(I,1 )- HQFAC(IY,IX)/ 2 .* FACTOR
277
- CORLAT(I,1 ,4 )= LAT(I,1 )- HQFAC(IY,IX)/ 2 .* FACTOR
278
- AREA(I,1 )= HPFAC(IY,IX)* HQFAC(IY,IX)
279
- END DO
280
- END DO
281
- !
282
- ! Model grid mask
283
258
ALLOCATE ( MASK(NNODES,1 ) )
259
+ !
284
260
I = 0
285
261
DO IY = NYS, NYN
286
262
DO IX = NXW, NXE
287
263
I = I+1
264
+ ! lat/lon
265
+ LON(I,1 ) = XGRD(IY,IX)* FACTOR
266
+ LAT(I,1 ) = YGRD(IY,IX)* FACTOR
267
+ !
268
+ ! areas, corners
269
+ CORLON(I,1 ,1 ) = LON(I,1 )- HPFAC(IY,IX)/ 2 .* FACTOR
270
+ CORLON(I,1 ,2 ) = LON(I,1 )+ HPFAC(IY,IX)/ 2 .* FACTOR
271
+ CORLON(I,1 ,3 ) = CORLON(I,1 ,2 )
272
+ CORLON(I,1 ,4 ) = CORLON(I,1 ,1 )
273
+ CORLAT(I,1 ,1 ) = LAT(I,1 )- HQFAC(IY,IX)/ 2 .* FACTOR
274
+ CORLAT(I,1 ,2 ) = CORLAT(I,1 ,1 )
275
+ CORLAT(I,1 ,3 ) = LAT(I,1 )+ HQFAC(IY,IX)/ 2 .* FACTOR
276
+ CORLAT(I,1 ,4 ) = CORLAT(I,1 ,3 )
277
+ AREA(I,1 ) = HPFAC(IY,IX)* HQFAC(IY,IX)
278
+ !
279
+ ! Model grid mask
288
280
! Get the mask : 0 - sea / 1 - open boundary cells (the land is already excluded)
289
281
IF ((MAPSTA(IY,IX) .EQ. 1 )) THEN
290
282
MASK(I,1 ) = 0
@@ -317,13 +309,13 @@ SUBROUTINE CPL_OASIS_GRID(LD_MASTER,ID_LCOMM)
317
309
CORLON(I,1 ,3 ) = CORLON(I,1 ,2 )
318
310
CORLON(I,1 ,4 ) = CORLON(I,1 ,1 )
319
311
CORLAT(I,1 ,1 ) = Y0 + IJKCel(2 ,I)* DLAT
320
- CORLAT(I,1 ,2 )= CORLAT(I,1 ,1 )
312
+ CORLAT(I,1 ,2 ) = CORLAT(I,1 ,1 )
321
313
CORLAT(I,1 ,3 ) = Y0 + (IJKCel(2 ,I) + IJKCel(4 ,I))* DLAT
322
- CORLAT(I,1 ,4 )= CORLAT(I,1 ,3 )
314
+ CORLAT(I,1 ,4 ) = CORLAT(I,1 ,3 )
323
315
! areas
324
316
AREA(I,1 ) = 0.25 * IJKCEL(3 ,I)* DLON * IJKCEL(4 ,I)* DLAT
325
- ! Model grid mask
326
- MASK(I,1 ) = 1
317
+ ! Model grid mask: 0 - sea / 1 - open boundary cells (the land is already excluded)
318
+ MASK(I,1 ) = 0
327
319
ENDDO
328
320
#endif
329
321
!
0 commit comments