diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90 index b125cb43489edb91dbd8ba28f4357438cbf1ba2f..15e583d3438875345adcc0771a034b2680137d72 100644 --- a/src/MNH/advection_metsv.f90 +++ b/src/MNH/advection_metsv.f90 @@ -344,6 +344,7 @@ IF (OCLOSE_OUT .AND. OCFL_WRIT .AND. (.NOT. L1D)) THEN TZFIELD%LTIMEDEP = .TRUE. CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCFLU) ! + IF (.NOT. L2D) THEN TZFIELD%CMNHNAME = 'CFLV' TZFIELD%CSTDNAME = '' TZFIELD%CLONGNAME = 'CFLV' @@ -355,6 +356,7 @@ IF (OCLOSE_OUT .AND. OCFL_WRIT .AND. (.NOT. L1D)) THEN TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCFLV) + END IF ! TZFIELD%CMNHNAME = 'CFLW' TZFIELD%CSTDNAME = '' diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90 index 1a7ee1d27476b919bce0600c8bfd02f3d0bd49fc..f77c69a49c1aaca734a73688264c0980078bd139 100644 --- a/src/MNH/default_desfmn.f90 +++ b/src/MNH/default_desfmn.f90 @@ -293,8 +293,8 @@ USE MODD_LATZ_EDFLX USE MODD_2D_FRC USE MODD_BLOWSNOW USE MODD_BLOWSNOW_n -USE MODD_VISC USE MODD_DRAG_n +USE MODD_VISCOSITY #ifdef MNH_FOREFIRE USE MODD_FOREFIRE #endif @@ -1470,7 +1470,7 @@ IF (KMI == 1) THEN LVISC_TH = .FALSE. LVISC_SV = .FALSE. LVISC_R = .FALSE. - XMU_v = 0. + XMU_V = 0. XPRANDTL = 0. ENDIF ! diff --git a/src/MNH/modd_viscosity.f90 b/src/MNH/modd_viscosity.f90 index 4fb0abcf08166fedd0a38848a178b502d8ad1913..04851f84058eda72351151e9fa2d98f65aece44c 100644 --- a/src/MNH/modd_viscosity.f90 +++ b/src/MNH/modd_viscosity.f90 @@ -3,7 +3,7 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ####################### - MODULE MODD_VISC + MODULE MODD_VISCOSITY ! ####################### ! !!**** *MODD_VISCOSITY* - declaration of viscosity forces constants @@ -42,7 +42,7 @@ LOGICAL :: LVISC_SV ! Logical switch to activate viscosity for the ! scalar tracer LOGICAL :: LVISC_R ! Logical switch to activate viscosity for the ! moisture -REAL, SAVE :: XMU_v ! Molecular (cinematic) viscosity +REAL, SAVE :: XMU_V ! Molecular (cinematic) viscosity REAL, SAVE :: XPRANDTL ! Prandtl number -END MODULE MODD_VISC +END MODULE MODD_VISCOSITY diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index 5816fefeb23714cd67c27c513e82e01f9f5f4c8e..6836f74faaee3adce34718197801b7bce0494ca9 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -267,7 +267,7 @@ USE MODD_CH_AERO_n, ONLY: XSOLORG, XMI USE MODD_CH_MNHC_n, ONLY: LUSECHEM,LCH_CONV_LINOX,LUSECHAQ,LUSECHIC, & LCH_INIT_FIELD USE MODD_CLOUD_MF_n -USE MODD_VISC +USE MODD_VISCOSITY USE MODD_DRAG_n USE MODD_CLOUDPAR_n USE MODD_CONF @@ -374,7 +374,7 @@ USE MODI_INI_MEAN_FIELD USE MODI_INITIAL_GUESS USE MODI_LES_INI_TIMESTEP_n USE MODI_LES_N -USE MODI_VISC +USE MODI_VISCOSITY USE MODI_LIMA_PRECIP_SCAVENGING USE MODI_LS_COUPLING USE MODI_MASK_COMPRESS @@ -1498,7 +1498,7 @@ IF ( LVISC ) THEN ! ZTIME1 = ZTIME2 ! - CALL VISCOSITY(CLBCX, CLBCY, NRR, NSV, XMU_v,XPRANDTL, & + CALL VISCOSITY(CLBCX, CLBCY, NRR, NSV, XMU_V,XPRANDTL, & LVISC_UVW,LVISC_TH,LVISC_SV,LVISC_R, & LDRAG, & XUT, XVT, XWT, XTHT, XRT, XSVT, & diff --git a/src/MNH/modn_viscosity.f90 b/src/MNH/modn_viscosity.f90 index d2a9dd8f31e7096efb4181ba34834edb66521612..53c4e38519518af0bc410e824133eaf83c1e17a3 100644 --- a/src/MNH/modn_viscosity.f90 +++ b/src/MNH/modn_viscosity.f90 @@ -1,5 +1,9 @@ +!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. ! ################### - MODULE MODN_VISC + MODULE MODN_VISCOSITY ! ################### ! !!**** *MODN_VISCOSITY* - declaration of namelist NAM_VISC @@ -28,10 +32,10 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODD_VISC +USE MODD_VISCOSITY ! IMPLICIT NONE ! -NAMELIST/NAM_VISC/LVISC,LVISC_UVW,LVISC_TH,LVISC_SV,LVISC_R,XMU_v,XPRANDTL +NAMELIST/NAM_VISC/LVISC,LVISC_UVW,LVISC_TH,LVISC_SV,LVISC_R,XMU_V,XPRANDTL ! -END MODULE MODN_VISC +END MODULE MODN_VISCOSITY diff --git a/src/MNH/read_desfmn.f90 b/src/MNH/read_desfmn.f90 index 1dc1e41e0c545d83f8b4948b036ed433ce8e4c95..86cde7c7452ef41297279fee4a21aabe068e89fa 100644 --- a/src/MNH/read_desfmn.f90 +++ b/src/MNH/read_desfmn.f90 @@ -250,7 +250,7 @@ USE MODN_CH_ORILAM USE MODN_DUST USE MODN_SALT USE MODN_PASPOL -USE MODN_VISC +USE MODN_VISCOSITY USE MODN_DRAG_n #ifdef MNH_FOREFIRE USE MODN_FOREFIRE diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index ea4aa6e26b2b300a0688ffc55024eb0dac4bd471..28c1e5457fce7826746d6649105bd9a79d5ed8d0 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -374,8 +374,8 @@ USE MODN_CONDSAMP USE MODN_BLOWSNOW USE MODN_BLOWSNOW_n USE MODN_2D_FRC -USE MODN_VISC -USE MODD_VISC +USE MODN_VISCOSITY +USE MODD_VISCOSITY USE MODD_DRAG_n ! IMPLICIT NONE diff --git a/src/MNH/viscosity.f90 b/src/MNH/viscosity.f90 index ae03806c00327d1c59a9031c6016fe3764870ed6..5d822248a7121c7e01e01fef0f5ca28a00bf4209 100644 --- a/src/MNH/viscosity.f90 +++ b/src/MNH/viscosity.f90 @@ -4,7 +4,7 @@ !MNH_LIC for details. version 1. ! ! ##################### - MODULE MODI_VISC + MODULE MODI_VISCOSITY ! ##################### ! INTERFACE @@ -66,7 +66,7 @@ INTERFACE ! END INTERFACE ! -END MODULE MODI_VISC +END MODULE MODI_VISCOSITY ! !------------------------------------------------------------------------------- ! @@ -98,7 +98,7 @@ SUBROUTINE VISCOSITY(HLBCX, HLBCY, KRR, KSV, PNU, PPRANDTL, & USE MODI_SHUMAN USE MODD_PARAMETERS USE MODD_CONF - USE MODD_VISC + USE MODD_VISCOSITY USE MODD_DRAG_n USE MODD_BUDGET USE MODE_ll @@ -127,7 +127,7 @@ SUBROUTINE VISCOSITY(HLBCX, HLBCY, KRR, KSV, PNU, PPRANDTL, & LOGICAL, INTENT(IN) :: OVISC_TH ! theta LOGICAL, INTENT(IN) :: OVISC_SV ! scalar tracer LOGICAL, INTENT(IN) :: OVISC_R ! moisture - LOGICAL, INTENT(IN) :: ODRAG ! moisture + LOGICAL, INTENT(IN) :: ODRAG ! noslip/freeslip ! ! input variables at time t REAL, DIMENSION(:,:,:), INTENT(IN) :: PUT @@ -190,7 +190,7 @@ IF (OVISC_TH) THEN LAP_M(HLBCX,HLBCY,PDXX,PDYY,PDZX,PDZY,PDZZ,PRHODJ,PTHT) ! ! - END IF +END IF ! IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'VISC_BU_RU') ! @@ -199,7 +199,7 @@ IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'VISC_BU_RU') !* 2. Viscous forcing for moisture ! ---------------------------- ! - IF (OVISC_R .AND. (SIZE(PRT,1) > 0)) THEN +IF (OVISC_R .AND. (SIZE(PRT,1) > 0)) THEN ! ! DO IK = 1, KRR @@ -208,7 +208,7 @@ IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'VISC_BU_RU') END DO ! ! - END IF +END IF ! IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6,'VISC_BU_RRV') IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7,'VISC_BU_RRC') @@ -223,7 +223,7 @@ IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'VISC_BU_RRH') !* 3. Viscous forcing for passive scalars ! ----------------------------------- ! - IF (OVISC_SV .AND. (SIZE(PSVT,1) > 0)) THEN +IF (OVISC_SV .AND. (SIZE(PSVT,1) > 0)) THEN ! ! DO IK = 1, KSV @@ -231,7 +231,7 @@ IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'VISC_BU_RRH') LAP_M(HLBCX,HLBCY,PDXX,PDYY,PDZX,PDZY,PDZZ,PRHODJ,PSVT(:,:,:,IK)) END DO ! - END IF +END IF ! IF (LBUDGET_SV) THEN DO IK = 1, KSV @@ -259,12 +259,12 @@ IF (OVISC_UVW) THEN ZLAPu = LAP_M(HLBCX,HLBCY,PDXX,PDYY,PDZX, & PDZY,PDZZ,PRHODJ,ZY1) !! Update halo to compute the source term -NULLIFY(TZFIELDS_ll) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZLAPu) -CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) -CALL CLEANLIST_ll(TZFIELDS_ll) + NULLIFY(TZFIELDS_ll) + CALL ADD3DFIELD_ll(TZFIELDS_ll,ZLAPu) + CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) + CALL CLEANLIST_ll(TZFIELDS_ll) ! -PRUS = PRUS + MXM(PNU*ZLAPu) + PRUS = PRUS + MXM(PNU*ZLAPu) ! !* 4.2 V - component ! ------------- @@ -272,21 +272,20 @@ PRUS = PRUS + MXM(PNU*ZLAPu) IF (.NOT. L2D) THEN ZY2 = MYF(PVT) - IF (ODRAG) THEN - ZY2(:,:,1) = PDRAG * ZY2(:,:,2) - ENDIF - ELSE + IF (ODRAG) THEN + ZY2(:,:,1) = PDRAG * ZY2(:,:,2) + ENDIF ! ZLAPv = LAP_M(HLBCX,HLBCY,PDXX,PDYY,PDZX, & PDZY,PDZZ,PRHODJ,ZY2) !! Update halo to compute the source term ! -NULLIFY(TZFIELDS_ll) -CALL ADD3DFIELD_ll(TZFIELDS_ll,ZLAPv) -CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) -CALL CLEANLIST_ll(TZFIELDS_ll) + NULLIFY(TZFIELDS_ll) + CALL ADD3DFIELD_ll(TZFIELDS_ll,ZLAPv) + CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) + CALL CLEANLIST_ll(TZFIELDS_ll) ! -PRVS = PRVS + MYM(PNU*ZLAPv) + PRVS = PRVS + MYM(PNU*ZLAPv) ENDIF @@ -297,31 +296,32 @@ ENDIF IKB = JPVEXT + 1 IKE = SIZE(PWT,3) - JPVEXT - ZTMP = PWT + ZTMP = MZF(1,IKU,1,PWT) ! -IF (ODRAG) THEN + IF (ODRAG) THEN WHERE (PDRAG==-1) ZTMP(:,:,IKB) = 0. ENDWHERE -ENDIF + ENDIF ! DO IK = 1,JPVEXT ZTMP(:,:,IK) = ZTMP(:,:,IKB) - ZTMP(:,:,IKE+IK) = ZTMP(:,:,IKE) + ZTMP(:,:,IKE+IK) = ZTMP(:,:,IKE) END DO ! ZTMP = MZM(1,IKU,1, PNU * & LAP_M(HLBCX,HLBCY,PDXX,PDYY,PDZX,PDZY,PDZZ,PRHODJ,ZTMP) ) - +! DO IK = 1,JPVEXT ZTMP(:,:,IK) = ZTMP(:,:,IKB) ZTMP(:,:,IKE+IK) = ZTMP(:,:,IKE) END DO -PRWS = PRWS + ZTMP + PRWS = PRWS + ZTMP ! !!! Debug provisoire dans le cas ou le noslip est applique jusqu'au bord de !sortie de flux en OPEN - IF ( LWEST_ll().AND.(ODRAG).AND.(MINVAL(PDRAG(IIU,:))== -1)) THEN + IF ( LWEST_ll().AND.(ODRAG)) THEN + IF ( MINVAL(PDRAG(IIU,:))== -1) THEN DO JK=1,IKU WHERE(PDRAG(IIU,:)== -1) PRUS(IIU,:,JK) = PRUS(IIU-1,:,JK) @@ -329,6 +329,7 @@ PRWS = PRWS + ZTMP PRWS(IIU,:,JK) = PRWS(IIU-1,:,JK) ENDWHERE END DO + ENDIF ENDIF END IF !