Skip to content
Snippets Groups Projects
Commit cc410bae authored by RODIER Quentin's avatar RODIER Quentin
Browse files

Quentin 30/05/2024: add kernels to turb_ver_sv_*

parent 781de77f
No related branches found
No related tags found
No related merge requests found
...@@ -155,17 +155,10 @@ DO JSV=1,KSV ...@@ -155,17 +155,10 @@ DO JSV=1,KSV
! !
IF (TLES%LLES_CALL) THEN IF (TLES%LLES_CALL) THEN
! approximation: diagnosed explicitely (without implicit term) ! approximation: diagnosed explicitely (without implicit term)
CALL GZ_M_W_PHY(D,PSVM(:,:,JSV),PDZZ,ZWORK1) ZFLXZ(:,:) = PPSI_SV(:,:,JSV)*GZ_M_W(PSVM(:,:,JSV),PDZZ)**2
CALL MZF_PHY(D,ZFLXZ,ZWORK2) ZFLXZ(:,:) = ZCSV / ZCSVD * PLM * PLEPS * MZF(ZFLXZ(:,:) )
CALL MZF_PHY(D,PWM,ZWORK3) CALL LES_MEAN_SUBGRID_PHY(D,TLES, -2.*ZCSVD*SQRT(PTKEM)*ZFLXZ/PLEPS, TLES%X_LES_SUBGRID_DISS_Sv2(:,:,:,JSV) )
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) CALL LES_MEAN_SUBGRID_PHY(D,TLES, MZF(PWM)*ZFLXZ, TLES%X_LES_RES_W_SBG_Sv2(:,:,:,JSV) )
ZFLXZ(:,:) = PPSI_SV(:,:,JSV)*ZWORK1(:,:)**2
ZFLXZ(:,:) = ZCSV / ZCSVD * PLM(:,:) * PLEPS(:,:) * ZWORK2(:,:)
ZWORK1(:,:) = -2.*ZCSVD*SQRT(PTKEM(:,:))*ZFLXZ(:,:)/PLEPS(:,:)
ZWORK2(:,:) = ZWORK3(:,:)*ZFLXZ(:,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_DISS_Sv2(:,:,:,JSV) )
CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2, TLES%X_LES_RES_W_SBG_Sv2(:,:,:,JSV) )
END IF END IF
! !
! covariance ThvSv ! covariance ThvSv
...@@ -173,41 +166,21 @@ DO JSV=1,KSV ...@@ -173,41 +166,21 @@ DO JSV=1,KSV
IF (TLES%LLES_CALL) THEN IF (TLES%LLES_CALL) THEN
! approximation: diagnosed explicitely (without implicit term) ! approximation: diagnosed explicitely (without implicit term)
CALL ETHETA(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PATHETA,PSRCM,OOCEAN,OCOMPUTE_SRC,ZA) CALL ETHETA(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PATHETA,PSRCM,OOCEAN,OCOMPUTE_SRC,ZA)
! ZFLXZ(:,:)= ( CSTURB%XCSHF * PPHI3 + ZCSV * PPSI_SV(:,:,JSV) ) &
CALL GZ_M_W_PHY(D,PTHLM,PDZZ,ZWORK1) * GZ_M_W(PTHLM,PDZZ) &
CALL GZ_M_W_PHY(D,PSVM(:,:,JSV),PDZZ,ZWORK2) * GZ_M_W(PSVM(:,:,JSV),PDZZ)
! ZFLXZ(:,:)= PLM * PLEPS / (2.*ZCTSVD) * MZF(ZFLXZ)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) CALL LES_MEAN_SUBGRID_PHY(D, TLES, ZA*ZFLXZ, TLES%X_LES_SUBGRID_SvThv(:,:,:,JSV) )
ZFLXZ(:,:)= ( CSTURB%XCSHF * PPHI3(:,:) + ZCSV * PPSI_SV(:,:,JSV) ) & CALL LES_MEAN_SUBGRID_PHY(D, TLES, -CST%XG/PTHVREF/3.*ZA*ZFLXZ, TLES%X_LES_SUBGRID_SvPz(:,:,:,JSV), .TRUE.)
* ZWORK1(:,:) * ZWORK2(:,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
!
CALL MZF_PHY(D,ZFLXZ,ZWORK3)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZFLXZ(:,:)= PLM(:,:) * PLEPS(:,:) / (2.*ZCTSVD) * ZWORK3(:,:)
ZWORK1(:,:) = ZA(:,:)*ZFLXZ(:,:)
ZWORK2(:,:) = -CST%XG/PTHVREF(:,:)/3.*ZA(:,:)*ZFLXZ(:,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
!
CALL LES_MEAN_SUBGRID_PHY(D,TLES, ZWORK1, TLES%X_LES_SUBGRID_SvThv(:,:,:,JSV) )
CALL LES_MEAN_SUBGRID_PHY(D,TLES, ZWORK2, TLES%X_LES_SUBGRID_SvPz(:,:,:,JSV), .TRUE.)
! !
IF (KRR>=1) THEN IF (KRR>=1) THEN
CALL EMOIST(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PAMOIST,PSRCM,OOCEAN,ZA) CALL EMOIST(D,CST,KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PAMOIST,PSRCM,OOCEAN,ZA)
! ZFLXZ(:,:)= ( ZCSV * PPSI3 + ZCSV * PPSI_SV(:,:,JSV) ) &
CALL GZ_M_W_PHY(D,PRM(:,:,1),PDZZ,ZWORK1) * GZ_M_W(PRM(:,:,1),PDZZ) &
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) * GZ_M_W(PSVM(:,:,JSV),PDZZ)
ZFLXZ(:,:)= ( ZCSV * PPSI3(:,:) + ZCSV * PPSI_SV(:,:,JSV) ) & ZFLXZ(:,:)= PLM * PLEPS / (2.*ZCQSVD) * MZF(ZFLXZ)
* ZWORK1(:,:) * ZWORK2(:,:) CALL LES_MEAN_SUBGRID_PHY(D, TLES, ZA*ZFLXZ, TLES%X_LES_SUBGRID_SvThv(:,:,:,JSV) , .TRUE.)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) CALL LES_MEAN_SUBGRID_PHY(D, TLES, -CST%XG/PTHVREF/3.*ZA*ZFLXZ, TLES%X_LES_SUBGRID_SvPz(:,:,:,JSV), .TRUE.)
CALL MZF_PHY(D,ZFLXZ,ZWORK3)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZFLXZ(:,:)= PLM(:,:) * PLEPS(:,:) / (2.*ZCQSVD) * ZWORK3(:,:)
ZWORK1(:,:) = ZA(:,:)*ZFLXZ(:,:)
ZWORK2(:,:) = -CST%XG/PTHVREF(:,:)/3.*ZA(:,:)*ZFLXZ(:,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
CALL LES_MEAN_SUBGRID_PHY(D,TLES, ZWORK1, TLES%X_LES_SUBGRID_SvThv(:,:,:,JSV) , .TRUE.)
CALL LES_MEAN_SUBGRID_PHY(D,TLES, ZWORK2, TLES%X_LES_SUBGRID_SvPz(:,:,:,JSV), .TRUE.)
END IF END IF
END IF END IF
! !
......
...@@ -326,13 +326,17 @@ IIJE=D%NIJE ...@@ -326,13 +326,17 @@ IIJE=D%NIJE
IIJB=D%NIJB IIJB=D%NIJB
! !
IF (TURBN%LHARAT) THEN IF (TURBN%LHARAT) THEN
!$acc kernels
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZKEFF(:,:) = PLM(:,:) * SQRT(PTKEM(:,:)) ZKEFF(:,:) = PLM(:,:) * SQRT(PTKEM(:,:))
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
!$acc end kernels
ELSE ELSE
!$acc kernels
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZWORK1(:,:) = PLM(:,:)*SQRT(PTKEM(:,:)) ZWORK1(:,:) = PLM(:,:)*SQRT(PTKEM(:,:))
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
!$acc end kernels
CALL MZM_PHY(D,ZWORK1,ZKEFF) CALL MZM_PHY(D,ZWORK1,ZKEFF)
ENDIF ENDIF
! !
...@@ -354,17 +358,25 @@ DO JSV=1,KSV ...@@ -354,17 +358,25 @@ DO JSV=1,KSV
! !
! Preparation of the arguments for TRIDIAG ! Preparation of the arguments for TRIDIAG
IF (TURBN%LHARAT) THEN IF (TURBN%LHARAT) THEN
!$acc kernels
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZA(:,:) = -PTSTEP * ZKEFF(:,:) * ZMZMRHODJ(:,:) & ZA(:,:) = -PTSTEP * ZKEFF(:,:) * ZMZMRHODJ(:,:) &
/ PDZZ(:,:)**2 / PDZZ(:,:)**2
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
!$acc end kernels
ELSE ELSE
!$acc kernels
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZA(:,:) = -PTSTEP*ZCSV*PPSI_SV(:,:,JSV) * & ZA(:,:) = -PTSTEP*ZCSV*PPSI_SV(:,:,JSV) * &
ZKEFF(:,:) * ZMZMRHODJ(:,:) / PDZZ(:,:)**2 ZKEFF(:,:) * ZMZMRHODJ(:,:) / PDZZ(:,:)**2
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
!$acc end kernels
ENDIF ENDIF
!$acc kernels
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZSOURCE(:,:) = 0. ZSOURCE(:,:) = 0.
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
!$acc end kernels
! !
! Compute the sources for the JSVth scalar variable ! Compute the sources for the JSVth scalar variable
...@@ -373,68 +385,73 @@ DO JSV=1,KSV ...@@ -373,68 +385,73 @@ DO JSV=1,KSV
!* in 1DIM case, the part of energy released in horizontal flux !* in 1DIM case, the part of energy released in horizontal flux
! is taken into account in the vertical part ! is taken into account in the vertical part
IF (TURBN%CTURBDIM=='3DIM') THEN IF (TURBN%CTURBDIM=='3DIM') THEN
!$acc kernels
!$mnh_expand_array(JIJ=IIJB:IIJE) !$mnh_expand_array(JIJ=IIJB:IIJE)
ZSOURCE(:,IKB) = (TURBN%XIMPL*PSFSVP(:,JSV) + PEXPL*PSFSVM(:,JSV)) / & ZSOURCE(:,IKB) = (TURBN%XIMPL*PSFSVP(:,JSV) + PEXPL*PSFSVM(:,JSV)) / &
PDZZ(:,IKB) * PDIRCOSZW(:) & PDZZ(:,IKB) * PDIRCOSZW(:) &
* 0.5 * (1. + PRHODJ(:,IKA) / PRHODJ(:,IKB)) * 0.5 * (1. + PRHODJ(:,IKA) / PRHODJ(:,IKB))
!$mnh_end_expand_array(JIJ=IIJB:IIJE) !$mnh_end_expand_array(JIJ=IIJB:IIJE)
!$acc end kernels
ELSE ELSE
!$acc kernels
!$mnh_expand_array(JIJ=IIJB:IIJE) !$mnh_expand_array(JIJ=IIJB:IIJE)
ZSOURCE(:,IKB) = (TURBN%XIMPL*PSFSVP(:,JSV) + PEXPL*PSFSVM(:,JSV)) / & ZSOURCE(:,IKB) = (TURBN%XIMPL*PSFSVP(:,JSV) + PEXPL*PSFSVM(:,JSV)) / &
PDZZ(:,IKB) / PDIRCOSZW(:) & PDZZ(:,IKB) / PDIRCOSZW(:) &
* 0.5 * (1. + PRHODJ(:,IKA) / PRHODJ(:,IKB)) * 0.5 * (1. + PRHODJ(:,IKA) / PRHODJ(:,IKB))
!$mnh_end_expand_array(JIJ=IIJB:IIJE) !$mnh_end_expand_array(JIJ=IIJB:IIJE)
!$acc end kernels
END IF END IF
!$acc kernels
ZSOURCE(:,IKTB+1:IKTE-1) = 0. ZSOURCE(:,IKTB+1:IKTE-1) = 0.
ZSOURCE(:,IKE) = 0. ZSOURCE(:,IKE) = 0.
!$acc end kernels
! !
! Obtention of the split JSV scalar variable at t+ deltat ! Obtention of the split JSV scalar variable at t+ deltat
CALL TRIDIAG(D,PSVM(:,:,JSV),ZA,PTSTEP,PEXPL,TURBN%XIMPL,PRHODJ,ZSOURCE,ZRES) CALL TRIDIAG(D,PSVM(:,:,JSV),ZA,PTSTEP,PEXPL,TURBN%XIMPL,PRHODJ,ZSOURCE,ZRES)
! !
! Compute the equivalent tendency for the JSV scalar variable ! Compute the equivalent tendency for the JSV scalar variable
!$acc kernels
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
PRSVS(:,:,JSV)= PRSVS(:,:,JSV)+ & PRSVS(:,:,JSV)= PRSVS(:,:,JSV)+ &
PRHODJ(:,:)*(ZRES(:,:)-PSVM(:,:,JSV))/PTSTEP PRHODJ(:,:)*(ZRES(:,:)-PSVM(:,:,JSV))/PTSTEP
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) !$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
!$acc end kernels
! !
IF ( (TURBN%LTURB_FLX .AND. TPFILE%LOPENED) .OR. TLES%LLES_CALL .OR. OFLYER ) THEN IF ( (TURBN%LTURB_FLX .AND. TPFILE%LOPENED) .OR. TLES%LLES_CALL .OR. OFLYER ) THEN
! Diagnostic of the cartesian vertical flux ! Diagnostic of the cartesian vertical flux
! !
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) ZFLXZ(:,:) = -ZCSV * PPSI_SV(:,:,JSV) * MZM(PLM*SQRT(PTKEM)) / PDZZ * &
ZWORK1(:,:) = PLM(:,:)*SQRT(PTKEM(:,:)) DZM( TURBN%XIMPL*ZRES(:,:) + PEXPL*PSVM(:,:,JSV) )
ZWORK2(:,:) = TURBN%XIMPL*ZRES(:,:) + PEXPL*PSVM(:,:,JSV)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
CALL MZM_PHY(D,ZWORK1,ZWORK3)
CALL DZM_PHY(D,ZWORK2,ZWORK4)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZFLXZ(:,:) = -ZCSV * PPSI_SV(:,:,JSV) * ZWORK3(:,:) &
/ PDZZ(:,:) * &
ZWORK4(:,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
! surface flux ! surface flux
!* in 3DIM case, a part of the flux goes vertically, and another goes horizontally !* in 3DIM case, a part of the flux goes vertically, and another goes horizontally
! (in presence of slopes) ! (in presence of slopes)
!* in 1DIM case, the part of energy released in horizontal flux !* in 1DIM case, the part of energy released in horizontal flux
! is taken into account in the vertical part ! is taken into account in the vertical part
IF (TURBN%CTURBDIM=='3DIM') THEN IF (TURBN%CTURBDIM=='3DIM') THEN
!$acc kernels
!$mnh_expand_array(JIJ=IIJB:IIJE) !$mnh_expand_array(JIJ=IIJB:IIJE)
ZFLXZ(:,IKB) = (TURBN%XIMPL*PSFSVP(:,JSV) + PEXPL*PSFSVM(:,JSV)) & ZFLXZ(:,IKB) = (TURBN%XIMPL*PSFSVP(:,JSV) + PEXPL*PSFSVM(:,JSV)) &
* PDIRCOSZW(:) * PDIRCOSZW(:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE) !$mnh_end_expand_array(JIJ=IIJB:IIJE)
!$acc end kernels
ELSE ELSE
!$acc kernels
!$mnh_expand_array(JIJ=IIJB:IIJE) !$mnh_expand_array(JIJ=IIJB:IIJE)
ZFLXZ(:,IKB) = (TURBN%XIMPL*PSFSVP(:,JSV) + PEXPL*PSFSVM(:,JSV)) & ZFLXZ(:,IKB) = (TURBN%XIMPL*PSFSVP(:,JSV) + PEXPL*PSFSVM(:,JSV)) &
/ PDIRCOSZW(:) / PDIRCOSZW(:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE) !$mnh_end_expand_array(JIJ=IIJB:IIJE)
!$acc end kernels
END IF END IF
! extrapolates the flux under the ground so that the vertical average with ! extrapolates the flux under the ground so that the vertical average with
! the IKB flux gives the ground value ! the IKB flux gives the ground value
! !
!$acc kernels
!$mnh_expand_array(JIJ=IIJB:IIJE) !$mnh_expand_array(JIJ=IIJB:IIJE)
ZFLXZ(:,IKA) = ZFLXZ(:,IKB) ZFLXZ(:,IKA) = ZFLXZ(:,IKB)
!$mnh_end_expand_array(JIJ=IIJB:IIJE) !$mnh_end_expand_array(JIJ=IIJB:IIJE)
!$acc end kernels
IF ( OFLYER ) THEN IF ( OFLYER ) THEN
!$acc kernels
DO JK=IKTB+1,IKTE-1 DO JK=IKTB+1,IKTE-1
!$mnh_expand_array(JIJ=IIJB:IIJE) !$mnh_expand_array(JIJ=IIJB:IIJE)
PWSV(:,JK,JSV)=0.5*(ZFLXZ(:,JK)+ZFLXZ(:,JK+IKL)) PWSV(:,JK,JSV)=0.5*(ZFLXZ(:,JK)+ZFLXZ(:,JK+IKL))
...@@ -444,6 +461,7 @@ DO JSV=1,KSV ...@@ -444,6 +461,7 @@ DO JSV=1,KSV
PWSV(:,IKB,JSV)=0.5*(ZFLXZ(:,IKB)+ZFLXZ(:,IKB+IKL)) PWSV(:,IKB,JSV)=0.5*(ZFLXZ(:,IKB)+ZFLXZ(:,IKB+IKL))
PWSV(:,IKE,JSV)=PWSV(:,IKE-IKL,JSV) PWSV(:,IKE,JSV)=PWSV(:,IKE-IKL,JSV)
!$mnh_end_expand_array(JIJ=IIJB:IIJE) !$mnh_end_expand_array(JIJ=IIJB:IIJE)
!$acc end kernels
END IF END IF
END IF END IF
! !
...@@ -462,6 +480,7 @@ DO JSV=1,KSV ...@@ -462,6 +480,7 @@ DO JSV=1,KSV
NDIMS = 3, & NDIMS = 3, &
LTIMEDEP = .TRUE. ) LTIMEDEP = .TRUE. )
! !
!$acc update self(ZFLXZ)
CALL IO_FIELD_WRITE_PHY(D,TPFILE,TZFIELD,ZFLXZ) CALL IO_FIELD_WRITE_PHY(D,TPFILE,TZFIELD,ZFLXZ)
END IF END IF
! !
...@@ -469,35 +488,13 @@ DO JSV=1,KSV ...@@ -469,35 +488,13 @@ DO JSV=1,KSV
! !
IF (TLES%LLES_CALL) THEN IF (TLES%LLES_CALL) THEN
CALL SECOND_MNH(ZTIME1) CALL SECOND_MNH(ZTIME1)
! CALL LES_MEAN_SUBGRID_PHY(D, TLES, MZF(ZFLXZ), TLES%X_LES_SUBGRID_WSv(:,:,:,JSV) )
CALL MZF_PHY(D,ZFLXZ,ZWORK1) CALL LES_MEAN_SUBGRID_PHY(D, TLES, GZ_W_M(PWM,PDZZ)*MZF(ZFLXZ), &
CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK1, TLES%X_LES_SUBGRID_WSv(:,:,:,JSV) ) TLES%X_LES_RES_ddxa_W_SBG_UaSv(:,:,:,JSV) )
! CALL LES_MEAN_SUBGRID_PHY(D, TLES, MZF(GZ_M_W(PSVM(:,:,JSV),PDZZ)*ZFLXZ), &
CALL GZ_W_M_PHY(D,PWM,PDZZ,ZWORK2) TLES%X_LES_RES_ddxa_Sv_SBG_UaSv(:,:,:,JSV) )
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT) CALL LES_MEAN_SUBGRID_PHY(D, TLES, -ZCSVP*SQRT(PTKEM)/PLM*MZF(ZFLXZ), TLES%X_LES_SUBGRID_SvPz(:,:,:,JSV) )
ZWORK3(:,:) = ZWORK2(:,:) * ZWORK1(:,:) CALL LES_MEAN_SUBGRID_PHY(D, TLES, MZF(PWM*ZFLXZ), TLES%X_LES_RES_W_SBG_WSv(:,:,:,JSV) )
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_ddxa_W_SBG_UaSv(:,:,:,JSV) )
!
CALL GZ_M_W_PHY(D,PSVM(:,:,JSV),PDZZ,ZWORK1)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZWORK2(:,:) = ZWORK1(:,:) * ZFLXZ(:,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
CALL MZF_PHY(D,ZWORK2,ZWORK3)
CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK3, TLES%X_LES_RES_ddxa_Sv_SBG_UaSv(:,:,:,JSV) )
!
CALL MZF_PHY(D,ZFLXZ,ZWORK1)
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZWORK2(:,:) = -ZCSVP*SQRT(PTKEM(:,:))/PLM(:,:)*ZWORK1(:,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2, TLES%X_LES_SUBGRID_SvPz(:,:,:,JSV) )
!
!$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
ZWORK1(:,:) = PWM(:,:)*ZFLXZ(:,:)
!$mnh_end_expand_array(JIJ=IIJB:IIJE,JK=1:IKT)
CALL MZF_PHY(D,ZWORK1,ZWORK2)
CALL LES_MEAN_SUBGRID_PHY(D,TLES,ZWORK2, TLES%X_LES_RES_W_SBG_WSv(:,:,:,JSV) )
!
CALL SECOND_MNH(ZTIME2) CALL SECOND_MNH(ZTIME2)
TLES%XTIME_LES = TLES%XTIME_LES + ZTIME2 - ZTIME1 TLES%XTIME_LES = TLES%XTIME_LES + ZTIME2 - ZTIME1
END IF END IF
......
...@@ -340,6 +340,6 @@ PHYEX_OPTDEFAULT = --addMPPDB_CHECKS --addStack MESONH --stopScopes toto --mathF ...@@ -340,6 +340,6 @@ PHYEX_OPTDEFAULT = --addMPPDB_CHECKS --addStack MESONH --stopScopes toto --mathF
PHYEX_LIST = $(notdir $(shell find PHYEX/micro PHYEX/turb -follow -type f -name "*.f*" -not -name "minpack.f90" | sed -e 's/\(.*\)\(\.\).*/\1.D/g' )) PHYEX_LIST = $(notdir $(shell find PHYEX/micro PHYEX/turb -follow -type f -name "*.f*" -not -name "minpack.f90" | sed -e 's/\(.*\)\(\.\).*/\1.D/g' ))
$(PHYEX_LIST) : PYFT = pyft_tool.py $(PHYEX_OPTDEFAULT) $(PHYEX_LIST) : PYFT = pyft_tool.py $(PHYEX_OPTDEFAULT)
PHYEX_SHUMAN = mode_tke_eps_sources.D mode_turb_ver_thermo_flux.D mode_turb_ver_thermo_corr.D mode_turb_ver_dyn_flux.D mode_turb_hor_splt.D PHYEX_SHUMAN = mode_tke_eps_sources.D mode_turb_ver_thermo_flux.D mode_turb_ver_thermo_corr.D mode_turb_ver_dyn_flux.D mode_turb_hor_splt.D mode_turb_ver_sv_corr.D mode_turb_ver_sv_flux.D
$(PHYEX_SHUMAN) : PYFT = pyft_tool.py --shumanFUNCtoCALL --expandAllArraysConcurrent $(PHYEX_OPTDEFAULT) $(PHYEX_SHUMAN) : PYFT = pyft_tool.py --shumanFUNCtoCALL --expandAllArraysConcurrent $(PHYEX_OPTDEFAULT)
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