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
No related merge requests found
...@@ -37,7 +37,62 @@ END MODULE MODI_ADVECUVW_4TH ...@@ -37,7 +37,62 @@ END MODULE MODI_ADVECUVW_4TH
! !
! ###################################################################### ! ######################################################################
SUBROUTINE ADVECUVW_4TH ( HLBCX, HLBCY, PRUCT, PRVCT, PRWCT, & 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 !!**** *ADVECUVW_4TH * - routine to compute the 4th order centered
...@@ -164,19 +219,20 @@ IMPLICIT NONE ...@@ -164,19 +219,20 @@ IMPLICIT NONE
!* 0.1 Declarations of dummy arguments : !* 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) :: HLBCX ! X direction LBC type
CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! Y direction LBC type CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! Y direction LBC type
! !
! !
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRUCT ! contravariant REAL, DIMENSION(IIU,IJU,IKU), INTENT(IN) :: PRUCT ! contravariant
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRVCT ! components REAL, DIMENSION(IIU,IJU,IKU), INTENT(IN) :: PRVCT ! components
REAL, DIMENSION(:,:,:), INTENT(IN) :: PRWCT ! of momentum REAL, DIMENSION(IIU,IJU,IKU), INTENT(IN) :: PRWCT ! of momentum
!$acc declare present(PRUCT,PRVCT,PRWCT) !$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) !$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) !$acc declare pcopy(PRUS, PRVS, PRWS)
! !
TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list for diffusion TYPE(HALO2LIST_ll), POINTER :: TPHALO2LIST ! list for diffusion
...@@ -189,13 +245,13 @@ INTEGER:: IIE,IJE ! End useful area in x,y,z directions ...@@ -189,13 +245,13 @@ INTEGER:: IIE,IJE ! End useful area in x,y,z directions
TYPE(HALO2LIST_ll), POINTER :: TZHALO2LIST TYPE(HALO2LIST_ll), POINTER :: TZHALO2LIST
! !
INTEGER :: IGRID ! localisation on the model grid 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 REAL, DIMENSION(IIU,IJU,IKU) :: ZMEANX, ZMEANY ! fluxes
!$acc declare create(ZTEMP1,ZTEMP2,ZTEMP3,ZTEMP4) !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 INTEGER :: II
! !
...@@ -221,11 +277,12 @@ INTEGER :: II ...@@ -221,11 +277,12 @@ INTEGER :: II
!* 1. COMPUTES THE DOMAIN DIMENSIONS !* 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_INDICE_ll(IIB,IJB,IIE,IJE)
CALL GET_DIM_EXT_ll('B',IIU,IJU) !!$CALL GET_DIM_EXT_ll('B',IIU,IJU)
IKU=SIZE(PUT,3) !!$IKU=SIZE(PUT,3)
! !
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
...@@ -377,4 +434,7 @@ IF (LBUDGET_W) CALL BUDGET (PRWS,3,'ADVZ_BU_RW') ...@@ -377,4 +434,7 @@ IF (LBUDGET_W) CALL BUDGET (PRWS,3,'ADVZ_BU_RW')
!$acc end data !$acc end data
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
END SUBROUTINE ADVECUVW_4TH_D
END SUBROUTINE ADVECUVW_4TH END SUBROUTINE ADVECUVW_4TH
...@@ -21,7 +21,7 @@ MODULE MODE_MNH_ZWORK ...@@ -21,7 +21,7 @@ MODULE MODE_MNH_ZWORK
REAL, SAVE, ALLOCATABLE , DIMENSION(:,:,:) :: ZUNIT3D REAL, SAVE, ALLOCATABLE , DIMENSION(:,:,:) :: ZUNIT3D
!$acc declare mirror(ZUNIT3D) !$acc declare mirror(ZUNIT3D)
INTEGER :: JPMAX_T3D = 25 INTEGER :: JPMAX_T3D = 35
INTEGER , ALLOCATABLE, DIMENSION (:) :: NT3D_POOL INTEGER , ALLOCATABLE, DIMENSION (:) :: NT3D_POOL
INTEGER :: NT3D_TOP , NT3D_TOP_MAX = 0 INTEGER :: NT3D_TOP , NT3D_TOP_MAX = 0
REAL , ALLOCATABLE, DIMENSION(:,:,:,:) , TARGET :: ZT3D_A1,ZT3D_A2,ZT3D_A3,ZT3D_A4 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.
Finish editing this message first!
Please register or to comment