Skip to content
Snippets Groups Projects
Commit 6585a351 authored by Gaelle DELAUTIER's avatar Gaelle DELAUTIER
Browse files

Gaelle 05/10/2017 : update ini_modeln

parent 6bdd3717
No related branches found
No related tags found
No related merge requests found
......@@ -271,7 +271,11 @@ END MODULE MODI_INI_MODEL_n
!! M.Leriche 2016 Chemistry
!! 10/2016 M.Mazoyer New KHKO output fields
!! 10/2016 (C.Lac) Add max values
!! F. Brosse Oct. 2016 add prod/loss terms computation for chemistry
!! F. Brosse Oct. 2016 add prod/loss terms computation for chemistry
!! M.Leriche 2016 Chemistry
!! M.Leriche 10/02/17 prevent negative values in LBX(Y)SVS
!! M.Leriche 01/07/2017 Add DIAG chimical surface fluxes
!! 09/2017 Q.Rodier add LTEND_UV_FRC
!---------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
......@@ -332,6 +336,7 @@ USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, &
USE MODD_CH_PH_n
USE MODD_CH_AEROSOL, ONLY : LORILAM
USE MODD_CH_AERO_n, ONLY : XSOLORG,XMI
USE MODD_CH_FLX_n, ONLY : XCHFLX
USE MODD_PARAM_KAFR_n
USE MODD_PARAM_MFSHALL_n
USE MODD_DEEP_CONVECTION_n
......@@ -454,7 +459,7 @@ CHARACTER(LEN=2) :: YDIR ! Type of the data field in LFIFM file
INTEGER :: IGRID ! C-grid indicator in LFIFM file
INTEGER :: ILENCH ! Length of comment string in LFIFM file
CHARACTER (LEN=100) :: YCOMMENT!comment string in LFIFM file
CHARACTER (LEN=16) :: YRECFM ! Name of the desired field in LFIFM file
CHARACTER (LEN=LEN_HREC) :: YRECFM ! Name of the desired field in LFIFM file
INTEGER :: IIU ! Upper dimension in x direction (local)
INTEGER :: IJU ! Upper dimension in y direction (local)
INTEGER :: IIU_ll ! Upper dimension in x direction (global)
......@@ -708,6 +713,16 @@ IF (LMEAN_FIELD) THEN
ALLOCATE(XTEMP2_MEAN(IIU,IJU,IKU)) ; XTEMP2_MEAN = 0.0
ALLOCATE(XPABS2_MEAN(IIU,IJU,IKU)) ; XPABS2_MEAN = 0.0
!
ALLOCATE(XUM_MAX(IIU,IJU,IKU)) ; XUM_MAX = -1.E20
ALLOCATE(XVM_MAX(IIU,IJU,IKU)) ; XVM_MAX = -1.E20
ALLOCATE(XWM_MAX(IIU,IJU,IKU)) ; XWM_MAX = -1.E20
ALLOCATE(XTHM_MAX(IIU,IJU,IKU)) ; XTHM_MAX = 0.0
ALLOCATE(XTEMPM_MAX(IIU,IJU,IKU)) ; XTEMPM_MAX = 0.0
IF (CTURB/='NONE') THEN
ALLOCATE(XTKEM_MAX(IIU,IJU,IKU))
XTKEM_MAX = 0.0
END IF
ALLOCATE(XPABSM_MAX(IIU,IJU,IKU)) ; XPABSM_MAX = 0.0
END IF
!
IF ((CUVW_ADV_SCHEME(1:3)=='CEN') .AND. (CTEMP_SCHEME == 'LEFR') ) THEN
......@@ -1386,6 +1401,8 @@ IF (KMI == 1) THEN
ALLOCATE(XGXTHFRC(IKU,NFRC))
ALLOCATE(XGYTHFRC(IKU,NFRC))
ALLOCATE(XPGROUNDFRC(NFRC))
ALLOCATE(XTENDUFRC(IKU,NFRC))
ALLOCATE(XTENDVFRC(IKU,NFRC))
ELSE
ALLOCATE(TDTFRC(0))
ALLOCATE(XUFRC(0,0))
......@@ -1398,6 +1415,8 @@ IF (KMI == 1) THEN
ALLOCATE(XGXTHFRC(0,0))
ALLOCATE(XGYTHFRC(0,0))
ALLOCATE(XPGROUNDFRC(0))
ALLOCATE(XTENDUFRC(0,0))
ALLOCATE(XTENDVFRC(0,0))
END IF
IF ( LFORCING ) THEN
ALLOCATE(XWTFRC(IIU,IJU,IKU))
......@@ -1499,6 +1518,10 @@ IF (LUSECHAQ.AND.(CPROGRAM == 'DIAG '.OR.CPROGRAM == 'MESONH')) THEN
XACPRAQ(:,:,:) = 0.
ENDIF
ENDIF
IF ((LUSECHEM).AND.(CPROGRAM == 'DIAG ')) THEN
ALLOCATE(XCHFLX(IIU,IJU,NSV_CHEM))
XCHFLX(:,:,:) = 0.
END IF
!
!-------------------------------------------------------------------------------
!
......@@ -1604,6 +1627,7 @@ CALL READ_FIELD(HINIFILE,HLUOUT,IMASDEV, IIU,IJU,IKU,XTSTEP, &
NFRC,TDTFRC,XUFRC,XVFRC,XWFRC,XTHFRC,XRVFRC, &
XTENDTHFRC,XTENDRVFRC,XGXTHFRC,XGYTHFRC, &
XPGROUNDFRC, XATC, &
XTENDUFRC, XTENDVFRC, &
NADVFRC,TDTADVFRC,XDTHFRC,XDRVFRC, &
NRELFRC,TDTRELFRC,XTHREL,XRVREL, &
XVTH_FLUX_M,XWTH_FLUX_M,XVU_FLUX_M, &
......@@ -1705,6 +1729,59 @@ IF ((KMI==1).AND.(.NOT. LSTEADYLS)) THEN
XLBXUS,XLBXVS,XLBXWS,XLBXTHS,XLBXTKES,XLBXRS,XLBXSVS, &
XLBYUS,XLBYVS,XLBYWS,XLBYTHS,XLBYTKES,XLBYRS,XLBYSVS )
CALL MPPDB_CHECK3D(XUT,"INI_MODEL_N-after ini_cpl::XUT",PRECISION)
!
DO JSV=NSV_CHEMBEG,NSV_CHEMEND
XLBXSVS(:,:,:,JSV)=MAX(XLBXSVS(:,:,:,JSV),0.)
XLBYSVS(:,:,:,JSV)=MAX(XLBYSVS(:,:,:,JSV),0.)
ENDDO
!
DO JSV=NSV_LNOXBEG,NSV_LNOXEND
XLBXSVS(:,:,:,JSV)=MAX(XLBXSVS(:,:,:,JSV),0.)
XLBYSVS(:,:,:,JSV)=MAX(XLBYSVS(:,:,:,JSV),0.)
ENDDO
!
DO JSV=NSV_AERBEG,NSV_AEREND
XLBXSVS(:,:,:,JSV)=MAX(XLBXSVS(:,:,:,JSV),0.)
XLBYSVS(:,:,:,JSV)=MAX(XLBYSVS(:,:,:,JSV),0.)
ENDDO
!
DO JSV=NSV_DSTBEG,NSV_DSTEND
XLBXSVS(:,:,:,JSV)=MAX(XLBXSVS(:,:,:,JSV),0.)
XLBYSVS(:,:,:,JSV)=MAX(XLBYSVS(:,:,:,JSV),0.)
ENDDO
!
DO JSV=NSV_DSTDEPBEG,NSV_DSTDEPEND
XLBXSVS(:,:,:,JSV)=MAX(XLBXSVS(:,:,:,JSV),0.)
XLBYSVS(:,:,:,JSV)=MAX(XLBYSVS(:,:,:,JSV),0.)
ENDDO
!
DO JSV=NSV_SLTBEG,NSV_SLTEND
XLBXSVS(:,:,:,JSV)=MAX(XLBXSVS(:,:,:,JSV),0.)
XLBYSVS(:,:,:,JSV)=MAX(XLBYSVS(:,:,:,JSV),0.)
ENDDO
!
DO JSV=NSV_SLTDEPBEG,NSV_SLTDEPEND
XLBXSVS(:,:,:,JSV)=MAX(XLBXSVS(:,:,:,JSV),0.)
XLBYSVS(:,:,:,JSV)=MAX(XLBYSVS(:,:,:,JSV),0.)
ENDDO
!
DO JSV=NSV_PPBEG,NSV_PPEND
XLBXSVS(:,:,:,JSV)=MAX(XLBXSVS(:,:,:,JSV),0.)
XLBYSVS(:,:,:,JSV)=MAX(XLBYSVS(:,:,:,JSV),0.)
ENDDO
!
#ifdef MNH_FOREFIRE
DO JSV=NSV_FFBEG,NSV_FFEND
XLBXSVS(:,:,:,JSV)=MAX(XLBXSVS(:,:,:,JSV),0.)
XLBYSVS(:,:,:,JSV)=MAX(XLBYSVS(:,:,:,JSV),0.)
ENDDO
!
#endif
DO JSV=NSV_CSBEG,NSV_CSEND
XLBXSVS(:,:,:,JSV)=MAX(XLBXSVS(:,:,:,JSV),0.)
XLBYSVS(:,:,:,JSV)=MAX(XLBYSVS(:,:,:,JSV),0.)
ENDDO
!
END IF
!
IF ( KMI > 1) THEN
......@@ -2192,7 +2269,7 @@ END IF
!
!* 30. Total production/Loss for chemical species
!
IF (LUSECHEM.OR.LCHEMDIAG) THEN
IF (LCHEMDIAG) THEN
CALL CH_INIT_PRODLOSSTOT_n(ILUOUT)
IF (NEQ_PLT>0) THEN
ALLOCATE(XPROD(IIU,IJU,IKU,NEQ_PLT))
......@@ -2212,7 +2289,7 @@ END IF
!
!* 31. Extended production/loss terms for chemical species
!
IF (LUSECHEM.OR.LCHEMDIAG) THEN
IF (LCHEMDIAG) THEN
CALL CH_INIT_BUDGET_n(ILUOUT)
IF (NEQ_BUDGET>0) THEN
ALLOCATE(IINDEX(2,NNONZEROTERMS))
......
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