Skip to content
Snippets Groups Projects
Commit 0452194c authored by Juan Escobar's avatar Juan Escobar
Browse files

Juan 17/02/2023:mode_mnh_zwork.f90+modd/n_confz.f90 , put size of T1DFLAT...

Juan 17/02/2023:mode_mnh_zwork.f90+modd/n_confz.f90 , put size of T1DFLAT buffer = NPMAX_T1DFLAT_R in namelist NAM_CONFZ , for augmentaton without recompiling the code
parent 8ab95bf6
No related branches found
No related tags found
No related merge requests found
...@@ -54,6 +54,8 @@ LOGICAL,SAVE :: LMNH_MPI_ALLTOALLV_REMAP = .FALSE. ! default remap with sen ...@@ -54,6 +54,8 @@ LOGICAL,SAVE :: LMNH_MPI_ALLTOALLV_REMAP = .FALSE. ! default remap with sen
INTEGER,SAVE :: NZ_SPLITTING = 10 ! /!\ setting of NZ_SPLITTING by namelist for 'EXPERT' use only for DEBUG INTEGER,SAVE :: NZ_SPLITTING = 10 ! /!\ setting of NZ_SPLITTING by namelist for 'EXPERT' use only for DEBUG
! 'STANDARD' user use LMNH_MPI_ALLTOALLV_REMAP=T/F only !!! ! 'STANDARD' user use LMNH_MPI_ALLTOALLV_REMAP=T/F only !!!
! IZ=1=flat_inv; IZ=2=flat_invz ; IZ=1+2=the two ; IZ=4 alltoall ; +8=P1/P2 splitting ! IZ=1=flat_inv; IZ=2=flat_invz ; IZ=1+2=the two ; IZ=4 alltoall ; +8=P1/P2 splitting
!JUAN
INTEGER,SAVE :: NPMAX_T1DFLAT_R = 130 ! Used to determine max size of buffer ZT1DFLAT in mode_mnh_zwork.f90
! (3D size of the mesh * NPMAX_T1DFLAT_R)
! !
END MODULE MODD_CONFZ END MODULE MODD_CONFZ
...@@ -43,6 +43,7 @@ USE MODD_CONFZ ...@@ -43,6 +43,7 @@ USE MODD_CONFZ
IMPLICIT NONE IMPLICIT NONE
! !
NAMELIST/NAM_CONFZ/ NZ_VERB,NZ_PROC,NB_PROCIO_R,NB_PROCIO_W,MPI_BUFFER_SIZE,LMNH_MPI_BSEND & NAMELIST/NAM_CONFZ/ NZ_VERB,NZ_PROC,NB_PROCIO_R,NB_PROCIO_W,MPI_BUFFER_SIZE,LMNH_MPI_BSEND &
,LMNH_MPI_ALLTOALLV_REMAP,NZ_SPLITTING !JUAN Z_SPLITTING ,LMNH_MPI_ALLTOALLV_REMAP,NZ_SPLITTING &
,NPMAX_T1DFLAT_R
! !
END MODULE MODN_CONFZ END MODULE MODN_CONFZ
...@@ -17,6 +17,8 @@ MODULE MODE_MNH_ZWORK ...@@ -17,6 +17,8 @@ MODULE MODE_MNH_ZWORK
use mode_msg use mode_msg
USE MODD_CONFZ, ONLY : NPMAX_T1DFLAT_R
IMPLICIT NONE IMPLICIT NONE
INTEGER, SAVE :: IIB,IJB,IKB ! Begining useful area in x,y,z directions INTEGER, SAVE :: IIB,IJB,IKB ! Begining useful area in x,y,z directions
...@@ -40,8 +42,6 @@ MODULE MODE_MNH_ZWORK ...@@ -40,8 +42,6 @@ MODULE MODE_MNH_ZWORK
INTEGER , ALLOCATABLE, DIMENSION (:) :: NT3D_POOL INTEGER , ALLOCATABLE, DIMENSION (:) :: NT3D_POOL
INTEGER :: NT3D_TOP , NT3D_TOP_MAX = 0 INTEGER :: NT3D_TOP , NT3D_TOP_MAX = 0
INTEGER :: NT3D_TOP_CURRENT(JPMAX_T3D+1) , NT3D_TOP_CURRENT_INDEX = 0 INTEGER :: NT3D_TOP_CURRENT(JPMAX_T3D+1) , NT3D_TOP_CURRENT_INDEX = 0
!REAL , ALLOCATABLE, DIMENSION(:,:,:,:) , TARGET :: ZT3D_A1,ZT3D_A2,ZT3D_A3,ZT3D_A4
!REAL , POINTER , DIMENSION(:,:,:,:) :: ZT3D
REAL,SAVE , ALLOCATABLE, TARGET , DIMENSION(:,:,:,:) :: ZT3D REAL,SAVE , ALLOCATABLE, TARGET , DIMENSION(:,:,:,:) :: ZT3D
REAL,SAVE , ALLOCATABLE, TARGET , DIMENSION(:) :: ZT1D_OSIZE REAL,SAVE , ALLOCATABLE, TARGET , DIMENSION(:) :: ZT1D_OSIZE
...@@ -149,8 +149,8 @@ MODULE MODE_MNH_ZWORK ...@@ -149,8 +149,8 @@ MODULE MODE_MNH_ZWORK
!------ Real 1DFLAT pool !------ Real 1DFLAT pool
INTEGER, PARAMETER :: JPMAX_T1DFLAT_R = 300 !Used to determine max size of buffer ZT1DFLAT !!$ INTEGER, SAVE :: NPMAX_T1DFLAT_R = 300 !Used to determine max size of buffer ZT1DFLAT
!(3D size of the mesh * JPMAX_T1DFLAT_R) !!$ !(3D size of the mesh * NPMAX_T1DFLAT_R)
INTEGER, SAVE :: NPMAX_POOL_T1DFLAT_R = 250 !Maximum size of the pool (max number of arrays) INTEGER, SAVE :: NPMAX_POOL_T1DFLAT_R = 250 !Maximum size of the pool (max number of arrays)
INTEGER(KIND=MNHINT64), ALLOCATABLE, DIMENSION (:) :: NT1DFLAT_POOL_R !Position in ZT1DFLAT of the beginning of each array INTEGER(KIND=MNHINT64), ALLOCATABLE, DIMENSION (:) :: NT1DFLAT_POOL_R !Position in ZT1DFLAT of the beginning of each array
INTEGER(KIND=MNHINT64), ALLOCATABLE, DIMENSION (:) :: NT1DFLAT_SIZE_R !Size of each array INTEGER(KIND=MNHINT64), ALLOCATABLE, DIMENSION (:) :: NT1DFLAT_SIZE_R !Size of each array
...@@ -347,7 +347,7 @@ CONTAINS ...@@ -347,7 +347,7 @@ CONTAINS
!------ Real 1DFLAT pool !------ Real 1DFLAT pool
NT1DFLAT_MAXSIZE_R = INT( IIU, KIND=MNHINT64 ) * IJU * IKU * JPMAX_T1DFLAT_R NT1DFLAT_MAXSIZE_R = INT( IIU, KIND=MNHINT64 ) * IJU * IKU * NPMAX_T1DFLAT_R
ALLOCATE( ZT1DFLAT(NT1DFLAT_MAXSIZE_R) ) ALLOCATE( ZT1DFLAT(NT1DFLAT_MAXSIZE_R) )
!$acc enter data create( ZT1DFLAT ) !$acc enter data create( ZT1DFLAT )
...@@ -1539,7 +1539,9 @@ CONTAINS ...@@ -1539,7 +1539,9 @@ CONTAINS
NTOT_GETSIZE_ZT1DFLAT = NTOT_GETSIZE_ZT1DFLAT + KSIZE NTOT_GETSIZE_ZT1DFLAT = NTOT_GETSIZE_ZT1DFLAT + KSIZE
IF ( NT1DFLAT_POS_R + KSIZE > NT1DFLAT_MAXSIZE_R ) THEN IF ( NT1DFLAT_POS_R + KSIZE > NT1DFLAT_MAXSIZE_R ) THEN
print*,"MNH_GET_ZT1DFLAT ZT1DFLAT too small, JPMAX_T1DFLAT_R =" , JPMAX_T1DFLAT_R print*,"MNH_GET_ZT1DFLAT:: ZT1DFLAT too small, NPMAX_T1DFLAT_R =" , NPMAX_T1DFLAT_R
print*,"MNH_GET_ZT1DFLAT:: augmente NPMAX_T1DFLAT_R in NAM_CONFZ"
flush(6)
WRITE( YSIZE, '( I0 )' ) KSIZE WRITE( YSIZE, '( I0 )' ) KSIZE
WRITE( YAVAIL, '( I0 )' ) NT1DFLAT_MAXSIZE_R - NT1DFLAT_POS_R WRITE( YAVAIL, '( I0 )' ) NT1DFLAT_MAXSIZE_R - NT1DFLAT_POS_R
WRITE( YMAX, '( I0 )' ) NT1DFLAT_MAXSIZE_R WRITE( YMAX, '( I0 )' ) NT1DFLAT_MAXSIZE_R
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment