@@ -427,58 +427,41 @@ SUBROUTINE CPL_OASIS_DEFINE(NDSO,RCV_STR,SND_STR)
427
427
! / ------------------------------------------------------------------- /
428
428
! / Local parameters
429
429
! /
430
- INTEGER :: IB_I,I
430
+ INTEGER :: IB_I
431
431
INTEGER :: IL_PART_ID ! PartitionID
432
432
INTEGER , ALLOCATABLE , DIMENSION (:) :: ILA_PARAL ! Description of the local partition in the global index space
433
433
INTEGER , DIMENSION (4 ) :: ILA_SHAPE ! Vector giving the min & max index for each dim of the fields
434
434
INTEGER , DIMENSION (2 ) :: ILA_VAR_NODIMS ! rank of fields & number of bundles (1 with OASIS3-MCT)
435
435
INTEGER :: ISEA, JSEA, IX, IY
436
- INTEGER :: NHXW, NHXE, NHYS, NHYN ! size of the halo at the western, eastern, southern, northern boundaries
437
- LOGICAL :: LL_MPI_FILE ! to check if there an mpi.txt file for domain decompasition
438
436
! /
439
437
! / ------------------------------------------------------------------- /
440
438
! / Executable part
441
439
! /
442
440
!
441
+ ALLOCATE (ILA_PARAL(2 + NSEAL))
442
+ !
443
+ ! * Define the partition : OASIS POINTS partition
444
+ ILA_PARAL(1 ) = 4
445
+ !
446
+ ! * total number of segments of the global domain
447
+ ILA_PARAL(2 ) = NSEAL
448
+ !
443
449
IF (GTYPE .EQ. RLGTYPE .OR. GTYPE .EQ. CLGTYPE) THEN
444
450
!
445
451
! 1.1. regular and curvilinear grids
446
452
! ----------------------------------
447
- NHXW = 1 ; NHXE = NX ; NHYS = 1 ; NHYN = NY
448
- NHXW = NHXW - 1
449
- NHXE = NX - NHXE
450
- NHYS = NHYS - 1
451
- NHYN = NY - NHYN
452
- !
453
- ALLOCATE (ILA_PARAL(2 + NSEAL* 2 ))
454
- !
455
- ! * Define the partition : OASIS ORANGE partition
456
- ILA_PARAL(1 ) = 3
457
- !
458
- ! * total number of segments of the global domain
459
- ILA_PARAL(2 ) = NSEAL
460
- !
461
453
DO JSEA= 1 , NSEAL
462
454
CALL INIT_GET_ISEA(ISEA,JSEA)
463
455
464
456
IX = MAPSF(ISEA,1 )
465
457
IY = MAPSF(ISEA,2 )
466
- ILA_PARAL(JSEA* 2+1 ) = (IY - NHYN - 1 )* (NX - NHXE - NHXW) + (IX - NHXW - 1 )
467
- ILA_PARAL(JSEA* 2+2 ) = 1
458
+ ILA_PARAL(JSEA+2 ) = (IY - 1 )* NX + IX
468
459
END DO
469
460
#ifdef W3_SMC
470
461
ELSE IF ( GTYPE .EQ. SMCTYPE ) THEN
471
462
!
472
463
! 1.2. SMC grids
473
464
! ----------------------------------
474
- ALLOCATE (ILA_PARAL(2 + NSEAL))
475
- !
476
- ! * Define the partition : OASIS POINTS partition
477
- ILA_PARAL(1 ) = 4
478
- !
479
- ! * total number of segments of the global domain
480
- ILA_PARAL(2 ) = NSEAL
481
- !
482
465
DO JSEA= 1 , NSEAL
483
466
ILA_PARAL(JSEA+2 ) = IAPROC + (JSEA-1 )* NAPROC
484
467
ENDDO
@@ -492,8 +475,7 @@ SUBROUTINE CPL_OASIS_DEFINE(NDSO,RCV_STR,SND_STR)
492
475
STOP
493
476
!
494
477
DO JSEA= 1 ,NSEAL
495
- ILA_PARAL(JSEA* 2+1 ) = (IAPROC-1 ) + (JSEA-1 )* NAPROC
496
- ILA_PARAL(JSEA* 2+2 ) = 1
478
+ ILA_PARAL(JSEA+2 ) = IAPROC + (JSEA-1 )* NAPROC
497
479
END DO
498
480
!
499
481
ENDIF
@@ -505,6 +487,8 @@ SUBROUTINE CPL_OASIS_DEFINE(NDSO,RCV_STR,SND_STR)
505
487
CALL OASIS_ABORT(IL_COMPID, ' CPL_OASIS_DEFINE' , ' Problem during oasis_def_partition' )
506
488
ENDIF
507
489
!
490
+ DEALLOCATE (ILA_PARAL)
491
+ !
508
492
! 3. Coupling fields declaration
509
493
! ----------------------------------
510
494
ILA_SHAPE(:) = (/ 1 , NSEAL, 1 , 1 / )
0 commit comments