@@ -368,6 +368,7 @@ SUBROUTINE CPL_OASIS_DEFINE(NDSO,RCV_STR,SND_STR)
368
368
! / (R. Baraille & J. Pianezze)
369
369
! / April-2016 : Add comments (J. Pianezze) ( version 5.07 )
370
370
! / 08-Jun-2018 : use INIT_GET_ISEA ( version 6.04 )
371
+ ! / Feb-2025 : OASIS points partition (J.M. Castillo) ( version X.XX )
371
372
! /
372
373
! 1. Purpose :
373
374
!
@@ -419,58 +420,41 @@ SUBROUTINE CPL_OASIS_DEFINE(NDSO,RCV_STR,SND_STR)
419
420
! / ------------------------------------------------------------------- /
420
421
! / Local parameters
421
422
! /
422
- INTEGER :: IB_I,I
423
+ INTEGER :: IB_I
423
424
INTEGER :: IL_PART_ID ! PartitionID
424
425
INTEGER , ALLOCATABLE , DIMENSION (:) :: ILA_PARAL ! Description of the local partition in the global index space
425
426
INTEGER , DIMENSION (4 ) :: ILA_SHAPE ! Vector giving the min & max index for each dim of the fields
426
427
INTEGER , DIMENSION (2 ) :: ILA_VAR_NODIMS ! rank of fields & number of bundles (1 with OASIS3-MCT)
427
428
INTEGER :: ISEA, JSEA, IX, IY
428
- INTEGER :: NHXW, NHXE, NHYS, NHYN ! size of the halo at the western, eastern, southern, northern boundaries
429
- LOGICAL :: LL_MPI_FILE ! to check if there an mpi.txt file for domain decompasition
430
429
! /
431
430
! / ------------------------------------------------------------------- /
432
431
! / Executable part
433
432
! /
434
433
!
434
+ ALLOCATE (ILA_PARAL(2 + NSEAL))
435
+ !
436
+ ! * Define the partition : OASIS POINTS partition
437
+ ILA_PARAL(1 ) = 4
438
+ !
439
+ ! * total number of segments of the global domain
440
+ ILA_PARAL(2 ) = NSEAL
441
+ !
435
442
IF (GTYPE .EQ. RLGTYPE .OR. GTYPE .EQ. CLGTYPE) THEN
436
443
!
437
444
! 1.1. regular and curvilinear grids
438
445
! ----------------------------------
439
- NHXW = 1 ; NHXE = NX ; NHYS = 1 ; NHYN = NY
440
- NHXW = NHXW - 1
441
- NHXE = NX - NHXE
442
- NHYS = NHYS - 1
443
- NHYN = NY - NHYN
444
- !
445
- ALLOCATE (ILA_PARAL(2 + NSEAL* 2 ))
446
- !
447
- ! * Define the partition : OASIS ORANGE partition
448
- ILA_PARAL(1 ) = 3
449
- !
450
- ! * total number of segments of the global domain
451
- ILA_PARAL(2 ) = NSEAL
452
- !
453
446
DO JSEA= 1 , NSEAL
454
447
CALL INIT_GET_ISEA(ISEA,JSEA)
455
448
456
449
IX = MAPSF(ISEA,1 )
457
450
IY = MAPSF(ISEA,2 )
458
- ILA_PARAL(JSEA* 2+1 ) = (IY - NHYN - 1 )* (NX - NHXE - NHXW) + (IX - NHXW - 1 )
459
- ILA_PARAL(JSEA* 2+2 ) = 1
451
+ ILA_PARAL(JSEA+2 ) = (IY - 1 )* NX + IX
460
452
END DO
461
453
#ifdef W3_SMC
462
454
ELSE IF ( GTYPE .EQ. SMCTYPE ) THEN
463
455
!
464
456
! 1.2. SMC grids
465
457
! ----------------------------------
466
- ALLOCATE (ILA_PARAL(2 + NSEAL))
467
- !
468
- ! * Define the partition : OASIS POINTS partition
469
- ILA_PARAL(1 ) = 4
470
- !
471
- ! * total number of segments of the global domain
472
- ILA_PARAL(2 ) = NSEAL
473
- !
474
458
DO JSEA= 1 , NSEAL
475
459
ILA_PARAL(JSEA+2 ) = IAPROC + (JSEA-1 )* NAPROC
476
460
ENDDO
@@ -484,8 +468,7 @@ SUBROUTINE CPL_OASIS_DEFINE(NDSO,RCV_STR,SND_STR)
484
468
STOP
485
469
!
486
470
DO JSEA= 1 ,NSEAL
487
- ILA_PARAL(JSEA* 2+1 ) = (IAPROC-1 ) + (JSEA-1 )* NAPROC
488
- ILA_PARAL(JSEA* 2+2 ) = 1
471
+ ILA_PARAL(JSEA+2 ) = IAPROC + (JSEA-1 )* NAPROC
489
472
END DO
490
473
!
491
474
ENDIF
@@ -497,6 +480,8 @@ SUBROUTINE CPL_OASIS_DEFINE(NDSO,RCV_STR,SND_STR)
497
480
CALL OASIS_ABORT(IL_COMPID, ' CPL_OASIS_DEFINE' , ' Problem during oasis_def_partition' )
498
481
ENDIF
499
482
!
483
+ DEALLOCATE (ILA_PARAL)
484
+ !
500
485
! 3. Coupling fields declaration
501
486
! ----------------------------------
502
487
ILA_SHAPE(:) = (/ 1 , NSEAL, 1 , 1 / )
0 commit comments