Skip to content
Snippets Groups Projects
Commit 442b7cf1 authored by ESCOBAR MUNOZ Juan's avatar ESCOBAR MUNOZ Juan
Browse files

Juan 04/01/2021: MNH/ini_rain_ice.f90, for OpenACC , add acc enter data create...

Juan 04/01/2021: MNH/ini_rain_ice.f90, for OpenACC , add acc enter data create for X... module variable
parent 30290891
No related branches found
No related tags found
No related merge requests found
...@@ -675,9 +675,18 @@ XGAMINC_BOUND_MIN = 1.0E-1 ! Minimal value of (Lbda * D_cs^lim)**alpha ...@@ -675,9 +675,18 @@ XGAMINC_BOUND_MIN = 1.0E-1 ! Minimal value of (Lbda * D_cs^lim)**alpha
XGAMINC_BOUND_MAX = 1.0E7 ! Maximal value of (Lbda * D_cs^lim)**alpha XGAMINC_BOUND_MAX = 1.0E7 ! Maximal value of (Lbda * D_cs^lim)**alpha
ZRATE = EXP(LOG(XGAMINC_BOUND_MAX/XGAMINC_BOUND_MIN)/REAL(NGAMINC-1)) ZRATE = EXP(LOG(XGAMINC_BOUND_MAX/XGAMINC_BOUND_MIN)/REAL(NGAMINC-1))
! !
IF( .NOT.ALLOCATED(XGAMINC_RIM1) ) ALLOCATE( XGAMINC_RIM1(NGAMINC) ) IF( .NOT.ALLOCATED(XGAMINC_RIM1) ) THEN
IF( .NOT.ALLOCATED(XGAMINC_RIM2) ) ALLOCATE( XGAMINC_RIM2(NGAMINC) ) ALLOCATE( XGAMINC_RIM1(NGAMINC) )
IF( .NOT.ALLOCATED(XGAMINC_RIM4) ) ALLOCATE( XGAMINC_RIM4(NGAMINC) ) !$acc enter data create (XGAMINC_RIM1)
END IF
IF( .NOT.ALLOCATED(XGAMINC_RIM2) ) THEN
ALLOCATE( XGAMINC_RIM2(NGAMINC) )
!$acc enter data create (XGAMINC_RIM2)
END IF
IF( .NOT.ALLOCATED(XGAMINC_RIM4) ) THEN
ALLOCATE( XGAMINC_RIM4(NGAMINC) )
!$acc enter data create (XGAMINC_RIM4)
END IF
! !
DO J1=1,NGAMINC DO J1=1,NGAMINC
ZBOUND = XGAMINC_BOUND_MIN*ZRATE**(J1-1) ZBOUND = XGAMINC_BOUND_MIN*ZRATE**(J1-1)
...@@ -686,7 +695,7 @@ DO J1=1,NGAMINC ...@@ -686,7 +695,7 @@ DO J1=1,NGAMINC
XGAMINC_RIM4(J1) = GAMMA_INC(XNUS+XBG/XALPHAS ,ZBOUND) XGAMINC_RIM4(J1) = GAMMA_INC(XNUS+XBG/XALPHAS ,ZBOUND)
END DO END DO
! !
!$acc enter data copyin (XGAMINC_RIM1,XGAMINC_RIM2,XGAMINC_RIM4) !$acc update device (XGAMINC_RIM1,XGAMINC_RIM2,XGAMINC_RIM4)
! !
XRIMINTP1 = XALPHAS / LOG(ZRATE) XRIMINTP1 = XALPHAS / LOG(ZRATE)
XRIMINTP2 = 1.0 + XRIMINTP1*LOG( XDCSLIM/(XGAMINC_BOUND_MIN)**(1.0/XALPHAS) ) XRIMINTP2 = 1.0 + XRIMINTP1*LOG( XDCSLIM/(XGAMINC_BOUND_MIN)**(1.0/XALPHAS) )
...@@ -729,10 +738,18 @@ IND = 50 ! Interval number, collection efficiency and infinite diameter ...@@ -729,10 +738,18 @@ IND = 50 ! Interval number, collection efficiency and infinite diameter
ZESR = 1.0 ! factor used to integrate the dimensional distributions when ZESR = 1.0 ! factor used to integrate the dimensional distributions when
ZFDINFTY = 20.0 ! computing the kernels XKER_RACCSS, XKER_RACCS and XKER_SACCRG ZFDINFTY = 20.0 ! computing the kernels XKER_RACCSS, XKER_RACCS and XKER_SACCRG
! !
IF( .NOT.ALLOCATED(XKER_RACCSS) ) ALLOCATE( XKER_RACCSS(NACCLBDAS,NACCLBDAR) ) IF( .NOT.ALLOCATED(XKER_RACCSS) ) THEN
IF( .NOT.ALLOCATED(XKER_RACCS ) ) ALLOCATE( XKER_RACCS (NACCLBDAS,NACCLBDAR) ) ALLOCATE( XKER_RACCSS(NACCLBDAS,NACCLBDAR) )
IF( .NOT.ALLOCATED(XKER_SACCRG) ) ALLOCATE( XKER_SACCRG(NACCLBDAR,NACCLBDAS) ) !$acc enter data create(XKER_RACCSS)
!$acc enter data create(XKER_RACCSS,XKER_RACCS,XKER_SACCRG) END IF
IF( .NOT.ALLOCATED(XKER_RACCS ) ) THEN
ALLOCATE( XKER_RACCS (NACCLBDAS,NACCLBDAR) )
!$acc enter data create(XKER_RACCS)
END IF
IF( .NOT.ALLOCATED(XKER_SACCRG) ) THEN
ALLOCATE( XKER_SACCRG(NACCLBDAR,NACCLBDAS) )
!$acc enter data create(XKER_SACCRG)
END IF
! !
CALL READ_XKER_RACCS (KACCLBDAS,KACCLBDAR,KND, & CALL READ_XKER_RACCS (KACCLBDAS,KACCLBDAR,KND, &
PALPHAS,PNUS,PALPHAR,PNUR,PESR,PBS,PBR,PCS,PDS,PCR,PDR, & PALPHAS,PNUS,PALPHAR,PNUR,PESR,PBS,PBR,PCS,PDS,PCR,PDR, &
...@@ -946,8 +963,10 @@ IND = 50 ! Interval number, collection efficiency and infinite diameter ...@@ -946,8 +963,10 @@ IND = 50 ! Interval number, collection efficiency and infinite diameter
ZEGS = 1.0 ! factor used to integrate the dimensional distributions when ZEGS = 1.0 ! factor used to integrate the dimensional distributions when
ZFDINFTY = 20.0 ! computing the kernels XKER_SDRYG ZFDINFTY = 20.0 ! computing the kernels XKER_SDRYG
! !
IF( .NOT.ALLOCATED(XKER_SDRYG) ) ALLOCATE( XKER_SDRYG(NDRYLBDAG,NDRYLBDAS) ) IF( .NOT.ALLOCATED(XKER_SDRYG) ) THEN
!$acc enter data create(XKER_SDRYG) ALLOCATE( XKER_SDRYG(NDRYLBDAG,NDRYLBDAS) )
!$acc enter data create(XKER_SDRYG)
END IF
! !
CALL READ_XKER_SDRYG (KDRYLBDAG,KDRYLBDAS,KND, & CALL READ_XKER_SDRYG (KDRYLBDAG,KDRYLBDAS,KND, &
PALPHAG,PNUG,PALPHAS,PNUS,PEGS,PBS,PCG,PDG,PCS,PDS, & PALPHAG,PNUG,PALPHAS,PNUS,PEGS,PBS,PCG,PDG,PCS,PDS, &
...@@ -1019,8 +1038,10 @@ IND = 50 ! Number of interval used to integrate the dimensional ...@@ -1019,8 +1038,10 @@ IND = 50 ! Number of interval used to integrate the dimensional
ZEGR = 1.0 ! distributions when computing the kernel XKER_RDRYG ZEGR = 1.0 ! distributions when computing the kernel XKER_RDRYG
ZFDINFTY = 20.0 ZFDINFTY = 20.0
! !
IF( .NOT.ALLOCATED(XKER_RDRYG) ) ALLOCATE( XKER_RDRYG(NDRYLBDAG,NDRYLBDAR) ) IF( .NOT.ALLOCATED(XKER_RDRYG) ) THEN
!$acc enter data create(XKER_RDRYG) ALLOCATE( XKER_RDRYG(NDRYLBDAG,NDRYLBDAR) )
!$acc enter data create(XKER_RDRYG)
END IF
! !
CALL READ_XKER_RDRYG (KDRYLBDAG,KDRYLBDAR,KND, & CALL READ_XKER_RDRYG (KDRYLBDAG,KDRYLBDAR,KND, &
PALPHAG,PNUG,PALPHAR,PNUR,PEGR,PBR,PCG,PDG,PCR,PDR, & PALPHAG,PNUG,PALPHAR,PNUR,PEGR,PBR,PCG,PDG,PCR,PDR, &
......
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