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

Juan 27/10/2022:turb_hor_thermo_corr.f90, Strange BUG with Nvhpc/22.7+ ,...

Juan 27/10/2022:turb_hor_thermo_corr.f90, Strange BUG with Nvhpc/22.7+ , turb+I/O do SegFault => convert array syntax adding mnh_expand to eliminate listing reference to zflx$f/zwork$f
parent 2e8e0abe
No related branches found
No related tags found
No related merge requests found
...@@ -347,7 +347,9 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ...@@ -347,7 +347,9 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
#ifndef MNH_BITREP #ifndef MNH_BITREP
ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * ( ZTMP1_DEVICE(:,:,:)**2 + ZTMP2_DEVICE(:,:,:)**2 ) ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * ( ZTMP1_DEVICE(:,:,:)**2 + ZTMP2_DEVICE(:,:,:)**2 )
#else #else
ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * ( BR_P2(ZTMP1_DEVICE) + BR_P2(ZTMP2_DEVICE) ) !$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU)
ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * ( BR_P2(ZTMP1_DEVICE(:,:,:)) + BR_P2(ZTMP2_DEVICE(:,:,:)) )
!$mnh_end_expand_array()
#endif #endif
!$acc end kernels !$acc end kernels
ELSE ELSE
...@@ -356,7 +358,9 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ...@@ -356,7 +358,9 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
#ifndef MNH_BITREP #ifndef MNH_BITREP
ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * ZTMP1_DEVICE(:,:,:)**2 ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * ZTMP1_DEVICE(:,:,:)**2
#else #else
ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * BR_P2(ZTMP1_DEVICE) !$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU)
ZFLX(:,:,:) = XCTV * PLM(:,:,:) * PLEPS(:,:,:) * BR_P2(ZTMP1_DEVICE(:,:,:))
!$mnh_end_expand_array()
#endif #endif
!$acc end kernels !$acc end kernels
END IF END IF
...@@ -398,6 +402,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ...@@ -398,6 +402,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
CALL MYF_DEVICE(PDYY(:,:,IKB:IKB), ZTMP2_DEVICE(:,:,1:1)) CALL MYF_DEVICE(PDYY(:,:,IKB:IKB), ZTMP2_DEVICE(:,:,1:1))
! !
!$acc kernels !$acc kernels
!$mnh_expand_array(JI=1:JIU,JJ=1:JJU)
ZFLX(:,:,IKB) = XCTV * PLM(:,:,IKB) & ZFLX(:,:,IKB) = XCTV * PLM(:,:,IKB) &
* PLEPS(:,:,IKB) * ( & * PLEPS(:,:,IKB) * ( &
( ZTMP3_DEVICE(:,:,1) & ( ZTMP3_DEVICE(:,:,1) &
...@@ -414,12 +419,15 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ...@@ -414,12 +419,15 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
) * 0.5 * ( PDZY(:,:,IKB+1)+PDZY(:,:,IKB) ) & ) * 0.5 * ( PDZY(:,:,IKB+1)+PDZY(:,:,IKB) ) &
/ ZTMP2_DEVICE(:,:,1) & / ZTMP2_DEVICE(:,:,1) &
) ** 2 ) ) ** 2 )
!$mnh_end_expand_array()
#endif #endif
! !
ZFLX(:,:,IKB-1) = ZFLX(:,:,IKB) ZFLX(:,:,IKB-1) = ZFLX(:,:,IKB)
! !
IF ( KRRL > 0 ) THEN IF ( KRRL > 0 ) THEN
!$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU)
ZWORK(:,:,:) = ZFLX(:,:,:) * PATHETA(:,:,:) * PATHETA(:,:,:) ZWORK(:,:,:) = ZFLX(:,:,:) * PATHETA(:,:,:) * PATHETA(:,:,:)
!$mnh_end_expand_array()
END IF END IF
!$acc end kernels !$acc end kernels
! !
...@@ -620,8 +628,10 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ...@@ -620,8 +628,10 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
ZFLX(:,:,IKB-1) = ZFLX(:,:,IKB) ZFLX(:,:,IKB-1) = ZFLX(:,:,IKB)
! !
IF ( KRRL > 0 ) THEN IF ( KRRL > 0 ) THEN
!$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU)
ZWORK(:,:,:) = ZWORK(:,:,:) + & ZWORK(:,:,:) = ZWORK(:,:,:) + &
2. * PATHETA(:,:,:) * PAMOIST(:,:,:) * ZFLX(:,:,:) 2. * PATHETA(:,:,:) * PAMOIST(:,:,:) * ZFLX(:,:,:)
!$mnh_end_expand_array()
END IF END IF
!$acc end kernels !$acc end kernels
! stores <THl Rnp> ! stores <THl Rnp>
...@@ -726,7 +736,9 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ...@@ -726,7 +736,9 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
#ifndef MNH_BITREP #ifndef MNH_BITREP
ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * ( ZTMP1_DEVICE(:,:,:)**2 + ZTMP2_DEVICE(:,:,:)**2 ) ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * ( ZTMP1_DEVICE(:,:,:)**2 + ZTMP2_DEVICE(:,:,:)**2 )
#else #else
ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * ( BR_P2(ZTMP1_DEVICE) + BR_P2(ZTMP2_DEVICE) ) !$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU)
ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * ( BR_P2(ZTMP1_DEVICE(:,:,:)) + BR_P2(ZTMP2_DEVICE(:,:,:)) )
!$mnh_end_expand_array()
#endif #endif
!$acc end kernels !$acc end kernels
ELSE ELSE
...@@ -735,7 +747,9 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ...@@ -735,7 +747,9 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
#ifndef MNH_BITREP #ifndef MNH_BITREP
ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * ZTMP1_DEVICE(:,:,:)**2 ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * ZTMP1_DEVICE(:,:,:)**2
#else #else
ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * BR_P2(ZTMP1_DEVICE) !$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU)
ZFLX(:,:,:) = XCHV * PLM(:,:,:) * PLEPS(:,:,:) * BR_P2(ZTMP1_DEVICE(:,:,:))
!$mnh_end_expand_array()
#endif #endif
!$acc end kernels !$acc end kernels
END IF END IF
...@@ -776,6 +790,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ...@@ -776,6 +790,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
CALL MYF_DEVICE(PDYY(:,:,IKB:IKB),ZTMP6_DEVICE(:,:,1:1)) CALL MYF_DEVICE(PDYY(:,:,IKB:IKB),ZTMP6_DEVICE(:,:,1:1))
! !
!$acc kernels !$acc kernels
!$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU)
ZFLX(:,:,IKB) = XCHV * PLM(:,:,IKB) & ZFLX(:,:,IKB) = XCHV * PLM(:,:,IKB) &
* PLEPS(:,:,IKB) * ( & * PLEPS(:,:,IKB) * ( &
( ZTMP3_DEVICE(:,:,1) & ( ZTMP3_DEVICE(:,:,1) &
...@@ -792,12 +807,15 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ...@@ -792,12 +807,15 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) &
) * 0.5 * ( PDZY(:,:,IKB+1)+PDZY(:,:,IKB) ) & ) * 0.5 * ( PDZY(:,:,IKB+1)+PDZY(:,:,IKB) ) &
/ ZTMP6_DEVICE(:,:,1) & / ZTMP6_DEVICE(:,:,1) &
) ** 2 ) ) ** 2 )
!$mnh_end_expand_array()
#endif #endif
! !
ZFLX(:,:,IKB-1) = ZFLX(:,:,IKB) ZFLX(:,:,IKB-1) = ZFLX(:,:,IKB)
! !
IF ( KRRL > 0 ) THEN IF ( KRRL > 0 ) THEN
!$mnh_expand_array(JI=1:JIU,JJ=1:JJU,JK=1:JKU)
ZWORK(:,:,:) = ZWORK(:,:,:)+ PAMOIST(:,:,:) * PAMOIST(:,:,:) * ZFLX(:,:,:) ZWORK(:,:,:) = ZWORK(:,:,:)+ PAMOIST(:,:,:) * PAMOIST(:,:,:) * ZFLX(:,:,:)
!$mnh_end_expand_array()
END IF END IF
!$acc end kernels !$acc end kernels
! stores <Rnp Rnp> ! stores <Rnp Rnp>
......
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