Skip to content
Snippets Groups Projects
Commit b41d908b authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 25/04/2023: ZSOLVER: remove unused dummy arguments + some local variables

parent 515eb2d7
Branches
Tags
1 merge request!4Jean Wurtz 30/04/2025 : Bugfixes mainly for TEB and for simple precision
...@@ -397,7 +397,6 @@ INTEGER :: IJE ! indice J for the last inner mass point along y ...@@ -397,7 +397,6 @@ INTEGER :: IJE ! indice J for the last inner mass point along y
INTEGER :: IKB ! indice K for the first inner mass point along z INTEGER :: IKB ! indice K for the first inner mass point along z
INTEGER :: IKE ! indice K for the last inner mass point along z INTEGER :: IKE ! indice K for the last inner mass point along z
INTEGER :: ILUOUT ! Logical unit of output listing INTEGER :: ILUOUT ! Logical unit of output listing
INTEGER :: IRESP ! Return code of FM routines
! !
#ifndef MNH_OPENACC #ifndef MNH_OPENACC
REAL, DIMENSION(SIZE(PPABST,1),SIZE(PPABST,2),SIZE(PPABST,3)) :: ZTHETAV, & REAL, DIMENSION(SIZE(PPABST,1),SIZE(PPABST,2),SIZE(PPABST,3)) :: ZTHETAV, &
...@@ -436,7 +435,6 @@ REAL, POINTER, CONTIGUOUS, DIMENSION(:,:) :: ZPABS_W ! local pressure on western ...@@ -436,7 +435,6 @@ REAL, POINTER, CONTIGUOUS, DIMENSION(:,:) :: ZPABS_W ! local pressure on western
INTEGER :: IINFO_ll,KINFO INTEGER :: IINFO_ll,KINFO
TYPE(LIST_ll), POINTER :: TZFIELDS_ll, TZFIELDS2_ll ! list of fields to exchange TYPE(LIST_ll), POINTER :: TZFIELDS_ll, TZFIELDS2_ll ! list of fields to exchange
! !
INTEGER :: IIB_I,IIE_I,IJB_I,IJE_I
INTEGER :: IIMAX_ll,IJMAX_ll INTEGER :: IIMAX_ll,IJMAX_ll
! !
#ifdef MNH_OPENACC #ifdef MNH_OPENACC
...@@ -751,12 +749,12 @@ ELSE ...@@ -751,12 +749,12 @@ ELSE
! !
#ifdef MNH_MGSOLVER #ifdef MNH_MGSOLVER
CASE('ZSOLV') ! Conjugate Residual method CASE('ZSOLV') ! Conjugate Residual method
CALL ZSOLVER(HLBCX,HLBCY,PDXX,PDYY,PDZX,PDZY,PDZZ,PRHODJ,ZTHETAV, & CALL ZSOLVER( HLBCX, HLBCY, PDXX, PDYY, PDZX, PDZY, PDZZ, &
PDXHATM,PDYHATM,PRHOT,PAF,PBF,PCF,PTRIGSX,PTRIGSY, & PRHODJ, ZTHETAV, PDXHATM, PDYHATM, PRHOT, &
KIFAXX,KIFAXY,KITR,ZDV_SOURCE,ZPHIT, & KITR, ZDV_SOURCE, ZPHIT, &
PAF_ZS,PBF_ZS,PCF_ZS, & PAF_ZS, PBF_ZS, PCF_ZS, &
PDXATH_ZS,PDYATH_ZS,PRHO_ZS,PBFB, & PDXATH_ZS, PDYATH_ZS, PRHO_ZS, PBFB, &
A_K,B_K,C_K,D_K) A_K, B_K, C_K, D_K )
! !
#endif #endif
CASE('ZRESI') ! Conjugate Residual method CASE('ZRESI') ! Conjugate Residual method
......
...@@ -10,13 +10,13 @@ ...@@ -10,13 +10,13 @@
! !
INTERFACE INTERFACE
! !
SUBROUTINE ZSOLVER(HLBCX,HLBCY,PDXX,PDYY,PDZX,PDZY,PDZZ,PRHODJ,PTHETAV, & SUBROUTINE ZSOLVER( HLBCX, HLBCY, PDXX, PDYY, PDZX, PDZY, PDZZ, &
PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & PRHODJ, PTHETAV, PDXHATM, PDYHATM, PRHOM, &
KITR,PY,PPHI, & KITR, PY, PPHI, &
PAF_ZS,PBF_ZS,PCF_ZS, & PAF_ZS, PBF_ZS, PCF_ZS, &
PDXATH_ZS,PDYATH_ZS,PRHO_ZS,PBFB, & PDXATH_ZS, PDYATH_ZS, PRHO_ZS, PBFB, &
A_K,B_K,C_K,D_K) !JUAN FULL ZSOLVER A_K, B_K, C_K, D_K ) !JUAN FULL ZSOLVER
! !
IMPLICIT NONE IMPLICIT NONE
! !
CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! x-direction LBC type
...@@ -40,20 +40,6 @@ REAL, INTENT(IN) :: PDYHATM ! mean grid increment in the y ...@@ -40,20 +40,6 @@ REAL, INTENT(IN) :: PDYHATM ! mean grid increment in the y
REAL, DIMENSION (:), INTENT(IN) :: PRHOM ! XRHODJ mean on the X Y plane REAL, DIMENSION (:), INTENT(IN) :: PRHOM ! XRHODJ mean on the X Y plane
! localized at a mass level ! localized at a mass level
! !
REAL, DIMENSION(:), INTENT(IN) :: PAF,PCF ! vectors giving the nonvanishing
REAL, DIMENSION(:,:,:), INTENT(IN) :: PBF ! elements of the tri-diag.
! matrix in the pressure eq.
!
! arrays of sin or cos values
! for the FFT :
REAL, DIMENSION(:), INTENT(IN) :: PTRIGSX ! - along x
REAL, DIMENSION(:), INTENT(IN) :: PTRIGSY ! - along y
!
! decomposition in prime
! numbers for the FFT:
INTEGER, DIMENSION(19), INTENT(IN) :: KIFAXX ! - along x
INTEGER, DIMENSION(19), INTENT(IN) :: KIFAXY ! - along y
!
INTEGER, INTENT(IN) :: KITR ! number of iterations for the INTEGER, INTENT(IN) :: KITR ! number of iterations for the
! pressure solver ! pressure solver
! !
...@@ -74,14 +60,14 @@ END MODULE MODI_ZSOLVER ...@@ -74,14 +60,14 @@ END MODULE MODI_ZSOLVER
! !
! !
! !
! ######################################################################### ! #################################################################
SUBROUTINE ZSOLVER(HLBCX,HLBCY,PDXX,PDYY,PDZX,PDZY,PDZZ,PRHODJ,PTHETAV, & SUBROUTINE ZSOLVER( HLBCX, HLBCY, PDXX, PDYY, PDZX, PDZY, PDZZ, &
PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & PRHODJ, PTHETAV, PDXHATM, PDYHATM, PRHOM, &
KITR,PY,PPHI, & KITR, PY, PPHI, &
PAF_ZS,PBF_ZS,PCF_ZS, & PAF_ZS, PBF_ZS, PCF_ZS, &
PDXATH_ZS,PDYATH_ZS,PRHO_ZS,PBFB, & PDXATH_ZS, PDYATH_ZS, PRHO_ZS, PBFB, &
A_K,B_K,C_K,D_K) A_K, B_K, C_K, D_K ) !JUAN FULL ZSOLVER
! ######################################################################### ! #################################################################
! !
!!**** *CONRESOL * - solve an elliptic equation by the conjugate residual !!**** *CONRESOL * - solve an elliptic equation by the conjugate residual
!! method !! method
...@@ -181,20 +167,6 @@ REAL, INTENT(IN) :: PDYHATM ! mean grid increment in the y ...@@ -181,20 +167,6 @@ REAL, INTENT(IN) :: PDYHATM ! mean grid increment in the y
REAL, DIMENSION (:), INTENT(IN) :: PRHOM ! mean of XRHODJ on the plane x y REAL, DIMENSION (:), INTENT(IN) :: PRHOM ! mean of XRHODJ on the plane x y
! localized at a mass level ! localized at a mass level
! !
REAL, DIMENSION(:), INTENT(IN) :: PAF,PCF ! vectors giving the nonvanishing
REAL, DIMENSION(:,:,:), INTENT(IN) :: PBF ! elements of the tri-diag.
! matrix in the pressure eq.
!
! arrays of sin or cos values
! for the FFT :
REAL, DIMENSION(:), INTENT(IN) :: PTRIGSX ! - along x
REAL, DIMENSION(:), INTENT(IN) :: PTRIGSY ! - along y
!
! decomposition in prime
! numbers for the FFT:
INTEGER, DIMENSION(19), INTENT(IN) :: KIFAXX ! - along x
INTEGER, DIMENSION(19), INTENT(IN) :: KIFAXY ! - along y
!
INTEGER, INTENT(IN) :: KITR ! number of iterations for the INTEGER, INTENT(IN) :: KITR ! number of iterations for the
! pressure solver ! pressure solver
! !
...@@ -223,7 +195,6 @@ REAL :: ZALPHA, ZLAMBDA ! amplitude of the descent in the Conjugate ...@@ -223,7 +195,6 @@ REAL :: ZALPHA, ZLAMBDA ! amplitude of the descent in the Conjugate
REAL :: ZDOT_DELTA ! dot product of ZDELTA by itself REAL :: ZDOT_DELTA ! dot product of ZDELTA by itself
! !
INTEGER :: JIU,JJU,JKU INTEGER :: JIU,JJU,JKU
INTEGER :: JI,JJ,JK
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
!* 1. INITIALIZATIONS !* 1. INITIALIZATIONS
...@@ -274,11 +245,10 @@ ZRESIDUE = ZRESIDUE - PY ...@@ -274,11 +245,10 @@ ZRESIDUE = ZRESIDUE - PY
! !
!* 1.2 compute the vector: p^(0) = F^(-1)*( Q(PHI) - Y ) !* 1.2 compute the vector: p^(0) = F^(-1)*( Q(PHI) - Y )
! !
CALL ZSOLVER_INV(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & CALL ZSOLVER_INV( HLBCX, HLBCY, PDXHATM, PDYHATM, PRHOM, ZRESIDUE, ZP, &
PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,ZRESIDUE,ZP, & PAF_ZS, PBF_ZS, PCF_ZS, &
PAF_ZS,PBF_ZS,PCF_ZS, & PDXATH_ZS, PDYATH_ZS, PRHO_ZS, PBFB, &
PDXATH_ZS,PDYATH_ZS,PRHO_ZS,PBFB, & A_K, B_K, C_K, D_K )
A_K,B_K,C_K,D_K)
! !
!* 1.3 compute the vector: delta^(0) = Q ( p^(0) ) !* 1.3 compute the vector: delta^(0) = Q ( p^(0) )
! !
...@@ -313,15 +283,14 @@ DO JM = 1,KITR ...@@ -313,15 +283,14 @@ DO JM = 1,KITR
!$acc kernels present(ZRESIDUE) !$acc kernels present(ZRESIDUE)
ZRESIDUE(:,:,:) = ZRESIDUE(:,:,:) + ZLAMBDA * ZDELTA(:,:,:) ZRESIDUE(:,:,:) = ZRESIDUE(:,:,:) + ZLAMBDA * ZDELTA(:,:,:)
!$acc end kernels !$acc end kernels
! !
!* 2.4 compute the vector: q = F^(-1)*( Q(PHI) - Y ) !* 2.4 compute the vector: q = F^(-1)*( Q(PHI) - Y )
! !
CALL ZSOLVER_INV(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & CALL ZSOLVER_INV( HLBCX, HLBCY, PDXHATM, PDYHATM, PRHOM, ZRESIDUE, ZQ, &
PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,ZRESIDUE,ZQ, & PAF_ZS, PBF_ZS, PCF_ZS, &
PAF_ZS,PBF_ZS,PCF_ZS, & PDXATH_ZS, PDYATH_ZS, PRHO_ZS, PBFB, &
PDXATH_ZS,PDYATH_ZS,PRHO_ZS,PBFB, & A_K, B_K, C_K, D_K )
A_K,B_K,C_K,D_K) !
!
!* 2.5 compute the auxiliary field: ksi = Q ( q ) !* 2.5 compute the auxiliary field: ksi = Q ( q )
! !
!$acc data copyin( PTHETAV, ZQ ) !$acc data copyin( PTHETAV, ZQ )
......
...@@ -10,13 +10,12 @@ ...@@ -10,13 +10,12 @@
! !
INTERFACE INTERFACE
! !
SUBROUTINE ZSOLVER_INV(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & SUBROUTINE ZSOLVER_INV( HLBCX, HLBCY, PDXHATM, PDYHATM, PRHOM, &
PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,PY,PF_1_Y, & PY, PF_1_Y, PAF_ZS, PBF_ZS, PCF_ZS, &
PAF_ZS,PBF_ZS,PCF_ZS, & PDXATH_ZS, PDYATH_ZS, PRHO_ZS, PBFB, &
PDXATH_ZS,PDYATH_ZS,PRHO_ZS,PBFB, & A_K, B_K, C_K, D_K )
A_K,B_K,C_K,D_K) !
! !
!
IMPLICIT NONE IMPLICIT NONE
! !
CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! x-direction LBC type
...@@ -30,22 +29,8 @@ REAL, INTENT(IN) :: PDYHATM ! mean grid increment in the y ...@@ -30,22 +29,8 @@ REAL, INTENT(IN) :: PDYHATM ! mean grid increment in the y
REAL, DIMENSION (:), INTENT(IN) :: PRHOM ! mean of XRHODJ on the plane x y REAL, DIMENSION (:), INTENT(IN) :: PRHOM ! mean of XRHODJ on the plane x y
! localized at a mass level ! localized at a mass level
! !
REAL, DIMENSION(:), INTENT(IN) :: PAF,PCF ! vectors giving the nonvanishing
REAL, DIMENSION(:,:,:), INTENT(IN) :: PBF ! elements of the tri-diag.
! matrix in the pressure eq.
!
! arrays of sin or cos values
! for the FFT :
REAL, DIMENSION(:), INTENT(IN) :: PTRIGSX ! - along x
REAL, DIMENSION(:), INTENT(IN) :: PTRIGSY ! - along y
!
! decomposition in prime
! numbers for the FFT:
INTEGER, DIMENSION(19), INTENT(IN) :: KIFAXX ! - along x
INTEGER, DIMENSION(19), INTENT(IN) :: KIFAXY ! - along y
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PY ! RHS of the equation REAL, DIMENSION(:,:,:), INTENT(IN) :: PY ! RHS of the equation
! !
REAL, DIMENSION(:,:,:), INTENT(OUT):: PF_1_Y ! solution of the equation REAL, DIMENSION(:,:,:), INTENT(OUT):: PF_1_Y ! solution of the equation
! !
REAL, DIMENSION(:,:,:), INTENT(IN) :: PAF_ZS,PBF_ZS,PCF_ZS REAL, DIMENSION(:,:,:), INTENT(IN) :: PAF_ZS,PBF_ZS,PCF_ZS
...@@ -59,13 +44,12 @@ END SUBROUTINE ZSOLVER_INV ...@@ -59,13 +44,12 @@ END SUBROUTINE ZSOLVER_INV
END INTERFACE END INTERFACE
! !
END MODULE MODI_ZSOLVER_INV END MODULE MODI_ZSOLVER_INV
! ###################################################################### ! ################################################################
SUBROUTINE ZSOLVER_INV(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & SUBROUTINE ZSOLVER_INV( HLBCX, HLBCY, PDXHATM, PDYHATM, PRHOM, &
PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,PY,PF_1_Y, & PY, PF_1_Y, PAF_ZS, PBF_ZS, PCF_ZS, &
PAF_ZS,PBF_ZS,PCF_ZS, & PDXATH_ZS, PDYATH_ZS, PRHO_ZS, PBFB, &
PDXATH_ZS,PDYATH_ZS,PRHO_ZS,PBFB, & A_K, B_K, C_K, D_K )
A_K,B_K,C_K,D_K) ! ##############################################################
! ######################################################################
! !
!!**** *FLAT_INV * - Invert the flat quasi-laplacian operator !!**** *FLAT_INV * - Invert the flat quasi-laplacian operator
!! !!
...@@ -166,22 +150,8 @@ SUBROUTINE ZSOLVER_INV(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, & ...@@ -166,22 +150,8 @@ SUBROUTINE ZSOLVER_INV(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF, &
REAL, DIMENSION (:), INTENT(IN) :: PRHOM ! mean of XRHODJ on the plane x y REAL, DIMENSION (:), INTENT(IN) :: PRHOM ! mean of XRHODJ on the plane x y
! localized at a mass level ! localized at a mass level
! !
REAL, DIMENSION(:), INTENT(IN) :: PAF,PCF ! vectors giving the nonvanishing
REAL, DIMENSION(:,:,:), INTENT(IN) :: PBF ! elements of the tri-diag.
! matrix in the pressure eq.
!
! arrays of sin or cos values
! for the FFT :
REAL, DIMENSION(:), INTENT(IN) :: PTRIGSX ! - along x
REAL, DIMENSION(:), INTENT(IN) :: PTRIGSY ! - along y
!
! decomposition in prime
! numbers for the FFT:
INTEGER, DIMENSION(19), INTENT(IN) :: KIFAXX ! - along x
INTEGER, DIMENSION(19), INTENT(IN) :: KIFAXY ! - along y
!
REAL, DIMENSION(:,:,:), INTENT(IN) :: PY ! RHS of the equation REAL, DIMENSION(:,:,:), INTENT(IN) :: PY ! RHS of the equation
! !
REAL, DIMENSION(:,:,:), INTENT(OUT):: PF_1_Y ! solution of the equation REAL, DIMENSION(:,:,:), INTENT(OUT):: PF_1_Y ! solution of the equation
! !
REAL, DIMENSION(:,:,:), INTENT(IN) :: PAF_ZS,PBF_ZS,PCF_ZS REAL, DIMENSION(:,:,:), INTENT(IN) :: PAF_ZS,PBF_ZS,PCF_ZS
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment