diff --git a/src/MNH/ice_adjust_elec.f90 b/src/MNH/ice_adjust_elec.f90 index 8a0b414fcdc446547a8cef69f67f27ef5315478a..2f3f2aec270063ccc8ee15cad8dbf5d180d34840 100644 --- a/src/MNH/ice_adjust_elec.f90 +++ b/src/MNH/ice_adjust_elec.f90 @@ -628,15 +628,15 @@ ENDIF !* 6. STORE THE BUDGET TERMS ! ---------------------- ! -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),6,'DEPI_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),7,'DEPI_BU_RRC') -IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:) * PRHODJ(:,:,:),9,'DEPI_BU_RRI') -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),4,'DEPI_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),6,'CDEPI_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),7,'CDEPI_BU_RRC') +IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:) * PRHODJ(:,:,:),9,'CDEPI_BU_RRI') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),4,'CDEPI_BU_RTH') IF (LBUDGET_SV) THEN - CALL BUDGET(PQPIS(:,:,:) * PRHODJ(:,:,:), 12+NSV_ELECBEG, 'DEPI_BU_RSV') - CALL BUDGET(PQNIS(:,:,:) * PRHODJ(:,:,:), 12+NSV_ELECEND, 'DEPI_BU_RSV') - CALL BUDGET(PQCS(:,:,:) * PRHODJ(:,:,:), 12+NSV_ELECBEG+1, 'DEPI_BU_RSV') - CALL BUDGET(PQIS(:,:,:) * PRHODJ(:,:,:), 12+NSV_ELECBEG+3, 'DEPI_BU_RSV') + CALL BUDGET(PQPIS(:,:,:) * PRHODJ(:,:,:), 12+NSV_ELECBEG, 'CDEPI_BU_RSV') + CALL BUDGET(PQNIS(:,:,:) * PRHODJ(:,:,:), 12+NSV_ELECEND, 'CDEPI_BU_RSV') + CALL BUDGET(PQCS(:,:,:) * PRHODJ(:,:,:), 12+NSV_ELECBEG+1, 'CDEPI_BU_RSV') + CALL BUDGET(PQIS(:,:,:) * PRHODJ(:,:,:), 12+NSV_ELECBEG+3, 'CDEPI_BU_RSV') END IF ! !------------------------------------------------------------------------------ diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index baaa59fb650d815088635b29f0f0c0e19e2a64da..c58a17cf4996d9fc607e984beaea8304826a51c7 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -3462,7 +3462,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 - IF (OCOLD .AND. ONUCL .AND. OWARM .AND. OHHONI) THEN + IF (LPTSPLIT .AND. OCOLD .AND. ONUCL .AND. OWARM .AND. OHHONI) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'HONH_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 @@ -3488,8 +3488,8 @@ ELSEIF (JSV >= NSV_ELECBEG .AND. JSV <= NSV_ELECEND) THEN IPROACTV(12+JSV,ILAST_PROC_NBR) = NREVAQV END IF ILAST_PROC_NBR = ILAST_PROC_NBR + 1 - YWORK2(12+JSV,ILAST_PROC_NBR) = 'DEPI_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = NDEPIQV + YWORK2(12+JSV,ILAST_PROC_NBR) = 'CDEPI_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NCDEPIQV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR) = 'NEUT_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEUTQV @@ -3518,13 +3518,8 @@ ELSEIF (JSV >= NSV_ELECBEG .AND. JSV <= NSV_ELECEND) THEN YWORK2(12+JSV,ILAST_PROC_NBR) = 'BERFI_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NBERFIQC ILAST_PROC_NBR = ILAST_PROC_NBR + 1 - YWORK2(12+JSV,ILAST_PROC_NBR) = 'DEPI_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = NDEPIQC - IF (LINDUCTIVE) THEN - ILAST_PROC_NBR = ILAST_PROC_NBR + 1 - YWORK2(12+JSV,ILAST_PROC_NBR) = 'IND_' - END IF - IPROACTV(12+JSV,ILAST_PROC_NBR) = NINDQC + YWORK2(12+JSV,ILAST_PROC_NBR) = 'CDEPI_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NCDEPIQC IF (LSEDIC) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR) = 'SEDI_' @@ -3589,8 +3584,8 @@ ELSEIF (JSV >= NSV_ELECBEG .AND. JSV <= NSV_ELECEND) THEN YWORK2(12+JSV,ILAST_PROC_NBR) = 'BERFI_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NBERFIQI ILAST_PROC_NBR = ILAST_PROC_NBR + 1 - YWORK2(12+JSV,ILAST_PROC_NBR) = 'DEPI_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = NDEPIQI + YWORK2(12+JSV,ILAST_PROC_NBR) = 'CDEPI_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NCDEPIQI ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR) = 'NIIS_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNIISQI @@ -3659,11 +3654,6 @@ ELSEIF (JSV >= NSV_ELECBEG .AND. JSV <= NSV_ELECEND) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR) = 'GMLT_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NGMLTQG - IF (LINDUCTIVE) THEN - ILAST_PROC_NBR = ILAST_PROC_NBR + 1 - YWORK2(12+JSV,ILAST_PROC_NBR) = 'IND_' - IPROACTV(12+JSV,ILAST_PROC_NBR) = NINDQG - END IF ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR) = 'SEDI_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NSEDIQG @@ -3686,6 +3676,11 @@ ELSE IF (JSV >= NSV_CHEMBEG .AND. JSV <= NSV_CHEMEND) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV +! +ELSE IF (JSV >= NSV_AERBEG .AND. JSV <= NSV_AEREND) THEN + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV ! ELSE ! other processes diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90 index ee2b7af9ef0de83971cfa66782aa1660da9b2548..c39a3436d7a650e609d81ab92ee5980d08bbd581 100644 --- a/src/MNH/modd_budget.f90 +++ b/src/MNH/modd_budget.f90 @@ -582,7 +582,7 @@ INTEGER, SAVE :: NNEGASV INTEGER, SAVE :: NDEPSQV INTEGER, SAVE :: NDEPGQV INTEGER, SAVE :: NREVAQV -INTEGER, SAVE :: NDEPIQV +INTEGER, SAVE :: NCDEPIQV INTEGER, SAVE :: NNEUTQV ! ! Allowed processes for the budget of electric charge carried by cloud droplets @@ -593,8 +593,7 @@ INTEGER, SAVE :: NWETGQC INTEGER, SAVE :: NDRYGQC INTEGER, SAVE :: NIMLTQC INTEGER, SAVE :: NBERFIQC -INTEGER, SAVE :: NDEPIQC -INTEGER, SAVE :: NINDQC ! inductive process +INTEGER, SAVE :: NCDEPIQC INTEGER, SAVE :: NSEDIQC INTEGER, SAVE :: NNEUTQC ! @@ -618,7 +617,7 @@ INTEGER, SAVE :: NWETGQI INTEGER, SAVE :: NDRYGQI INTEGER, SAVE :: NIMLTQI INTEGER, SAVE :: NBERFIQI -INTEGER, SAVE :: NDEPIQI +INTEGER, SAVE :: NCDEPIQI INTEGER, SAVE :: NNIISQI ! non-inductive I-S INTEGER, SAVE :: NSEDIQI INTEGER, SAVE :: NNEUTQI @@ -645,7 +644,6 @@ INTEGER, SAVE :: NCFRZQG INTEGER, SAVE :: NWETGQG INTEGER, SAVE :: NDRYGQG INTEGER, SAVE :: NGMLTQG -INTEGER, SAVE :: NINDQG ! inductive process INTEGER, SAVE :: NSEDIQG INTEGER, SAVE :: NNEUTQG ! diff --git a/src/MNH/modn_budget.f90 b/src/MNH/modn_budget.f90 index da00531378bb919da0ef31635d67b093c6e2471d..2e0f1f4ec6433fd184ddcb835902edc3aebb13cc 100644 --- a/src/MNH/modn_budget.f90 +++ b/src/MNH/modn_budget.f90 @@ -306,17 +306,17 @@ NAMELIST/NAM_BU_RRH/LBU_RRH, NASSERH, NNESTRH, NADVRH, NFRCRH, & NAMELIST/NAM_BU_RSV/ LBU_RSV, NASSESV, NNESTSV, NADVSV, NFRCSV, & NDIFSV, NRELSV, NDCONVSV, NVTURBSV, NHTURBSV, NCHEMSV, NMAFLSV, & NNEGASV, & - NDEPSQV, NDEPGQV, NREVAQV, NDEPIQV, NNEUTQV, & + NDEPSQV, NDEPGQV, NREVAQV, NCDEPIQV, NNEUTQV, & NAUTOQC, NACCRQC, NRIMQC, NWETGQC, NDRYGQC, NIMLTQC, NBERFIQC, & - NDEPIQC, NINDQC, NSEDIQC, NNEUTQC, & + NCDEPIQC, NSEDIQC, NNEUTQC, & NAUTOQR, NACCRQR, NREVAQR, NACCQR, NCFRZQR, NWETGQR, NDRYGQR, & NGMLTQR, NSEDIQR, NNEUTQR, & NAGGSQI, NAUTSQI, NCFRZQI, NWETGQI, NDRYGQI, NIMLTQI, NBERFIQI, & - NDEPIQI, NNIISQI, NSEDIQI, NNEUTQI, & + NCDEPIQI, NNIISQI, NSEDIQI, NNEUTQI, & NDEPSQS, NAGGSQS, NAUTSQS, NRIMQS, NACCQS, NCMELQS, NWETGQS, & NDRYGQS, NNIISQS, NSEDIQS, NNEUTQS, & NDEPGQG, NRIMQG, NACCQG, NCMELQG, NCFRZQG, NWETGQG, NDRYGQG, & - NGMLTQG, NINDQG, NSEDIQG, NNEUTQG, NDEPOTRSV + NGMLTQG, NSEDIQG, NNEUTQG, NDEPOTRSV ! must add budget for hail ! END MODULE MODN_BUDGET diff --git a/src/MNH/rain_ice_elec.f90 b/src/MNH/rain_ice_elec.f90 index ebbe39dde701aa0c48aa31f18a0c07b5311d8532..295d2804ac17b79a8ee3fd5b778bff1911edb281 100644 --- a/src/MNH/rain_ice_elec.f90 +++ b/src/MNH/rain_ice_elec.f90 @@ -1981,7 +1981,7 @@ REAL :: ZVR, ZVI, ZVS, ZVG, ZETA0, ZK, ZRE0 CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') ! IF (LBUDGET_SV) THEN - CALL BUDGET (PQCS(:,:,:)*PRHODJ(:,:,:),12+NSV_ELECBEG+1,'SEDI_BU_RSV') + IF (OSEDIC) CALL BUDGET (PQCS(:,:,:)*PRHODJ(:,:,:),12+NSV_ELECBEG+1,'SEDI_BU_RSV') CALL BUDGET (PQRS(:,:,:)*PRHODJ(:,:,:),12+NSV_ELECBEG+2,'SEDI_BU_RSV') CALL BUDGET (PQIS(:,:,:)*PRHODJ(:,:,:),12+NSV_ELECBEG+3,'SEDI_BU_RSV') CALL BUDGET (PQSS(:,:,:)*PRHODJ(:,:,:),12+NSV_ELECBEG+4,'SEDI_BU_RSV') @@ -2576,9 +2576,9 @@ IMPLICIT NONE ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQRS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0),& - 12+NSV_ELECBEG+2,'HON_BU_RSV') + 12+NSV_ELECBEG+2,'SFR_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND, 'HON_BU_RSV') + 12+NSV_ELECBEG+5,'SFR_BU_RSV') END IF ! @@ -2769,7 +2769,7 @@ IMPLICIT NONE CALL BUDGET (UNPACK(ZQNIS(:), MASK=GMICRO(:,:,:), FIELD=PQNIS) & *PRHODJ(:,:,:), 12+NSV_ELECEND ,'DEPG_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'DEPG_BU_RSV') + 12+NSV_ELECBEG+5,'DEPG_BU_RSV') END IF ! END SUBROUTINE RAIN_ICE_ELEC_SLOW @@ -3085,7 +3085,7 @@ IMPLICIT NONE CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & 12+NSV_ELECBEG+4,'RIM_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'RIM_BU_RSV') + 12+NSV_ELECBEG+5,'RIM_BU_RSV') END IF ! DEALLOCATE(GRIM) @@ -3262,7 +3262,7 @@ IMPLICIT NONE CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & 12+NSV_ELECBEG+4,'ACC_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'ACC_BU_RSV') + 12+NSV_ELECBEG+5,'ACC_BU_RSV') END IF ! !* 5.3 Conversion-Melting of the aggregates: RSMLT & QSMLT @@ -3310,7 +3310,7 @@ IMPLICIT NONE CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & 12+NSV_ELECBEG+4,'CMEL_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'CMEL_BU_RSV') + 12+NSV_ELECBEG+5,'CMEL_BU_RSV') END IF ! END SUBROUTINE RAIN_ICE_ELEC_FAST_RS @@ -3383,7 +3383,7 @@ IMPLICIT NONE CALL BUDGET (UNPACK(ZQIS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & 12+NSV_ELECBEG+3,'CFRZ_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'CFRZ_BU_RSV') + 12+NSV_ELECBEG+5,'CFRZ_BU_RSV') END IF ! ! @@ -3781,7 +3781,7 @@ IMPLICIT NONE CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & 12+NSV_ELECBEG+4,'WETG_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'WETG_BU_RSV') + 12+NSV_ELECBEG+5,'WETG_BU_RSV') END IF ! WHERE (ZRGT(:) > XRTMIN(6) .AND. ZZT(:) < XTT .AND. & ! Dry @@ -3831,7 +3831,7 @@ IMPLICIT NONE CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & 12+NSV_ELECBEG+4,'DRYG_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'DRYG_BU_RSV') + 12+NSV_ELECBEG+5,'DRYG_BU_RSV') END IF ! ! @@ -3853,7 +3853,7 @@ IMPLICIT NONE CALL BUDGET (UNPACK(ZQCS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & 12+NSV_ELECBEG+1,'INCG_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'INCG_BU_RSV') + 12+NSV_ELECBEG+5,'INCG_BU_RSV') END IF ! ! @@ -3902,7 +3902,7 @@ IMPLICIT NONE CALL BUDGET (UNPACK(ZQRS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & 12+NSV_ELECBEG+2,'GMLT_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'GMLT_BU_RSV') + 12+NSV_ELECBEG+5,'GMLT_BU_RSV') END IF ! END SUBROUTINE RAIN_ICE_ELEC_FAST_RG