diff --git a/chem/dry_dep_driver.F b/chem/dry_dep_driver.F index 41f8b43c7c..6bf31e74ec 100755 --- a/chem/dry_dep_driver.F +++ b/chem/dry_dep_driver.F @@ -131,7 +131,7 @@ subroutine dry_dep_driver(id,curr_secs,ktau,dtstep,config_flags, & xland,znt,raincv ! A. Ukhov Volcanic diagnostics - REAL, DIMENSION( ims:ime, jms:jme,1:9), INTENT(INOUT ) :: volc_diags + REAL, DIMENSION( ims:ime, jms:jme,num_volc_diags), INTENT(INOUT ) :: volc_diags REAL, DIMENSION( ims:ime , kms:kme , jms:jme ) , & diff --git a/chem/emissions_driver.F b/chem/emissions_driver.F index 2394518d1a..99e0c0e66c 100644 --- a/chem/emissions_driver.F +++ b/chem/emissions_driver.F @@ -423,10 +423,6 @@ subroutine emissions_driver(id,ktau,dtstep,DX,DY, & ivolcano=0 - !area=dx*dx - ! A. Ukhov 12 Oct 2024 - area=(dx/mapfac_mx(i,j))*(dy/mapfac_my(i,j)) - dust_emiss_active = 0 seasalt_emiss_active = 0 if(config_flags%dust_opt >= 2 )dust_emiss_active = 1 @@ -448,13 +444,15 @@ subroutine emissions_driver(id,ktau,dtstep,DX,DY, & ! emiss_ash_height = config_flags%emiss_ash_hgt if(emiss_ash_height.gt. 1.)then - write(message,'(" ADJUSTED ASH HEIGHT: ",2f15.3)') emiss_ash_height, area + write(message,'(" ADJUSTED ASH HEIGHT: ",f15.3)') emiss_ash_height CALL WRF_DEBUG (15,message) ! for volcanic ash transport, vash variables are in mix ratio here... do j=jts,jte do i=its,ite if(erup_end(i,j).gt.0)then + ! A. Ukhov 12 Oct 2024: use map factors for volcanic cell area. + area=(dx/mapfac_mx(i,j))*(dy/mapfac_my(i,j)) so2_mass=1.5e4*3600.*1.e9/64./area eh=2600.*(emiss_ash_height*.0005)**4.1494 emiss_ash_mass=eh*1.e9/area diff --git a/chem/mechanism_driver.F b/chem/mechanism_driver.F index 7f2a7708e1..3fde38855a 100755 --- a/chem/mechanism_driver.F +++ b/chem/mechanism_driver.F @@ -72,7 +72,7 @@ subroutine mechanism_driver(id,curr_secs,ktau,dtstep,ktauc,dtstepc,& ketp,olnd ! A. Ukhov 24 Oct 2024, Volcanic diagnostics - REAL, DIMENSION( ims:ime , jms:jme ,1:9), INTENT(INOUT) :: volc_diags + REAL, DIMENSION( ims:ime , jms:jme ,num_volc_diags), INTENT(INOUT) :: volc_diags ! ! on input from meteorological model ! diff --git a/chem/module_ctrans_grell.F b/chem/module_ctrans_grell.F index 1b82dd54e6..d32612db21 100755 --- a/chem/module_ctrans_grell.F +++ b/chem/module_ctrans_grell.F @@ -7,7 +7,7 @@ MODULE module_ctrans_grell USE module_state_description, only:p_co,p_qv,p_so2,p_hno3,p_hno4,p_n2o5,p_nh3,p_h2o2, & p_o3,p_ora1,p_op1,p_paa,p_sulf,p_so4aj,p_nh4aj,p_no3aj, & p_bc1,p_bc2,p_oc1,p_oc2,p_seas_1,p_seas_2, & - p_seas_3,p_seas_4,p_dms, & + p_seas_3,p_seas_4,p_dms,num_volc_diags, & p_facd,p_mepx,p_pacd USE module_state_description, only:p_cvasoaX,p_cvasoa1,p_cvasoa2,p_cvasoa3,p_cvasoa4,& p_cvbsoaX,p_cvbsoa1,p_cvbsoa2,p_cvbsoa3,p_cvbsoa4 @@ -144,7 +144,7 @@ SUBROUTINE GRELLDRVCT(DT,itimestep,DX, & ! Accumulated wet deposition ! REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT) :: wd_no3,wd_so4 - REAL, DIMENSION( ims:ime , jms:jme ,1:9), INTENT(INOUT) :: volc_diags ! A. Ukhov + REAL, DIMENSION( ims:ime , jms:jme, num_volc_diags), INTENT(INOUT) :: volc_diags ! A. Ukhov REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT) :: wd_nh4,wd_oa, & wd_so2, wd_sulf, wd_hno3, wd_nh3 REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT) :: & @@ -1992,7 +1992,7 @@ SUBROUTINE cup_up_tracer(ierr,tcrit,t,pre,z_cup,p,tracer,tre_cup,tr_up, & ! if (conv_tr_wetscav == 1) then - + dens = 0.1*p(i,k)/t(i,k)*mwdry/8.314472 ! kg/m3 tfac = (HL_t0 - t(i,k))/(t(i,k)*HL_t0) do nv=2,num_chem diff --git a/chem/module_vash_settling.F b/chem/module_vash_settling.F index 65655f6100..1da04a94cf 100755 --- a/chem/module_vash_settling.F +++ b/chem/module_vash_settling.F @@ -10,7 +10,8 @@ MODULE MODULE_VASH_SETTLING USE module_state_description, only: p_vash_1,p_vash_2, & p_vash_3,p_vash_4,p_vash_5,p_vash_6,p_vash_7, & p_vash_8,p_vash_9,p_vash_10,p_sulf,p_so2, & - chem_vash,chem_volc,chem_volc_4bin,p_qc ! A. Ukhov. + chem_vash,chem_volc,chem_volc_4bin,p_qc, & + num_volc_diags ! A. Ukhov. !Vertical grid indeces ! _ @@ -48,7 +49,7 @@ SUBROUTINE vash_settling_driver(dt,config_flags,t_phy,moist, & INTENT(IN ) :: t_phy,p_phy,dz8w,p8w,rho_phy ! A. Ukhov, Volcanic diagnostics - REAL, DIMENSION( ims:ime, jms:jme,1:9), INTENT(INOUT ) :: volc_diags + REAL, DIMENSION( ims:ime, jms:jme,num_volc_diags), INTENT(INOUT ) :: volc_diags REAL, INTENT(IN ) :: dt,dx,g integer :: nmx,i,j,k,kk,lmx @@ -317,7 +318,7 @@ subroutine volc_ash_sulf_so2_drydep_driver(dtstep, & REAL, DIMENSION( ims:ime , jms:jme ) , & INTENT(IN) :: tsk,pbl,ust,rmol,xland,znt,hfx REAL, DIMENSION( its:ite, jts:jte ), INTENT(IN) :: aer_res -REAL, DIMENSION( ims:ime, jms:jme,1:9), INTENT(INOUT ) :: volc_diags +REAL, DIMENSION( ims:ime, jms:jme,num_volc_diags), INTENT(INOUT ) :: volc_diags !! .. Local Scalars .. INTEGER :: n, nr, ipr, imx,jmx,lmx @@ -651,7 +652,7 @@ SUBROUTINE sulf_settling_driver(dt,config_flags,t_phy,moist, & REAL, DIMENSION(ims:ime,kms:kme,jms:jme,num_moist), INTENT(IN) :: moist REAL, DIMENSION(ims:ime,kms:kme,jms:jme,num_chem), INTENT(INOUT) :: chem REAL, DIMENSION(ims:ime,kms:kme,jms:jme), INTENT(IN) :: t_phy,p_phy,dz8w,p8w,rho_phy,z_at_w -REAL, DIMENSION(ims:ime,jms:jme,1:9), INTENT(INOUT) :: volc_diags +REAL, DIMENSION(ims:ime,jms:jme,num_volc_diags), INTENT(INOUT) :: volc_diags REAL, INTENT(IN) :: dt,dx,g INTEGER :: i,j,k,kk,lmx @@ -861,7 +862,7 @@ subroutine wetdep_ls_volc(dt,var,rain,moist,rho,num_moist, & !Accumulated large scale scaveged so2 and sulf REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT) :: wd_so2_sc,wd_sulf_sc -REAL, DIMENSION( ims:ime , jms:jme ,1:9), INTENT(INOUT) :: volc_diags +REAL, DIMENSION( ims:ime , jms:jme ,num_volc_diags), INTENT(INOUT) :: volc_diags REAL, DIMENSION( its:ite , jts:jte ) :: var_sum,var_rmv REAL, DIMENSION( its:ite , jts:jte ) :: frc,var_sum_clw,rain_clw diff --git a/chem/module_volc_chem.F b/chem/module_volc_chem.F index 05e6cfd9e0..673ee7165b 100644 --- a/chem/module_volc_chem.F +++ b/chem/module_volc_chem.F @@ -38,7 +38,7 @@ subroutine gocart_volc_chem_driver(curr_secs,dt,config_flags, & INTENT(IN ) :: & xlat,xlong,ttday,tcosz,mapfac_mx,mapfac_my - REAL, DIMENSION( ims:ime , jms:jme ,1:9), INTENT(INOUT) :: volc_diags + REAL, DIMENSION( ims:ime , jms:jme ,num_volc_diags), INTENT(INOUT) :: volc_diags REAL, DIMENSION( ims:ime , kms:kme , jms:jme ), & OPTIONAL, &