Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
Méso-NH code
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RODIER Quentin
Méso-NH code
Commits
98adf2c6
Commit
98adf2c6
authored
11 years ago
by
ESCOBAR Juan
Browse files
Options
Downloads
Patches
Plain Diff
Juan 20/11/2013 : add present/upate(PRHODJ) & inline MXM/MYM/MZM
parent
bcc7c63b
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
MNH/advection.f90
+24
-9
24 additions, 9 deletions
MNH/advection.f90
with
24 additions
and
9 deletions
MNH/advection.f90
+
24
−
9
View file @
98adf2c6
...
@@ -237,10 +237,7 @@ USE MODI_MPDATA_SCALAR
...
@@ -237,10 +237,7 @@ USE MODI_MPDATA_SCALAR
USE
MODI_PPM_MET
USE
MODI_PPM_MET
USE
MODI_PPM_SCALAR
USE
MODI_PPM_SCALAR
!
!
#ifndef USET3D
USE
MODD_PARAMETERS
,
ONLY
:
JPHEXT
!!$USE MODE_MNH_ZWORK, ONLY : ZRUT,ZRVT,ZRWT,ZRUCT,ZRVCT,ZRWCT
#endif
!!$USE MODE_MNH_ZWORK, ONLY : ZRUT,ZRVT,ZRWT
!
!
!-------------------------------------------------------------------------------
!-------------------------------------------------------------------------------
!
!
...
@@ -276,6 +273,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PUM, PVM, PWM
...
@@ -276,6 +273,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PUM, PVM, PWM
! Variables at t-dt
! Variables at t-dt
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PUT
,
PVT
,
PWT
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PUT
,
PVT
,
PWT
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PTHT
,
PTKET
,
PRHODJ
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PTHT
,
PTKET
,
PRHODJ
!$acc declara present(PRHODJ)
REAL
,
DIMENSION
(:,:,:,:),
INTENT
(
IN
)
::
PRT
,
PSVT
REAL
,
DIMENSION
(:,:,:,:),
INTENT
(
IN
)
::
PRT
,
PSVT
! Variables at t
! Variables at t
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PDXX
,
PDYY
,
PDZZ
,
PDZX
,
PDZY
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PDXX
,
PDYY
,
PDZZ
,
PDZX
,
PDZY
...
@@ -289,6 +287,7 @@ TYPE(HALO2LIST_ll), POINTER :: TPHALO2MLIST ! momentum variables
...
@@ -289,6 +287,7 @@ TYPE(HALO2LIST_ll), POINTER :: TPHALO2MLIST ! momentum variables
TYPE
(
HALO2LIST_ll
),
POINTER
::
TPHALO2LIST
! meteorological scalar variables
TYPE
(
HALO2LIST_ll
),
POINTER
::
TPHALO2LIST
! meteorological scalar variables
TYPE
(
HALO2LIST_ll
),
POINTER
::
TPHALO2SLIST
! tracer scalar variables
TYPE
(
HALO2LIST_ll
),
POINTER
::
TPHALO2SLIST
! tracer scalar variables
!
!
INTEGER
::
IIU
,
IJU
,
IKU
!
!
!* 0.2 declarations of local variables
!* 0.2 declarations of local variables
!
!
...
@@ -299,7 +298,6 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRUT
...
@@ -299,7 +298,6 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRUT
REAL
,
DIMENSION
(
SIZE
(
PUT
,
1
),
SIZE
(
PUT
,
2
),
SIZE
(
PUT
,
3
))
::
ZRVT
REAL
,
DIMENSION
(
SIZE
(
PUT
,
1
),
SIZE
(
PUT
,
2
),
SIZE
(
PUT
,
3
))
::
ZRVT
REAL
,
DIMENSION
(
SIZE
(
PUT
,
1
),
SIZE
(
PUT
,
2
),
SIZE
(
PUT
,
3
))
::
ZRWT
REAL
,
DIMENSION
(
SIZE
(
PUT
,
1
),
SIZE
(
PUT
,
2
),
SIZE
(
PUT
,
3
))
::
ZRWT
!$acc declare present (ZRUT,ZRVT,ZRWT)
!$acc declare present (ZRUT,ZRVT,ZRWT)
! cartesian
! cartesian
! components of
! components of
! momentum
! momentum
...
@@ -315,17 +313,34 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRWCT
...
@@ -315,17 +313,34 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: ZRWCT
!
!
INTEGER
::
IINFO_ll
! return code of parallel routine
INTEGER
::
IINFO_ll
! return code of parallel routine
TYPE
(
LIST_ll
),
POINTER
::
TZFIELDS_ll
! list of fields to exchange
TYPE
(
LIST_ll
),
POINTER
::
TZFIELDS_ll
! list of fields to exchange
!
#define mxm(PMXM,PA) PMXM(2:IIU,:,:) = 0.5*( PA(2:IIU,:,:)+PA(1:IIU-1,:,:) ) ; PMXM(1,:,:) = PMXM(IIU-2*JPHEXT+1,:,:) ! MXM(PMXM,PA)
#define mym(PMYM,PA) PMYM(:,2:IJU,:) = 0.5*( PA(:,2:IJU,:)+PA(:,1:IJU-1,:) ) ; PMYM(:,1,:) = PMYM(:,IJU-2*JPHEXT+1,:) ! MYM(PMYM,PA)
#define mzm(PMZM,PA) PMZM(:,:,2:IKU) = 0.5*( PA(:,:,2:IKU)+PA(:,:,1:IKU-1) ) ; PMZM(:,:,1) = -999. ! MZM(PMZM,PA)
!
!
!-------------------------------------------------------------------------------
!-------------------------------------------------------------------------------
!
!
!* 0. COMPUTES THE DOMAIN DIMENSIONS
! ------------------------------
CALL
GET_DIM_EXT_ll
(
'B'
,
IIU
,
IJU
)
IKU
=
SIZE
(
PUT
,
3
)
!
!
!* 1. COMPUTES THE CONTRAVARIANT COMPONENTS
!* 1. COMPUTES THE CONTRAVARIANT COMPONENTS
! -------------------------------------
! -------------------------------------
!
!
ZRUT
=
PUT
(:,:,:)
*
MXM
(
PRHODJ
)
!!$ZRUT = PUT(:,:,:) * MXM(PRHODJ)
ZRVT
=
PVT
(:,:,:)
*
MYM
(
PRHODJ
)
!!$ZRVT = PVT(:,:,:) * MYM(PRHODJ)
ZRWT
=
PWT
(:,:,:)
*
MZM
(
PRHODJ
)
!!$ZRWT = PWT(:,:,:) * MZM(PRHODJ)
!$acc update device(PRHODJ)
!$acc kernels pcopyin(PUT,PVT,PWT)
mxm
(
ZRUT
,
PRHODJ
)
ZRUT
=
PUT
(:,:,:)
*
ZRUT
mym
(
ZRVT
,
PRHODJ
)
ZRVT
=
PVT
(:,:,:)
*
ZRVT
mzm
(
ZRWT
,
PRHODJ
)
ZRWT
=
PWT
(:,:,:)
*
ZRWT
!$acc end kernels
!$acc update host (ZRUT,ZRVT,ZRWT)
!
!
CALL
CONTRAV
(
ZRUT
,
ZRVT
,
ZRWT
,
PDXX
,
PDYY
,
PDZZ
,
PDZX
,
PDZY
,
ZRUCT
,
ZRVCT
,
ZRWCT
)
CALL
CONTRAV
(
ZRUT
,
ZRVT
,
ZRWT
,
PDXX
,
PDYY
,
PDZZ
,
PDZX
,
PDZY
,
ZRUCT
,
ZRVCT
,
ZRWCT
)
!
!
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment