Skip to content
Snippets Groups Projects
Commit 6a5ef3a7 authored by ESCOBAR Juan's avatar ESCOBAR Juan
Browse files

Juan 09/11/2020:mode_mppdb.f90, add 4th dimension to keep TAB_ll value on CPU+GPU for debugging

parent b246f66e
No related branches found
No related tags found
No related merge requests found
......@@ -1164,7 +1164,8 @@ MODULE MODE_MPPDB
REAL :: ZPRECISION
REAL,DIMENSION(NMAXPAS) :: MAX_DIFF, MAX_VAL
REAL,DIMENSION(SIZE(PTAB,1),SIZE(PTAB,2),SIZE(PTAB,3)) :: ZTAB
REAL,DIMENSION(:,:,:),ALLOCATABLE,TARGET :: TAB_ll,TAB_SON_ll
REAL,DIMENSION(:,:,:,:),ALLOCATABLE,TARGET :: TAB_ll
REAL,DIMENSION(:,:,:),ALLOCATABLE,TARGET :: TAB_SON_ll
#ifdef MNH_SP4
!pas de mpi_spawn sur IBM-SP ni MPI_ARGV_NULL etc ...
......@@ -1227,8 +1228,8 @@ MODULE MODE_MPPDB
IIU_ll = IIMAX_ll+2*JPHEXT
IJU_ll = IJMAX_ll+2*JPHEXT
IKU_ll = SIZE(PTAB,3)
IF (.NOT. ALLOCATED(TAB_ll)) ALLOCATE(TAB_ll(IIU_ll,IJU_ll,IKU_ll))
CALL GATHERALL_FIELD_ll('XY',ZTAB,TAB_ll,IINFO_ll)
IF (.NOT. ALLOCATED(TAB_ll)) ALLOCATE(TAB_ll(IIU_ll,IJU_ll,IKU_ll,NPAS_ll))
CALL GATHERALL_FIELD_ll('XY',ZTAB,TAB_ll(:,:,:,IPAS),IINFO_ll)
IF (MPPDB_IRANK_WORLD.EQ.0) THEN
!
......@@ -1255,18 +1256,18 @@ MODULE MODE_MPPDB
CALL MPI_RECV(TAB_SON_ll,SIZE(TAB_SON_ll),MNHREAL_MPI,I_FIRST_SON, &
NTAG,MPPDB_INTRA_COMM,MPI_STATUS_IGNORE,IINFO_ll)
!
TAB_ll = ABS ( TAB_ll - TAB_SON_ll )
TAB_ll(:,:,:,IPAS) = ABS ( TAB_ll(:,:,:,IPAS) - TAB_SON_ll(:,:,:) )
!
! Set corners values to zero if we want to check the halos without the corners
IF ( MPPDB_CHECK_LB .AND. .NOT.MPPDB_CHECK_LB_CORNERS ) THEN
TAB_ll(1:JPHEXT, 1:JPHEXT, 1:IKU_ll) = 0d0
TAB_ll(1:JPHEXT, 1:JPHEXT, 1:IKU_ll) = 0d0
TAB_ll(1:JPHEXT, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll) = 0d0
TAB_ll(1:JPHEXT, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll) = 0d0
TAB_ll(IIU_ll-JPHEXT:IIU_ll, 1:JPHEXT, 1:IKU_ll) = 0d0
TAB_ll(IIU_ll-JPHEXT:IIU_ll, 1:JPHEXT, 1:IKU_ll) = 0d0
TAB_ll(IIU_ll-JPHEXT:IIU_ll, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll) = 0d0
TAB_ll(IIU_ll-JPHEXT:IIU_ll, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll) = 0d0
TAB_ll(1:JPHEXT, 1:JPHEXT, 1:IKU_ll,IPAS) = 0d0
TAB_ll(1:JPHEXT, 1:JPHEXT, 1:IKU_ll,IPAS) = 0d0
TAB_ll(1:JPHEXT, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll,IPAS) = 0d0
TAB_ll(1:JPHEXT, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll,IPAS) = 0d0
TAB_ll(IIU_ll-JPHEXT:IIU_ll, 1:JPHEXT, 1:IKU_ll,IPAS) = 0d0
TAB_ll(IIU_ll-JPHEXT:IIU_ll, 1:JPHEXT, 1:IKU_ll,IPAS) = 0d0
TAB_ll(IIU_ll-JPHEXT:IIU_ll, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll,IPAS) = 0d0
TAB_ll(IIU_ll-JPHEXT:IIU_ll, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll,IPAS) = 0d0
TAB_SON_ll(1:JPHEXT, 1:JPHEXT, 1:IKU_ll) = 0d0
TAB_SON_ll(1:JPHEXT, 1:JPHEXT, 1:IKU_ll) = 0d0
TAB_SON_ll(1:JPHEXT, IJU_ll-JPHEXT:IJU_ll, 1:IKU_ll) = 0d0
......@@ -1290,7 +1291,7 @@ MODULE MODE_MPPDB
MAX_VAL(IPAS) = MAXVAL( ABS (TAB_SON_ll(IIB_SON_ll-IDIFF_HEXT:IIE_SON_ll+IDIFF_HEXT,&
IJB_SON_ll-IDIFF_HEXT:IJE_SON_ll+IDIFF_HEXT,1:IKU_SON_ll) ) )
MAX_DIFF(IPAS) = MAXVAL( TAB_ll(IIB_ll-IDIFF_HEXT:IIE_ll+IDIFF_HEXT,IJB_ll-IDIFF_HEXT:IJE_ll+IDIFF_HEXT,1:IKU_ll))
MAX_DIFF(IPAS) = MAXVAL( TAB_ll(IIB_ll-IDIFF_HEXT:IIE_ll+IDIFF_HEXT,IJB_ll-IDIFF_HEXT:IJE_ll+IDIFF_HEXT,1:IKU_ll,IPAS))
!
IF ( MAX_VAL(IPAS) .EQ. 0.0 ) THEN
ZDIV=1.0
......@@ -1317,8 +1318,8 @@ MODULE MODE_MPPDB
IIU_ll = IIMAX_ll+2*JPHEXT
IJU_ll = IJMAX_ll+2*JPHEXT
IKU_ll = SIZE(PTAB,3)
IF (.NOT. ALLOCATED(TAB_ll)) ALLOCATE(TAB_ll(IIU_ll,IJU_ll,IKU_ll))
CALL GATHERALL_FIELD_ll('XY',ZTAB,TAB_ll,IINFO_ll)
IF (.NOT. ALLOCATED(TAB_ll)) ALLOCATE(TAB_ll(IIU_ll,IJU_ll,IKU_ll,NPAS_ll))
CALL GATHERALL_FIELD_ll('XY',ZTAB,TAB_ll(:,:,:,IPAS),IINFO_ll)
!
! SON WORLD
!
......@@ -1331,7 +1332,7 @@ MODULE MODE_MPPDB
CALL MPI_BSEND(IHEXT_SON_ll,1,MNHINT_MPI,I_FIRST_FATHER, &
NTAG, MPPDB_INTRA_COMM, IINFO_ll)
CALL MPI_BSEND(TAB_ll,SIZE(TAB_ll),MNHREAL_MPI,I_FIRST_FATHER, &
CALL MPI_BSEND(TAB_ll(:,:,:,IPAS),SIZE(TAB_ll(:,:,:,IPAS)),MNHREAL_MPI,I_FIRST_FATHER, &
NTAG, MPPDB_INTRA_COMM, IINFO_ll)
END IF
END IF
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment