diff --git a/src/MNH/gravity_impl.f90 b/src/MNH/gravity_impl.f90 index 2667b4733d7064abc13e445497f9079da23cdc90..0f934aa68f9cb304c59f3f68fcead668d94a1431 100644 --- a/src/MNH/gravity_impl.f90 +++ b/src/MNH/gravity_impl.f90 @@ -126,6 +126,9 @@ REAL, DIMENSION(:,:,:,:), allocatable :: ZR ! INTEGER :: JR ! +INTEGER :: JI,JJ,JK +INTEGER :: JIU,JJU,JKU +! !------------------------------------------------------------------------------- !$acc data present( PTHT, PRHODJ, PRT, PTHVREF, PRWS, PRTHS, PRRS, PRTHS_CLD, PRRS_CLD ) @@ -144,6 +147,10 @@ IF (MPPDB_INITIALIZED) THEN CALL MPPDB_CHECK(PRWS, "GRAVITY_IMPL beg:PRWS") END IF +JIU = size(ptht, 1 ) +JJU = size(ptht, 2 ) +JKU = size(ptht, 3 ) + allocate( zrws_grav( size( ptht, 1 ), size( ptht, 2 ), size( ptht, 3 ) ) ) allocate( zth ( size( ptht, 1 ), size( ptht, 2 ), size( ptht, 3 ) ) ) allocate( zr ( size( prt, 1 ), size( prt, 2 ), size( prt, 3 ), size( prt, 4 ) ) ) @@ -154,9 +161,10 @@ allocate( zr ( size( prt, 1 ), size( prt, 2 ), size( prt, 3 ), size( pr ! guess of Theta at future time-step !$acc kernels ZTH(:,:,:) = (PRTHS(:,:,:) + PRTHS_CLD(:,:,:)) / PRHODJ(:,:,:) * PTSTEP -DO JR = 1, KRR - ZR(:,:,:,JR) = (PRRS(:,:,:,JR) + PRRS_CLD(:,:,:,JR)) / PRHODJ(:,:,:) * PTSTEP -END DO +! +DO CONCURRENT ( JI=1:JIU,JJ=1:JJU,JK=1:JKU , JR = 1:KRR ) + ZR(JI,JJ,JK,JR) = (PRRS(JI,JJ,JK,JR) + PRRS_CLD(JI,JJ,JK,JR)) / PRHODJ(JI,JJ,JK) * PTSTEP +END DO ! CONCURRENT !$acc end kernels ! #ifndef MNH_OPENACC