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

Quentin 28/07/2022: move outside of turb, computation of ZDIST for OCEAN (+not used yet)

parent 1ad2e6a1
No related branches found
No related tags found
No related merge requests found
...@@ -238,11 +238,9 @@ USE MODD_PARAMETERS ...@@ -238,11 +238,9 @@ USE MODD_PARAMETERS
USE MODD_TURB_n, ONLY: LHGRAD, XCOEFHGRADTHL, XCOEFHGRADRM, XALTHGRAD, XCLDTHOLD USE MODD_TURB_n, ONLY: LHGRAD, XCOEFHGRADTHL, XCOEFHGRADRM, XALTHGRAD, XCLDTHOLD
USE MODD_CONF USE MODD_CONF
USE MODD_LES USE MODD_LES
USE MODD_DIM_n
USE MODD_OCEANH USE MODD_OCEANH
USE MODD_REF, ONLY: LCOUPLES USE MODD_REF, ONLY: LCOUPLES
USE MODD_TURB_n USE MODD_TURB_n
USE MODD_FRC
! !
USE MODI_GRADIENT_U USE MODI_GRADIENT_U
USE MODI_GRADIENT_V USE MODI_GRADIENT_V
...@@ -258,8 +256,6 @@ USE MODE_IO_FIELD_WRITE, ONLY: IO_FIELD_WRITE ...@@ -258,8 +256,6 @@ USE MODE_IO_FIELD_WRITE, ONLY: IO_FIELD_WRITE
USE MODE_PRANDTL USE MODE_PRANDTL
! !
USE MODI_SECOND_MNH USE MODI_SECOND_MNH
USE MODE_ll
USE MODE_GATHER_ll
! !
IMPLICIT NONE IMPLICIT NONE
! !
...@@ -384,24 +380,14 @@ INTEGER :: IIB,IJB ! Lower bounds of the physical ...@@ -384,24 +380,14 @@ INTEGER :: IIB,IJB ! Lower bounds of the physical
INTEGER :: IIE,IJE ! Upper bounds of the physical INTEGER :: IIE,IJE ! Upper bounds of the physical
! sub-domain in x and y directions ! sub-domain in x and y directions
! !
REAL, DIMENSION(:), ALLOCATABLE :: ZXHAT_ll ! Position x in the conformal
! plane (array on the complete domain)
REAL, DIMENSION(:), ALLOCATABLE :: ZYHAT_ll ! Position y in the conformal
! plane (array on the complete domain)
!
!
REAL :: ZTIME1, ZTIME2 REAL :: ZTIME1, ZTIME2
REAL :: ZDELTAX REAL :: ZDELTAX
REAL :: ZXBEG,ZXEND,ZYBEG,ZYEND ! Forcing size for ocean deep convection
REAL, DIMENSION(SIZE(XXHAT),SIZE(XYHAT)) :: ZDIST ! distance
! from the center of the cooling
REAL :: ZFLPROV REAL :: ZFLPROV
INTEGER :: JKM ! vertical index loop INTEGER :: JKM ! vertical index loop
INTEGER :: JSW INTEGER :: JSW
REAL :: ZSWA ! index for time flux interpolation REAL :: ZSWA ! index for time flux interpolation
! !
INTEGER :: IIU, IJU INTEGER :: IIU, IJU
INTEGER :: IRESP
INTEGER :: JK INTEGER :: JK
LOGICAL :: GUSERV ! flag to use water LOGICAL :: GUSERV ! flag to use water
LOGICAL :: GFTH2 ! flag to use w'th'2 LOGICAL :: GFTH2 ! flag to use w'th'2
...@@ -421,34 +407,6 @@ IF (LHOOK) CALL DR_HOOK('TURB_VER_THERMO_FLUX',0,ZHOOK_HANDLE) ...@@ -421,34 +407,6 @@ IF (LHOOK) CALL DR_HOOK('TURB_VER_THERMO_FLUX',0,ZHOOK_HANDLE)
! Size for a given proc & a given model ! Size for a given proc & a given model
IIU=SIZE(PTHLM,1) IIU=SIZE(PTHLM,1)
IJU=SIZE(PTHLM,2) IJU=SIZE(PTHLM,2)
!
!! Compute Shape of sfc flux for Oceanic Deep Conv Case
!
IF (OOCEAN .AND. LDEEPOC) THEN
!* COMPUTES THE PHYSICAL SUBDOMAIN BOUNDS
ALLOCATE(ZXHAT_ll(NIMAX_ll+2*JPHEXT),ZYHAT_ll(NJMAX_ll+2*JPHEXT))
!compute ZXHAT_ll = position in the (0:Lx) domain 1 (Lx=Size of domain1 )
!compute XXHAT_ll = position in the (L0_subproc,Lx_subproc) domain for the current subproc
! L0_subproc as referenced in the full domain 1
CALL GATHERALL_FIELD_ll('XX',XXHAT,ZXHAT_ll,IRESP)
CALL GATHERALL_FIELD_ll('YY',XYHAT,ZYHAT_ll,IRESP)
CALL GET_DIM_EXT_ll('B',IIU,IJU)
CALL GET_INDICE_ll(IIB,IJB,IIE,IJE,IIU,IJU)
DO JJ = IJB,IJE
DO JI = IIB,IIE
ZDIST(JI,JJ) = SQRT( &
(( (XXHAT(JI)+XXHAT(JI+1))*0.5 - XCENTX_OC ) / XRADX_OC)**2 + &
(( (XYHAT(JJ)+XYHAT(JJ+1))*0.5 - XCENTY_OC ) / XRADY_OC)**2 &
)
END DO
END DO
DO JJ=IJB,IJE
DO JI=IIB,IIE
IF ( ZDIST(JI,JJ) > 1.) XSSTFL(JI,JJ)=0.
END DO
END DO
END IF !END DEEP OCEAN CONV CASE
!
IKT =SIZE(PTHLM,3) IKT =SIZE(PTHLM,3)
IKTE =IKT-JPVEXT_TURB IKTE =IKT-JPVEXT_TURB
IKTB =1+JPVEXT_TURB IKTB =1+JPVEXT_TURB
...@@ -1025,9 +983,6 @@ IF ( ((OTURB_FLX .AND. TPFILE%LOPENED) .OR. LLES_CALL) .AND. (KRRL > 0) ) THEN ...@@ -1025,9 +983,6 @@ IF ( ((OTURB_FLX .AND. TPFILE%LOPENED) .OR. LLES_CALL) .AND. (KRRL > 0) ) THEN
END IF END IF
! !
END IF !end of <w Rc> END IF !end of <w Rc>
IF (OOCEAN .AND. LDEEPOC) THEN
DEALLOCATE(ZXHAT_ll,ZYHAT_ll)
END IF
! !
!---------------------------------------------------------------------------- !----------------------------------------------------------------------------
IF (LHOOK) CALL DR_HOOK('TURB_VER_THERMO_FLUX',1,ZHOOK_HANDLE) IF (LHOOK) CALL DR_HOOK('TURB_VER_THERMO_FLUX',1,ZHOOK_HANDLE)
......
...@@ -261,6 +261,7 @@ USE MODD_DEEP_CONVECTION_n ...@@ -261,6 +261,7 @@ USE MODD_DEEP_CONVECTION_n
USE MODD_DEF_EDDY_FLUX_n ! Ajout PP USE MODD_DEF_EDDY_FLUX_n ! Ajout PP
USE MODD_DEF_EDDYUV_FLUX_n ! Ajout PP USE MODD_DEF_EDDYUV_FLUX_n ! Ajout PP
USE MODD_DIAG_IN_RUN, ONLY: LDIAG_IN_RUN, XCURRENT_TKE_DISS USE MODD_DIAG_IN_RUN, ONLY: LDIAG_IN_RUN, XCURRENT_TKE_DISS
USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll
USE MODD_DRAGBLDG_n USE MODD_DRAGBLDG_n
USE MODD_DRAGTREE_n USE MODD_DRAGTREE_n
USE MODD_DUST USE MODD_DUST
...@@ -319,6 +320,7 @@ use mode_budget, only: Budget_store_end, Budget_store_init ...@@ -319,6 +320,7 @@ use mode_budget, only: Budget_store_end, Budget_store_init
USE MODE_DATETIME USE MODE_DATETIME
USE MODE_DUST_PSD USE MODE_DUST_PSD
USE MODE_ll USE MODE_ll
USE MODE_GATHER_ll
USE MODE_MNH_TIMING USE MODE_MNH_TIMING
USE MODE_MODELN_HANDLER USE MODE_MODELN_HANDLER
USE MODE_MPPDB USE MODE_MPPDB
...@@ -422,7 +424,7 @@ INTEGER :: IIU, IJU, IKU ! dimensional indexes ...@@ -422,7 +424,7 @@ INTEGER :: IIU, IJU, IKU ! dimensional indexes
! !
INTEGER :: JSV ! Loop index for Scalar Variables INTEGER :: JSV ! Loop index for Scalar Variables
INTEGER :: JSWB ! loop on SW spectral bands INTEGER :: JSWB ! loop on SW spectral bands
INTEGER :: IIB,IIE,IJB,IJE, IKB, IKE INTEGER :: IIB,IIE,IJB,IJE, IKB, IKE, JI,JJ
INTEGER :: IMODEIDX INTEGER :: IMODEIDX
! index values for the Beginning or the End of the physical ! index values for the Beginning or the End of the physical
! domain in x and y directions ! domain in x and y directions
...@@ -456,6 +458,9 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZPROSOL1(:),ZPROSOL2(:) ! Funtions for penetr ...@@ -456,6 +458,9 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZPROSOL1(:),ZPROSOL2(:) ! Funtions for penetr
! !
REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZLENGTHM, ZLENGTHH, ZMFMOIST !LHARAT turb option from AROME REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZLENGTHM, ZLENGTHH, ZMFMOIST !LHARAT turb option from AROME
REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTDIFF, ZTDISS REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTDIFF, ZTDISS
REAL, DIMENSION(:),ALLOCATABLE :: ZXHAT_ll,ZYHAT_ll ! Position x/y in the conformal
! plane (array on the complete domain)
REAL, DIMENSION(:,:), ALLOCATABLE :: ZDIST ! distance from the center of the cooling
! !
!----------------------------------------------------------------------------- !-----------------------------------------------------------------------------
...@@ -1487,6 +1492,35 @@ END IF ...@@ -1487,6 +1492,35 @@ END IF
! !
ALLOCATE(ZTDIFF(IIU,IJU,IKU)) ALLOCATE(ZTDIFF(IIU,IJU,IKU))
ALLOCATE(ZTDISS(IIU,IJU,IKU)) ALLOCATE(ZTDISS(IIU,IJU,IKU))
!
!
!! Compute Shape of sfc flux for Oceanic Deep Conv Case
!
IF (LOCEAN .AND. LDEEPOC) THEN
ALLOCATE(ZDIST(IIU,IJU))
!* COMPUTES THE PHYSICAL SUBDOMAIN BOUNDS
ALLOCATE(ZXHAT_ll(NIMAX_ll+2*JPHEXT),ZYHAT_ll(NJMAX_ll+2*JPHEXT))
!compute ZXHAT_ll = position in the (0:Lx) domain 1 (Lx=Size of domain1 )
!compute XXHAT_ll = position in the (L0_subproc,Lx_subproc) domain for the current subproc
! L0_subproc as referenced in the full domain 1
CALL GATHERALL_FIELD_ll('XX',XXHAT,ZXHAT_ll,IRESP)
CALL GATHERALL_FIELD_ll('YY',XYHAT,ZYHAT_ll,IRESP)
CALL GET_DIM_EXT_ll('B',IIU,IJU)
DO JJ = IJB,IJE
DO JI = IIB,IIE
ZDIST(JI,JJ) = SQRT( &
(( (XXHAT(JI)+XXHAT(JI+1))*0.5 - XCENTX_OC ) / XRADX_OC)**2 + &
(( (XYHAT(JJ)+XYHAT(JJ+1))*0.5 - XCENTY_OC ) / XRADY_OC)**2 &
)
END DO
END DO
DO JJ=IJB,IJE
DO JI=IIB,IIE
IF ( ZDIST(JI,JJ) > 1.) XSSTFL(JI,JJ)=0.
END DO
END DO
END IF !END DEEP OCEAN CONV CASE
!
! !
CALL TURB( 1, IKU, 1, IMI, NRR, NRRL, NRRI, CLBCX, CLBCY, 1, NMODEL_CLOUD, & CALL TURB( 1, IKU, 1, IMI, NRR, NRRL, NRRI, CLBCX, CLBCY, 1, NMODEL_CLOUD, &
LTURB_FLX, LTURB_DIAG, LSUBG_COND, LRMC01, LOCEAN, LDIAG_IN_RUN, & LTURB_FLX, LTURB_DIAG, LSUBG_COND, LRMC01, LOCEAN, LDIAG_IN_RUN, &
......
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