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

Juan 13/09/2012: seconde version ACC+GOODDDIR OK in PARALLEL with MPI ,...

Juan 13/09/2012: seconde version ACC+GOODDDIR OK in PARALLEL with MPI , optimization to do in MPI , and over ppm_* call
parent 6a100e75
No related branches found
No related tags found
1 merge request!4Jean Wurtz 30/04/2025 : Bugfixes mainly for TEB and for simple precision
......@@ -9,29 +9,41 @@
! ####################
!
INTERFACE
SUBROUTINE GET_HALO2(PSRC,TP_PSRC_HALO2_ll)
!
USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
TYPE(HALO2LIST_ll), POINTER :: TP_PSRC_HALO2_ll ! halo2 for SRC
!
END SUBROUTINE GET_HALO2
END INTERFACE
!
SUBROUTINE GET_HALO2(PSRC,TP_PSRC_HALO2_ll)
!
USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
TYPE(HALO2LIST_ll), POINTER :: TP_PSRC_HALO2_ll ! halo2 for SRC
!
END SUBROUTINE GET_HALO2
!
SUBROUTINE GET_HALO(PSRC,HDIR)
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
CHARACTER(len=4), OPTIONAL :: HDIR ! to send only halo on X or Y direction
!
END SUBROUTINE GET_HALO
INTERFACE
SUBROUTINE GET_HALO(PSRC,HDIR)
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
CHARACTER(len=4), OPTIONAL :: HDIR ! to send only halo on X or Y direction
!
END SUBROUTINE GET_HALO
END INTERFACE
!
INTERFACE
SUBROUTINE GET_HALO_D(PSRC,HDIR)
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
!$acc reflected (PSRC)
CHARACTER(len=4), OPTIONAL :: HDIR ! to send only halo on X or Y direction
!
END SUBROUTINE GET_HALO_D
END INTERFACE
!
INTERFACE
SUBROUTINE DEL_HALO2_ll(TPHALO2LIST)
!
USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll
TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list of HALO2_lls
!
END SUBROUTINE DEL_HALO2_ll
!
END INTERFACE
!
END MODULE MODI_GET_HALO
......@@ -105,6 +117,50 @@ CALL CLEANLIST_ll(TZ_PSRC_ll)
!
END SUBROUTINE GET_HALO
!-----------------------------------------------------------------------
!-------------------------------------------------------------------------------
! #########################
SUBROUTINE GET_HALO_D(PSRC,HDIR)
! #########################
!
USE MODE_ll
USE MODD_ARGSLIST_ll, ONLY : LIST_ll
USE MODD_PARAMETERS, ONLY : JPHEXT
!
IMPLICIT NONE
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PSRC ! variable at t
!$acc reflected (PSRC)
CHARACTER(len=4), OPTIONAL :: HDIR ! to send only halo on X or Y direction
!
TYPE(LIST_ll) , POINTER :: TZ_PSRC_ll ! halo
INTEGER :: IERROR ! error return code
INTEGER:: IIB,IJB ! Begining useful area in x,y,z directions
INTEGER:: IIE,IJE ! End useful area in x,y,z directions
!
!
NULLIFY( TZ_PSRC_ll)
CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
!
!$acc update host (PSRC)
! acc update host (PSRC( : , IJB:IJB , : ))
! acc update host (PSRC( : , IJE:IJE , : ))
! acc update host (PSRC( IIB:IIB , IJB:IJE , : ))
! acc update host (PSRC( IIE:IIE , IJB:IJE , : ))
CALL ADD3DFIELD_ll(TZ_PSRC_ll,PSRC)
CALL UPDATE_HALO_ll(TZ_PSRC_ll,IERROR, HDIR=HDIR )
CALL CLEANLIST_ll(TZ_PSRC_ll)
! acc update device (PSRC)
!$acc update device (PSRC( : , : IJB-1 , : ))
!$acc update device (PSRC( : , IJE+1: , : ))
!$acc update device (PSRC( :IIB-1 , : , : ))
!$acc update device (PSRC( IIE+1: , : , : ))
!
END SUBROUTINE GET_HALO_D
!-----------------------------------------------------------------------
!
!
! ####################################
SUBROUTINE DEL_HALO2_ll(TPHALO2LIST)
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment