From 3580a7c0048150804aa37f336e6a3938eadf846d Mon Sep 17 00:00:00 2001 From: Juan Escobar <escj@aero.obs-mip.fr> Date: Wed, 20 Jun 2018 11:11:35 +0200 Subject: [PATCH] Juan 20/06/2018: Correction for flash_geom, mpivide.c & I8VECT & ini_flash --- src/LIB/MPIvide/mpivide.c | 8 ++++++++ src/MNH/flash_geom_elec.f90 | 16 ++++++++++------ src/MNH/ini_flash_geom_elec.f90 | 3 ++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/LIB/MPIvide/mpivide.c b/src/LIB/MPIvide/mpivide.c index 9c41ffa7c..b23e25e5e 100644 --- a/src/LIB/MPIvide/mpivide.c +++ b/src/LIB/MPIvide/mpivide.c @@ -24,12 +24,16 @@ MNH_LIC for details. version 1. /* MPI_INTEGER is defined in mpi.h */ +#define MPI_INTEGER8 MPI_LONG_LONG_INT + #ifdef FUJI #if MNH_INT == 8 #define SIZEINTEGER 8 +#define SIZEINTEGER8 8 #define SIZELOGICAL 8 #else #define SIZEINTEGER 4 +#define SIZEINTEGER8 8 #define SIZELOGICAL 4 #endif #if MNH_REALS == 4 @@ -41,6 +45,7 @@ MNH_LIC for details. version 1. #endif #else #define SIZEINTEGER 8 +#define SIZEINTEGER8 8 #define SIZEPRECISION 8 #define SIZE2PRECISION 16 #endif @@ -179,6 +184,9 @@ int *__ierr; case MPI_INTEGER: size = SIZEINTEGER; break; + case MPI_INTEGER8: + size = SIZEINTEGER8; + break; case MPI_PRECISION: size = SIZEPRECISION; break; diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90 index b020d112e..530f2d590 100644 --- a/src/MNH/flash_geom_elec.f90 +++ b/src/MNH/flash_geom_elec.f90 @@ -83,6 +83,7 @@ END MODULE MODI_FLASH_GEOM_ELEC_n !! C. Barthe * LACy * Jan. 2015 : convert trig. pt into lat,lon in ascii file !! J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 !! J.Escobar : 28/03/2018 : Correction of multiple // bug & compiler indepedent mnh_random_number +!! J.Escobar : 20/06/2018 : Correction of computation of global index I8VECT !! !------------------------------------------------------------------------------- ! @@ -119,7 +120,6 @@ USE MODD_ELEC_FLASH USE MODI_SHUMAN USE MODI_TO_ELEC_FIELD_n USE MODI_ION_ATTACH_ELEC -USE MODI_IO_ll ! #ifdef MNH_PGI USE MODE_PACK_PGI @@ -304,7 +304,7 @@ INTEGER :: IFLASH_COUNT, IFLASH_COUNT_GLOB ! Total number of flashes within the REAL,DIMENSION(SIZE(PRT,1),SIZE(PRT,2)) :: ZCELL_NEW ! INTEGER :: ILJ -INTEGER :: NIMAX_ll, NJMAX_ll ! dimensions of global domain +INTEGER :: NIMAX_ll, NJMAX_ll,IIU_ll,IJU_ll ! dimensions of global domain ! !------------------------------------------------------------------------------- ! @@ -323,6 +323,8 @@ IKU = SIZE(PRT,3) ! global indexes of the local subdomains origin CALL GET_GLOBALDIMS_ll (NIMAX_ll,NJMAX_ll) CALL GET_OR_ll('B',IXOR,IYOR) +IIU_ll = NIMAX_ll + 2*JPHEXT +IJU_ll = NJMAX_ll + 2*JPHEXT ! ! !* 1.2 allocations and initializations @@ -2146,7 +2148,8 @@ DO WHILE (IM .LE. IDELTA_IND .AND. ISTOP .NE. 1) DO JI=IIB,IIE IF (IMASKQ_DIST(JI,JJ,JK) .EQ. IM) THEN JIL = JIL + 1 - I8VECT(JIL) = NJMAX_ll*NIMAX_ll*(JK-1) + NIMAX_ll*(IYOR+JJ-1) + (IXOR+JI-1) + I8VECT(JIL) = IJU_ll*IIU_ll*(JK-1) + IIU_ll*(JJ-1 +IYOR-1) + (JI +IXOR-1) + !print*,"IN => I8VECT(JIL )=",I8VECT(JIL),JI,JJ,JK,JIL END IF END DO END DO @@ -2175,9 +2178,10 @@ DO WHILE (IM .LE. IDELTA_IND .AND. ISTOP .NE. 1) IFOUND = 1 ! The points is in this processors , get is coord and set it IF (IRANK_LL(IORDER_LL(ICHOICE)) .EQ. IPROC) THEN - JK = I8VECT_LL(ICHOICE) / ( NJMAX_ll*NIMAX_ll ) +1 - JJ = ( I8VECT_LL(ICHOICE) - NJMAX_ll*NIMAX_ll*(JK-1) ) / NIMAX_ll - IYOR +1 - JI = MOD(I8VECT_LL(ICHOICE),NIMAX_ll) - IXOR +1 + JK = 1 + (I8VECT_LL(ICHOICE)-1) / ( IJU_ll*IIU_ll ) + JJ = 1 + ( (I8VECT_LL(ICHOICE)-1) - IJU_ll*IIU_ll*(JK-1) ) / IIU_ll - IYOR +1 + JI = 1 + MOD((I8VECT_LL(ICHOICE)-1) , IIU_ll) - IXOR +1 + !print*,"OUT => I8VECT_LL(ICHOICE)=",I8VECT_ll(ICHOICE),JI,JJ,JK,ICHOICE ZFLASH(JI,JJ,JK,IL) = 2. END IF I8VECT_LL(ICHOICE) = 0. diff --git a/src/MNH/ini_flash_geom_elec.f90 b/src/MNH/ini_flash_geom_elec.f90 index b3dae9562..9ff78049a 100644 --- a/src/MNH/ini_flash_geom_elec.f90 +++ b/src/MNH/ini_flash_geom_elec.f90 @@ -47,6 +47,7 @@ END MODULE MODI_INI_FLASH_GEOM_ELEC !! !! Modifications !! J.-P. Pinty jan 2015 : add LMA simulator +!! J.Escobar 20/06/2018 : truly set NBRANCH_MAX = 5000 ! !! !------------------------------------------------------------------------------- ! @@ -110,7 +111,7 @@ XE_THRESH = 35.E3 ! (V/m) NLEADER_MAX = NKMAX ! ! the maximum number of branches is arbitriraly set to 5000 -NBRANCH_MAX = 50000 +NBRANCH_MAX = 5000 ! ! the maximum number of electrified cells in the domain is arbitrarily ! set to 10 -- GitLab