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

Juan 23/11/2013; ZTAB et I,J,K dim in advecuvw_4th

parent 2fd76d72
No related branches found
No related tags found
1 merge request!4Jean Wurtz 30/04/2025 : Bugfixes mainly for TEB and for simple precision
......@@ -37,7 +37,62 @@ END MODULE MODI_ADVECUVW_4TH
!
! ######################################################################
SUBROUTINE ADVECUVW_4TH ( HLBCX, HLBCY, PRUCT, PRVCT, PRWCT, &
PUT, PVT, PWT, PRUS, PRVS, PRWS, TPHALO2LIST )
PUT, PVT, PWT, PRUS, PRVS, PRWS, TPHALO2LIST )
USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll
USE MODE_MNH_ZWORK , ONLY : ZT3D, MNH_GET_ZT3D , MNH_REL_ZT3D
USE MODE_MNH_ZWORK, ONLY : IIU,IJU,IKU
IMPLICIT NONE
!
!* 0.1 Declarations of dummy arguments :
!
!
CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! X direction LBC type
CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! Y direction LBC type
!
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRUCT ! contravariant
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRVCT ! components
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRWCT ! of momentum
!$acc declare present(PRUCT,PRVCT,PRWCT)
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PUT, PVT, PWT ! Variables at t
!$acc declare pcopyin(PUT,PVT,PWT)
!
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRUS, PRVS, PRWS ! Source terms
!$acc declare pcopy(PRUS, PRVS, PRWS)
!
TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list for diffusion
!
!* 0.2 Declarations of local variables :
!
INTEGER:: IIB,IJB ! Begining useful area in x,y,z directions
INTEGER:: IIE,IJE ! End useful area in x,y,z directions
!
TYPE(HALO2LIST_ll), POINTER :: TZHALO2LIST
INTEGER :: IZMEANX, IZMEANY, IZTEMP1,IZTEMP2,IZTEMP3,IZTEMP4
CALL MNH_GET_ZT3D(IZMEANX, IZMEANY,IZTEMP1,IZTEMP2,IZTEMP3,IZTEMP4 )
CALL ADVECUVW_4TH_D ( IIU,IJU,IKU,HLBCX, HLBCY, &
& PRUCT, PRVCT, PRWCT, &
& PUT, PVT, PWT, PRUS, PRVS, PRWS, TPHALO2LIST, &
& ZT3D(:,:,:,IZMEANX),ZT3D(:,:,:,IZMEANY), &
& ZT3D(:,:,:,IZTEMP1),ZT3D(:,:,:,IZTEMP2), &
& ZT3D(:,:,:,IZTEMP3),ZT3D(:,:,:,IZTEMP4) &
& )
CALL MNH_REL_ZT3D(IZMEANX, IZMEANY, IZTEMP1,IZTEMP2,IZTEMP3,IZTEMP4)
CONTAINS
SUBROUTINE ADVECUVW_4TH_D ( IIU,IJU,IKU,HLBCX, HLBCY, &
& PRUCT, PRVCT, PRWCT, &
& PUT, PVT, PWT, PRUS, PRVS, PRWS, TPHALO2LIST , &
& ZMEANX, ZMEANY, ZTEMP1,ZTEMP2,ZTEMP3,ZTEMP4 )
! ######################################################################
!
!!**** *ADVECUVW_4TH * - routine to compute the 4th order centered
......@@ -164,19 +219,20 @@ IMPLICIT NONE
!* 0.1 Declarations of dummy arguments :
!
!
INTEGER , INTENT(IN) :: IIU,IJU,IKU
CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! X direction LBC type
CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! Y direction LBC type
!
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRUCT ! contravariant
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRVCT ! components
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRWCT ! of momentum
REAL, DIMENSION(IIU,IJU,IKU), INTENT(IN) :: PRUCT ! contravariant
REAL, DIMENSION(IIU,IJU,IKU), INTENT(IN) :: PRVCT ! components
REAL, DIMENSION(IIU,IJU,IKU), INTENT(IN) :: PRWCT ! of momentum
!$acc declare present(PRUCT,PRVCT,PRWCT)
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PUT, PVT, PWT ! Variables at t
REAL, DIMENSION(IIU,IJU,IKU), INTENT(IN) :: PUT, PVT, PWT ! Variables at t
!$acc declare pcopyin(PUT,PVT,PWT)
!
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PRUS, PRVS, PRWS ! Source terms
REAL, DIMENSION(IIU,IJU,IKU), INTENT(INOUT) :: PRUS, PRVS, PRWS ! Source terms
!$acc declare pcopy(PRUS, PRVS, PRWS)
!
TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list for diffusion
......@@ -189,13 +245,13 @@ INTEGER:: IIE,IJE ! End useful area in x,y,z directions
TYPE(HALO2LIST_ll), POINTER :: TZHALO2LIST
!
INTEGER :: IGRID ! localisation on the model grid
REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZMEANX, ZMEANY ! fluxes
!acc declare create(ZMEANX, ZMEANY)
!
REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZTEMP1,ZTEMP2,ZTEMP3,ZTEMP4
!$acc declare create(ZTEMP1,ZTEMP2,ZTEMP3,ZTEMP4)
REAL, DIMENSION(IIU,IJU,IKU) :: ZMEANX, ZMEANY ! fluxes
!acc declare present(ZMEANX, ZMEANY)
!
REAL, DIMENSION(IIU,IJU,IKU) :: ZTEMP1,ZTEMP2,ZTEMP3,ZTEMP4
!$acc declare present(ZTEMP1,ZTEMP2,ZTEMP3,ZTEMP4)
INTEGER :: IIU,IJU,IKU
INTEGER :: II
!
......@@ -221,11 +277,12 @@ INTEGER :: II
!* 1. COMPUTES THE DOMAIN DIMENSIONS
!
! ------------------------------
!$acc data create(ZMEANX, ZMEANY)
!$acc data
! create(ZMEANX, ZMEANY)
!
CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
CALL GET_DIM_EXT_ll('B',IIU,IJU)
IKU=SIZE(PUT,3)
!!$CALL GET_DIM_EXT_ll('B',IIU,IJU)
!!$IKU=SIZE(PUT,3)
!
!-------------------------------------------------------------------------------
!
......@@ -377,4 +434,7 @@ IF (LBUDGET_W) CALL BUDGET (PRWS,3,'ADVZ_BU_RW')
!$acc end data
!-------------------------------------------------------------------------------
!
END SUBROUTINE ADVECUVW_4TH_D
END SUBROUTINE ADVECUVW_4TH
......@@ -21,7 +21,7 @@ MODULE MODE_MNH_ZWORK
REAL, SAVE, ALLOCATABLE , DIMENSION(:,:,:) :: ZUNIT3D
!$acc declare mirror(ZUNIT3D)
INTEGER :: JPMAX_T3D = 25
INTEGER :: JPMAX_T3D = 35
INTEGER , ALLOCATABLE, DIMENSION (:) :: NT3D_POOL
INTEGER :: NT3D_TOP , NT3D_TOP_MAX = 0
REAL , ALLOCATABLE, DIMENSION(:,:,:,:) , TARGET :: ZT3D_A1,ZT3D_A2,ZT3D_A3,ZT3D_A4
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment