diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index 3cb3b1c277e33cb8cdef22db64e52d74a2d7e43e..2b07be06089bb04111ddc101225d98bb27af23ee 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -3940,6 +3940,12 @@ ELSEIF (JSV >= NSV_ELECBEG .AND. JSV <= NSV_ELECEND) THEN YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'DRIFT_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NDRIFTQV + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'CORAY_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NCORAYQV + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR) = 'DEPS_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NDEPSQV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 @@ -4189,6 +4195,12 @@ ELSEIF (JSV >= NSV_ELECBEG .AND. JSV <= NSV_ELECEND) THEN YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV IF ( HCLOUD == 'ICE3' ) THEN + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'DRIFT_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NDRIFTNI + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'CORAY_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NCORAYNI ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR) = 'DEPS_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NDEPSNI @@ -4228,6 +4240,12 @@ ELSEIF (JSV >= NSV_ELECBEG .AND. JSV <= NSV_ELECEND) THEN YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'DRIFT_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NDRIFTNI + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'CORAY_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = NCORAYNI + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR) = 'DEPS_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NDEPSNI ILAST_PROC_NBR = ILAST_PROC_NBR + 1 diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90 index d1b16cbc7d0fa7249f6364b4cb2f6ddc19a243c5..b2ae42a515600c5e3eefd056382cdb43b4ff5537 100644 --- a/src/MNH/modd_budget.f90 +++ b/src/MNH/modd_budget.f90 @@ -603,6 +603,8 @@ INTEGER, SAVE :: NNEADVSV ! negative correction INTEGER, SAVE :: NNECONSV ! negative correction ! ! Allowed processes for the budget of electric charge carried by water vapor +INTEGER, SAVE :: NDRIFTQV +INTEGER, SAVE :: NCORAYQV INTEGER, SAVE :: NDEPSQV INTEGER, SAVE :: NDEPGQV INTEGER, SAVE :: NREVAQV @@ -691,6 +693,8 @@ INTEGER, SAVE :: NHMLTQH INTEGER, SAVE :: NNEUTQH ! ! Allowed processes for the budget of electric charge carried by negative ions +INTEGER, SAVE :: NDRIFTNI +INTEGER, SAVE :: NCORAYNI INTEGER, SAVE :: NDEPSNI INTEGER, SAVE :: NDEPGNI INTEGER, SAVE :: NREVANI diff --git a/src/MNH/modn_budget.f90 b/src/MNH/modn_budget.f90 index 68d609d544336f9cff36391cbab6297a1fc344f7..74014bf3b95cb939a78e6e6c5c4ca1ffdedb44d1 100644 --- a/src/MNH/modn_budget.f90 +++ b/src/MNH/modn_budget.f90 @@ -309,19 +309,19 @@ NAMELIST/NAM_BU_RRH/LBU_RRH, NASSERH, NNESTRH, NVISCRH, NADVRH, NFRCRH, & NAMELIST/NAM_BU_RSV/ LBU_RSV, NASSESV, NNESTSV, NVISCSV, NADVSV, NFRCSV, & NDIFSV, NRELSV, NDCONVSV, NVTURBSV, NHTURBSV, NCHEMSV, NMAFLSV, & NNEGASV, NNETURSV, NNEADVSV, NNECONSV, & - NDEPSQV, NDEPGQV, NREVAQV, NCDEPIQV, NNEUTQV, & - NHONQC, NAUTOQC, NACCRQC, NRIMQC, NWETGQC, NDRYGQC, NINCGQC, & - NWETHQC, NIMLTQC, NBERFIQC, NCDEPIQC, NSEDIQC, NNEUTQC, & - NSFRQR, NAUTOQR, NACCRQR, NREVAQR, NACCQR, NCFRZQR, NWETGQR, & - NDRYGQR, NWETHQR, NHMLTQR, NGMLTQR, NSEDIQR, NNEUTQR, & - NHONQI, NAGGSQI, NAUTSQI, NCFRZQI, NWETGQI, NDRYGQI, NWETHQI, & - NIMLTQI, NBERFIQI, NCDEPIQI, NNIISQI, NSEDIQI, NNEUTQI, & - NDEPSQS, NAGGSQS, NAUTSQS, NRIMQS, NACCQS, NCMELQS, NWETGQS, & - NDRYGQS, NWETHQS, NNIISQS, NSEDIQS, NNEUTQS, & - NSFRQG, NDEPGQG, NRIMQG, NACCQG, NCMELQG, NCFRZQG, NWETGQG, & - NDRYGQG, NINCGQG, NWETHQG, NGMLTQG, NSEDIQG, NNEUTQG, & - NSEDIQH, NWETGQH, NWETHQH, NHMLTQH, NNEUTQH, & - NDEPSNI, NDEPGNI, NREVANI, NCDEPINI, NNEUTNI, & + NDRIFTQV, NCORAYQV, NDEPSQV, NDEPGQV, NREVAQV, NCDEPIQV, NNEUTQV, & + NHONQC, NAUTOQC, NACCRQC, NRIMQC, NWETGQC, NDRYGQC, NINCGQC, & + NWETHQC, NIMLTQC, NBERFIQC, NCDEPIQC, NSEDIQC, NNEUTQC, & + NSFRQR, NAUTOQR, NACCRQR, NREVAQR, NACCQR, NCFRZQR, NWETGQR, & + NDRYGQR, NWETHQR, NHMLTQR, NGMLTQR, NSEDIQR, NNEUTQR, & + NHONQI, NAGGSQI, NAUTSQI, NCFRZQI, NWETGQI, NDRYGQI, NWETHQI, & + NIMLTQI, NBERFIQI, NCDEPIQI, NNIISQI, NSEDIQI, NNEUTQI, & + NDEPSQS, NAGGSQS, NAUTSQS, NRIMQS, NACCQS, NCMELQS, NWETGQS, & + NDRYGQS, NWETHQS, NNIISQS, NSEDIQS, NNEUTQS, & + NSFRQG, NDEPGQG, NRIMQG, NACCQG, NCMELQG, NCFRZQG, NWETGQG, & + NDRYGQG, NINCGQG, NWETHQG, NGMLTQG, NSEDIQG, NNEUTQG, & + NSEDIQH, NWETGQH, NWETHQH, NHMLTQH, NNEUTQH, & + NDRIFTNI, NCORAYNI, NDEPSNI, NDEPGNI, NREVANI, NCDEPINI, NNEUTNI, & NDEPOTRSV ! END MODULE MODN_BUDGET diff --git a/src/MNH/resolved_elecn.f90 b/src/MNH/resolved_elecn.f90 index b359b8e76e570564e2a874dfded349ce8a789959..18b40981042a86dab8ced49a42774aaf018a296f 100644 --- a/src/MNH/resolved_elecn.f90 +++ b/src/MNH/resolved_elecn.f90 @@ -170,6 +170,7 @@ END MODULE MODI_RESOLVED_ELEC_n ! P. Wautelet 22/01/2019: use standard FLUSH statement instead of non standard intrinsics ! P. Wautelet 14/03/2019: bugfix: correct management of files ! P. Wautelet 12/02/2021: bugfix: change STATUS for opening files containing flash information (NEW->UNKNOWN) +! P. Wautelet 17/02/2021: budgets: add DRIFT and CORAY terms for electricity !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -656,9 +657,13 @@ CALL MYPROC_ELEC_ll (IPROC) ! CALL ION_DRIFT(ZCPH, ZCOR, PSVT, HLBCX, HLBCY) - PSVS(:,:,:,NSV_ELECBEG) = PSVS(:,:,:,NSV_ELECBEG) + ZCPH(:,:,:) PSVS(:,:,:,NSV_ELECEND) = PSVS(:,:,:,NSV_ELECEND) + ZCOR(:,:,:) + +IF (LBUDGET_SV) THEN + CALL BUDGET (PSVS(:,:,:,NSV_ELECBEG) * PRHODJ(:,:,:), 12+NSV_ELECBEG, 'DRIFT_BU_RSV') + CALL BUDGET (PSVS(:,:,:,NSV_ELECEND) * PRHODJ(:,:,:), 12+NSV_ELECEND, 'DRIFT_BU_RSV') +END IF ! !* 4.3 Add Cosmic Ray source ! @@ -666,6 +671,11 @@ PSVS(:,:,:,NSV_ELECBEG) = PSVS(:,:,:,NSV_ELECBEG) + & XIONSOURCEFW(:,:,:) / PRHODREF(:,:,:) PSVS(:,:,:,NSV_ELECEND) = PSVS(:,:,:,NSV_ELECEND) + & XIONSOURCEFW(:,:,:) / PRHODREF(:,:,:) + +IF (LBUDGET_SV) THEN + CALL BUDGET (PSVS(:,:,:,NSV_ELECBEG) * PRHODJ(:,:,:), 12+NSV_ELECBEG, 'CORAY_BU_RSV') + CALL BUDGET (PSVS(:,:,:,NSV_ELECEND) * PRHODJ(:,:,:), 12+NSV_ELECEND, 'CORAY_BU_RSV') +END IF ! !------------------------------------------------------------------------------- !