-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Aerosol loss is larger than aerosol source terms #143
Comments
Hi - could the initial conditions bring in too much sea salt, which results in high initial removal flux, until its in equlibrium? How is the balance in month 2 and 3? |
It is a cold start so it start with zero aerosols. I can start a run for a longer period this afternoon, but I doubt that it will make a difference. Øyvind |
Well if both start with zero aerosols, that is of course comparable. |
I think I found the problem with the added mass. Why is it in oslo_aero_depos_dry? The reason was that pre-clubb and to some extent also in CAM6 the vertical diffusion dry deposition and emissions was treated independently. For sea-salt and mineral dust this sometimes resulted in a saw-tooth function of the concentration near the surface since the dry deposition of mineral dust may be a large fraction of the emssions. In CAM7 the even thinner surface layer was likely making this problem even more visible, but here the emissions are now integrated into CLUBB. It seems that the tendency is not set to zero after the NorESM emissions tendency and then the tendency was added over again in CLUBB. Given that the tendency in CAM7 is now merged into CLUBB the oslo-aero merge may not longer be needed. After setting the sea-salt tendency in oslo_aero_depos_dry to zero for coarse mode sea-salt the budget is in balance. |
@oyvindseland - this is fantastic news! Thanks so much for tracking this down. Once you verify this as 100% - we should integrate this back into the development branch and also create a new noresm2_5_alpha02 tag with updated components that we can use for a new coupled simulation. |
That sounds like a very good path ! thanks @oyvindseland . Was this an issue also in CAM6, NorESM2.x?? |
Can the fix for this could be to just remove the following in !-------------------------------------------------------------------------
! FIX- START
! CAN all of this be removed???
!Solve implicitly for eqn for emission and dry dep in lowest layer
deltaH(:ncol) = pdel(:ncol,pver)/rho(:ncol,pver)/gravit ![m] height of layer
lossRate(:ncol) = vlc_dry(:ncol,pver,jvlc)/deltaH(:ncol) ![1/s] loss rate out of layer
!special treatment of BC_AX because BC_AX is not treated with
!boundary mixing in activation (is by definition not activated!)
if(mm .eq. l_bc_ax) then
totalProd(:ncol) = interfaceTendToLowestLayer(:ncol)
else
totalProd(:ncol) = cflx(:ncol,mm)*gravit/pdel(:ncol,pver) + interfaceTendToLowestLayer(:ncol)
end if
where(lossRate(:ncol)*dt .gt. 1.e-2_r8)
MMRNew(:ncol) = q(:ncol,pver,mm)*exp(-lossRate(:ncol)*dt) &
+ totalProd(:ncol)/lossRate(:ncol)*(1.0_r8 - exp(-lossRate(:ncol)*dt))
elsewhere
MMRNew(:ncol) = q(:ncol,pver,mm) &
+ totalProd(:ncol)*dt - q(:ncol,pver,mm)*lossRate(:ncol)*dt
end where
!Overwrite tendency in lowest layer to include emissions
ptend%q(:ncol,pver,mm) = (MMRNew(:ncol)-q(:ncol,pver,mm))/dt
!They are then not included in vertical diffusion!!
massLostDD(:ncol) = q(:ncol,pver,mm) - MMRNew(:ncol) + totalProd(:ncol)*dt
sflx(:ncol) = massLostDD(:ncol)*pdel(:ncol,pver) / gravit / dt
! FIX END
!------------------------------------------------------------------------- |
Yes that part should be removed but it is possible MMRnew is still needed but only with the loss term included. |
@oyvindseland - can you please clarify what you mean by "MMRnew is still needed but only with the loss term included". --------------------
mam4 noresm2.5
--------------------
aero_model_drydep in chemistry/modal_aero/aero_model.F90
calls dust_sediment_tend (in chemistry/aerosol/dust_sediment_mod.F90)
! calculate the tendencies and sfc fluxes
if ((lphase == 1) .and. (lspec <= nspec_amode(m))) then
call dust_sediment_tend( ncol, dt, state%pint(:,:), state%pmid, state%pdel, state%t , &
state%q(:,:,mm), pvmzaer, ptend%q(:,:,mm), sflx )
else if ((lphase == 1) .and. (lspec == nspec_amode(m)+1)) then ! aerosol water
call dust_sediment_tend(ncol, dt, state%pint(:,:), state%pmid, state%pdel, state%t , &
qaerwat(:,:,mm), pvmzaer, dqdt_tmp(:,:), sflx )
else ! lphase == 2
call dust_sediment_tend(ncol, dt, state%pint(:,:), state%pmid, state%pdel, state%t , &
fldcw(:,:), pvmzaer, dqdt_tmp(:,:), sflx )
dust_sediment_mod.F90: dust_sediment_tend()
subroutine dust_sediment_tend (ncol, dtime, pint, pmid, pdel, t, &
dustmr ,pvdust, dusttend, sfdust )
--------------------
oslo_aero noresm2.5
--------------------
aero_model.F90:aero_model_drydep() calls oslo_aero_depos.F90:oslo_aero_depos_dry()
oslo_aero_depos.F90:oslo_aero_depos_dry()
if ((lphase == 1) .and. (lspec <= nspec_amode(m))) then
call oslo_aero_dust_sediment_tend(ncol, dt, pint(:,:), pmid, pdel, t , &
q(:,:,mm), pvmzaer, ptend%q(:,:,mm), sflx, dusttend_to_ll_out=interfaceTendToLowestLayer)
else ! lphase == 2
call oslo_aero_dust_sediment_tend(ncol, dt, pint(:,:), pmid, pdel, t, &
fldcw(:,:), pvmzaer, dqdt_tmp(:,:), sflx)
endif
|
As long as subroutine dust_sediment_tend (ncol, dtime, pint, pmid, pdel, t, & dusttend is intent(out ) (or in/out) |
I checked dust_sediment_tend so, yes just deleting the lines you wrote above should work. Øyvind |
I ran the simulation for 1 month. The model should be run for longer to make any final conclusions about the changes, but the problem of mass balance has disappeared. New numbers below. I also checked the mass balance for coarse mode mineral dust. The sea-salt emissions has gone up quite substantially ~ close to 50% . Some of it is due to higher resolution (10-20%) Mineral dust increase a lot ~Factor of 7-8. Most of this can be explained by higher emissions (Factor of 3) and error in dry deposition (1.5), so it is likely a feature of the model not due to any bug. One minor issue. The DMS flux is not written out together with the other fluxes. The DMS concentration is comparable to NorESM2 so I guess it is just a matter of finding the flux somewhere. SFSS_A3 = 2.475805e-10 ; SS_A3DDF = 6.012387e-11 SS_A3SFWET = -6.336213e-11 ; Balance: SFSS_A3 - (SS_A3DDF+SS_A3_OCWDDF) + (SS_A3SFWET+SS_A3_OCWSFWET) cb_SS_A3 = 1.949281e-05 ; cb_SS_A3_OCW = 1.49497e-06 |
Closing issue |
What happened?
Output from a one month test simulation gave a much higher loss of the coarse mode sea-salt than emission flux. Based on the high concentrations of aerosols in the development version I expect that it is true also for the other tracers.
The reason I suspect a problem with the source terms and not the sink term is that total amount of the tracers is much higher than in NorESM2.0
A comparison with NorESM2.0 below.
NorESM2.5
NF2000oslo_alpha_ne30pg3_ne30pg3_mtn14.cam.h0.0001-01.nc
SFSS_A3 = 2.371297e-10 ! Source term of coarse mode sea-salt
SS_A3DDF = 1.323147e-10 ! Total dry deposition interstitial coarse mode sea-salt
SS_A3_OCWDDF = 1.119267e-11 ; ! Total dry deposition of coarse mode sea-salt in stratiform cloud drops
SS_A3SFWET = -1.214858e-10 ; ! Total wet deposition of interstitial coarse mode sea-salt
SS_A3_OCWSFWET = -1.990657e-10 ; ! Total wet deposition of coarse mode sea-salt in stratiform cloud drops
Balance: SFSS_A3 - (SS_A3DDF+SS_A3_OCWDDF) + (SS_A3SFWET+SS_A3_OCWSFWET)
Balance: - 2.3e-10
cb_SS_A3 = 3.807074e-05 ; ! Column burden of interstitial coarse mode sea-salt
cb_SS_A3_OCW = 2.935541e-06 ; ! Column burden of coarse mode sea-salt in stratiform cloud drops
NorESM2.0.rel06
NF1850norbc_aer2014_rel206_f19_f19_tn14.cam.h0.0001-01.nc
SFSS_A3 = 1.643476e-10 ;
SS_A3DDF = 6.388461e-11
SS_A3_OCWDDF = 4.9274e-12 ;
SS_A3SFWET = -3.659722e-11 ;
SS_A3_OCWSFWET = -5.466723e-11 ;
Balance: 4.3e-12
cb_SS_A3 = 1.122047e-05 ;
cb_SS_A3_OCW = 1.054294e-06 ;
What are the steps to reproduce the bug?
Case used /cluster/projects/nn2345k/oyvinds/NorESM2.5dev/noresm2_5_alpha02_v0/cases/NF2000oslo_alpha_ne30pg3_ne30pg3_mtn14
but any oslo_aero compset from the version will do.
history_aerosol=.true. must be added to the namelist to get the budget terms
What CAM-Nor tag were you using?
cam6_2_003-3204-g94be31f
What machine were you running CAM (or NorESM) on?
Betzy
What compiler were you using?
Intel
Path to a case directory, if applicable
/cluster/projects/nn2345k/oyvinds/NorESM2.5dev/noresm2_5_alpha02_v0/cases/NF2000oslo_alpha_ne30pg3_ne30pg3_mtn14
Will you be addressing this bug yourself?
Yes, but I will need some help
Extra info
Will work on it myself for now, but if anyone know about any changes in structures from CAM6 to CAM7-alpha that should be examined please add information. E.g change of sign in tendency calculations or special treatment of surface fluxes in the much lower surface layer of the model
The text was updated successfully, but these errors were encountered: