NCAR / amwg_dev

Repo to store model sandboxes and cases used for CAM development
9 stars 2 forks source link

f.cam6_3_102.FLTHIST_v0a.ne30.001 #234

Open cecilehannay opened 1 year ago

cecilehannay commented 1 year ago

Description: We are starting a new run with 102 that will include:

Case directory: Locally (if still available): /glade/p/cesmdata/cseg/runs/cesm2_0/f.cam6_3_102.FLTHIST_v0a.ne30.001

On github: https://github.com/NCAR/amwg_dev/tree/f.cam6_3_102.FLTHIST_v0a.ne30.001

user_nl_cam


mfilt    =       0,       5,     20,      40,      12,       1,      1
nhtfrq              =       0,     -24,    -24,      -3,       0,       0,      0
ndens               =       2,       2,      2,       2,       2,       1,      2
interpolate_output  =  .true.,  .true., .true., .false., .false., .false.,  .true.
interpolate_nlat    =     192,     192,    192,     192,     192,     192,   192
interpolate_nlon    =     288,     288,    288,     288,     288,     288,   288 

fexcl1 = ' '  

empty_htapes = .true.

fincl1 = 'ACTNI', 'ACTNL', 'ACTREI', 'ACTREL', 'AODDUST', 'AODVIS', 'AODVISdn','BURDENBC', 'BURDENDUST', 'BURDENPOM', 'BURDENSEASALT', 
'BURDENSO4', 'BURDENSOA', 'CAPE', 'CCN3', 'CDNUMC', 'CH4', 'CLDHGH', 'CLDICE', 'CLDLIQ', 'CLDLOW', 'CLDMED', 'CLDTOT', 'CLOUD', 'CMFMC_DP', 
'CT_H2O', 'DCQ', 'DQCORE', 'DTCOND', 'DTCORE', 'DTV', 'EVAPPREC', 'EVAPSNOW', 'FCTI', 'FCTL', 'FICE', 'FLDS', 'FLNS', 'FLNSC', 'FLNT', 'FLNTC', 'FLUT', 
'FREQZM', 'FSDS', 'FSDSC', 'FSNS', 'FSNSC', 'FSNT', 'FSNTC', 'FSNTOA', 'ICEFRAC', 'LANDFRAC', 'LHFLX', 'LWCF', 'MPDICE', 'MPDLIQ', 'MPDQ', 'MPDT', 
'OCNFRAC', 'OMEGA', 'OMEGA500', 'PBLH', 'PHIS', 'PINT', 'PMID', 'PRECC', 'PRECL', 'PRECSC', 'PRECSL', 'PRECT', 'PS', 'PSL', 'PTEQ', 'PTTEND', 'Q', 
'QFLX', 'QRL', 'QRS', 'QTGW', 'RCMTEND_CLUBB', 'RELHUM', 'RVMTEND_CLUBB', 'SHFLX', 'SOLIN', 'SST', 'STEND_CLUBB', 'SWCF', 
'T', 'TAUX', 'TAUY', 'TFIX', 'TGCLDIWP', 'TGCLDLWP', 'TMQ', 'TREFHT', 'TS', 'TTGW', 'U', 'U10', 'UBOT', 'UTGWORO', 'UTGW_TOTAL', 
'V', 'VBOT', 'VTGWORO', 'VTGW_TOTAL', 'WPRTP_CLUBB', 'WPTHLP_CLUBB', 'Z3', 'ZMDQ', 'ZMDT', 'N2O', 'CO2','CFC11','CFC12', 
'CLD_MISR','FISCCP1_COSP','CLD_CAL','CLD_MISR','CLDTOT_CAL','CLDHGH_CAL', 'CLDMED_CAL','CLDLOW_CAL','CLMODIS', 'AODVISdn'

fincl2 = 'OMEGA', 'PMID', 'PS', 'Q', 'QRL', 'QRS', 'T', 'TROP_P', 'TROP_T', 'U', 'V', 'Z3'

fincl3 = 'PRECT', 'PRECC', 'FLUT', 'U850', 'U200', 'V850', 'V200', 'OMEGA', 'PSL'

fincl4 =  'PRECC','PRECL'

fincl5 = 'Uzm','Vzm','Wzm','THzm', 'VTHzm','WTHzm','UVzm','UWzm'

fincl6 =  'WV_phBF','WL_phBF','WI_phBF','SE_phBF','KE_phBF',
'WV_phBP','WL_phBP','WI_phBP','SE_phBP','KE_phBP',
'WV_phAP','WL_phAP','WI_phAP','SE_phAP','KE_phAP',
'WV_phAM','WL_phAM','WI_phAM','SE_phAM','KE_phAM',
'WV_dyBF','WL_dyBF','WI_dyBF','SE_dyBF','KE_dyBF',
'WV_dyBP','WL_dyBP','WI_dyBP','SE_dyBP','KE_dyBP',
'WV_dyAP','WL_dyAP','WI_dyAP','SE_dyAP','KE_dyAP',
'WV_dyAM','WL_dyAM','WI_dyAM','SE_dyAM','KE_dyAM',
'WV_dBF','WL_dBF','WI_dBF','SE_dBF','KE_dBF',
'WV_dED','WL_dED','WI_dED','SE_dED','KE_dED',
'WV_dAD','WL_dAD','WI_dAD','SE_dAD','KE_dAD',
'WV_dAF','WL_dAF','WI_dAF','SE_dAF','KE_dAF',
'WV_dBD','WL_dBD','WI_dBD','SE_dBD','KE_dBD',
'WV_dAR','WL_dAR','WI_dAR','SE_dAR','KE_dAR',
'WV_dAH','WL_dAH','WI_dAH','SE_dAH','KE_dAH',
'WV_dBH','WL_dBH','WI_dBH','SE_dBH','KE_dBH',
'WV_dCH','WL_dCH','WI_dCH','SE_dCH','KE_dCH',
'WV_dAS','WL_dAS','WI_dAS','SE_dAS','KE_dAS',
'WV_dBS','WL_dBS','WI_dBS','SE_dBS','KE_dBS',
'EFIX'

fincl7= 'AQSO4_H2O2','AQSO4_O3', 'bc_a1', 'bc_a4', 'dst_a1', 'dst_a2', 'dst_a3', 'ncl_a1',
'ncl_a1', 'ncl_a2', 'ncl_a3', 'pom_a1', 'pom_a4', 'so4_a1', 'so4_a2', 'so4_a3',
'soa_a1', 'num_a1', 'num_a2', 'num_a3', 'num_a4',
'bc_a1SFWET', 'bc_a4SFWET', 'dst_a1SFWET', 'dst_a2SFWET', 'dst_a3SFWET', 'ncl_a1SFWET',
'ncl_a2SFWET', 'ncl_a3SFWET', 'pom_a1SFWET', 'pom_a4SFWET', 'so4_a1SFWET', 'so4_a2SFWET', 'so4_a3SFWET', 'soa_a1SFWET',
'soa_a2SFWET', 'bc_c1SFWET', 'bc_c4SFWET', 'dst_c1SFWET', 'dst_c2SFWET', 'dst_c3SFWET', 'ncl_c1SFWET', 'ncl_c2SFWET',
'ncl_c3SFWET', 'pom_c1SFWET', 'pom_c4SFWET', 'so4_c1SFWET', 'so4_c2SFWET', 'so4_c3SFWET', 'soa_c1SFWET', 'soa_c2SFWET',
'bc_a1DDF', 'bc_a4DDF', 'dst_a1DDF', 'dst_a2DDF', 'dst_a3DDF', 'ncl_a1DDF', 'ncl_a2DDF', 'ncl_a3DDF',
'pom_a1DDF', 'pom_a4DDF', 'so4_a1DDF', 'so4_a2DDF', 'so4_a3DDF', 'soa_a1DDF', 'soa_a2DDF',
'so4_a1_CLXF', 'so4_a2_CLXF', 'SFbc_a4', 'SFpom_a4', 'SFso4_a1', 'SFso4_a2',
'so4_a1_sfgaex1', 'so4_a2_sfgaex1', 'so4_a3_sfgaex1', 'soa_a1_sfgaex1', 'soa_a2_sfgaex1',
'SFdst_a1','SFdst_a2', 'SFdst_a3', 'SFncl_a1', 'SFncl_a2', 'SFncl_a3',
'num_a2_sfnnuc1'

phys_grid_ctem_nfreq=-6
phys_grid_ctem_zm_nbas=120
phys_grid_ctem_za_nlat=90

ncdata = '/glade/p/cesm/amwg_dev/juliob/FWsc_ne30pg3_58L_GRID_48_taperstart10km_lowtop_BL10_v3_beta1p75_Top_43km.nc'

clubb_l_predict_upwp_vpwp=.true. 
clubb_l_mono_flux_lim_um   = .true.  
clubb_l_mono_flux_lim_vm   = .true.  
clubb_c_uu_shr = 0.1
clubb_c7=0.1

dust_emis_fact         = 0.80D0

Sandbox: Locally (if still available): /glade/work/hannay/cesm_tags/f.cam6_3_102

On github: https://github.com/ESCOMP/CAM/tree/cam6_3_102 hash: fd1c488

Diagnostics: ADF diags (if available) https://webext.cgd.ucar.edu/FLTHIST/f.cam6_3_102.FLTHIST_v0a.ne30.001/atm/

Contacts: @cacraigucar, @cecilehannay, @julio, @fvitt, @adamrher, @brianpm, @dan800, @klindsay28, @tilmes, @islasimpson

cecilehannay commented 1 year ago

I am still having problems with the TEM diags in cam6_3_102.

 FLDLST: VTHzaphys in fincl(1, 5) not found
 FLDLST: WTHzaphys in fincl(2, 5) not found
 FLDLST: UVzaphys in fincl(3, 5) not found
 FLDLST: UWzaphys in fincl(4, 5) not found
 FLDLST: Uzm in fincl(5, 5) only available with FV dycore
 FLDLST: Wzm in fincl(6, 5) only available with FV dycore
 FLDLST: Vzm in fincl(7, 5) only available with FV dycore
 FLDLST: THzm in fincl(8, 5) only available with FV dycore
 ERROR: FLDLST: 4 errors found, see log
cecilehannay commented 1 year ago

I restarted without the TEM diags for now as I would like to know if the rest is working.

islasimpson commented 1 year ago

Is it that do_tem_diags=.true. thing needed? I may have got it wrong what exactly the namelist parameter is.

cecilehannay commented 1 year ago

I looked at the output (without TEM diags): /glade/scratch/hannay/archive/f.cam6_3_102.FLTHIST_v0a.ne30.001/atm/hist

I am curious to know who is looking at the fincl2. This is a lot of output. If it is needed, it is fine but I don't remember seeing a lot of plots of these fields.

dan800 commented 1 year ago

@fvitt merged the TEM code yesterday and the issue was closed. https://github.com/ESCOMP/CAM/pull/770

adopts the zm naming convention for the zonal mean outputs.
add 'Uzm','Vzm','Wzm','THzm' output fields

So any idea why TEM output is not working?

FLDLST: Uzm in fincl(5, 5) only available with FV dycore
 FLDLST: Wzm in fincl(6, 5) only available with FV dycore
 FLDLST: Vzm in fincl(7, 5) only available with FV dycore
 FLDLST: THzm in fincl(8, 5) only available with FV dycore

BTW, did we revert back to the old names for TEM terms (e.g., 'UWzm') and do away with the zaphys names?

FLDLST: VTHzaphys in fincl(1, 5) not found
 FLDLST: WTHzaphys in fincl(2, 5) not found
 FLDLST: UVzaphys in fincl(3, 5) not found
 FLDLST: UWzaphys in fincl(4, 5) not found
fvitt commented 1 year ago

TEM should work with these settings: phys_grid_ctem_nfreq=-6 phys_grid_ctem_zm_nbas=120 phys_grid_ctem_za_nlat=90 fincl3 = 'Uzm','Vzm','Wzm','THzm', 'VTHzm','WTHzm','UVzm','UWzm'

fvitt commented 1 year ago

@cecilehannay In SourceMods you have physpkg.F90 which does not include the updates needed for TEM (updates in cam6_3_02). Remove physpkg.F90 from SourceMods and rebuild. Then the TEM should work with cam_dev physics and the *zm output fields listed above.

cecilehannay commented 1 year ago

@fvitt: I need this code for COSP but I will merge the two physpkg.F90 I will update the fincl5 for the new zm naming convention.

fincl5 = 'Uzm','Vzm','Wzm','THzm', 'VTHzm','WTHzm','UVzm','UWzm'
adamrher commented 1 year ago

@cecilehannay Brian Eaton simplified that PR for COSP and now it only requires modifications to cospsimulator_intr.F90. So you can checkout Ben's PR branch and SourceMod in cospsimulator_intr. And then just ditch the physpkg and convect_diagnostics SourceMods that were the "old" fix for COSP.

cacraigucar commented 1 year ago

An alternative is that @brian-eaton start regression testing for the COSP changes this afternoon (after #783 is tagged as cam6_3_103) and he can make a tag later today or tomorrow morning at the latest. Then the COSP code and cam6_3_102 will work properly together.

Let us know if you want to proceed with this, otherwise we'll wait until the CO2 changes are confirmed and put them into together.

dan800 commented 1 year ago

FWIW, I think waiting until we have a code base that can do both COSP and TEM at the same would be better than trying to merge things in source mods.

cecilehannay commented 1 year ago

I merged and submitted a 2-year run before seeing your comments (I was in meeting all afternoon). I will let the run completes to see if there is any showstopper or anything missing. Then, we can use a more recent tag for a longer run.

cecilehannay commented 1 year ago

This run is two years: /glade/scratch/hannay/archive/f.cam6_3_102.FLTHIST_v0a.ne30.001/atm/hist

Please check that it looks ok to and that you have everything you need. Then we can decide what we want to do (i.e. move to a more recent tag, continue the run, add/remove diags, ...).

cacraigucar commented 1 year ago

@cecilehannay - @brian-eaton has just made cam6_3_105 which contains the fix for COSP. He expects to have cam6_3_106 (with the proposed CO2 fix) ready to commit later today. We will wait to commit this until we hear that it should go into CAM

JulioTBacmeister commented 1 year ago

For the purposes of the coupled evaluation the important thing is whether the prognostic CO2 looks OK along with RESTOM FLNT etc... If the first two years look OK we should just continue this run and evaluate its climate based on the longer run. When the TEM and COSP diagnostics are finished we can start a new F-case run, but I don't think they are essential for deciding whether we can go ahead with couped testing. Thoughts?

cacraigucar commented 1 year ago

I would encourage Cecile to use at least cam6_3_105 in a run before we start a coupled run using it. There are several reasons (and it is just me being super cautious).

  1. cam6_3_105 has the COSP change implemented in a different module. While the effect "should" be identical and Ben's runs indicated they were, I believe it would be good to confirm it with an F compset run.
  2. cam6_3_105 has updated all of the externals to match what is in the lastest CESM alpha tag, cesm2_3_alpha12d. The update to the externals is answer changing due to changes in CTSM. It might be good to have a run which sees the changes due to CTSM before the other components are coupled in.

Waiting for cam6_3_106 (which will contain the CO2 fix) is less problematic as the source code changes for it will be identical with what Cecile is using in her SourceMods. I don't see a need to have Cecile use this tag in an F compset run, but it should certainly be used in the coupled run.

@JulioTBacmeister - Are we at the point where we should be bringing the CO2 changes into cam_development, or is it still to early to make that decision?

cecilehannay commented 1 year ago

@cacraigucar: I am not worried about the COSP change are just diags. The CTSM changes could be more important. I don't know what they are. Do you need it now or can I just continue this run as @JulioTBacmeister suggested? Do I wait for cam6_3_106 and do another shorter run to test it before run coupled.

cacraigucar commented 1 year ago

@cecilehannay - I should be careful in my statements. The answer changes may be due to CTSM or they could also be NUOPC related or due to any of the other externals which CAM uses. It is up to you on whether you want to see the impact of the external changes on a long run or not. I can say definitively, that during the CAM regression testing, F compsets did have answer changes when we updated the externals.

JulioTBacmeister commented 1 year ago

Thanks @cacraigucar

Cecile will use cam6_3_105 for all new simulations.

We need to check the two years Cecile has already run (@dan800 ?) before making the call about putting the CO2 changes into cam_development. If this run looks OK the CO2 changes (prognostic, radiatively active CO2) should go in to cam_development.

cacraigucar commented 1 year ago

@JulioTBacmeister and @cecilehannay - I'm hoping that if we move forward with the CO2, that @cecilehannay will use cam6_3_106 instead of cam6_3_105 for her new simulations

JulioTBacmeister commented 1 year ago

@cacraigucar what will be in cam6_3_106 besides the CO2 fix?

JulioTBacmeister commented 1 year ago

and when will it be ready? We'd like to get the extended F-case started ASAP.

brian-eaton commented 1 year ago

cam6_3_106 only has the CO2 fix in it. And note that this only has an impact if your run starts from an initial file that does not contain CO2. If you are extending runs either using restarts or using an initial file from the previous run that contains CO2 then it will have no impact. The testing on cam6_3_106 is done so I'm just waiting for the go ahead to merge it to cam_development and create the tag.

JulioTBacmeister commented 1 year ago

OK. This seems completely uncontroversial. Go ahead and merge it.

adamrher commented 1 year ago

Some results comparing this FLTHIST run to FWscHIST. These are just two year means so we should expect some noise.

temp_dzonal_T

Compare to our prior FLTHIST run, which had the hot top (likely because there is too little CO2 up there).

And here are the Q changes:

temp_dzonal_Q

Compare that to the Q changes in the prior FLTHIST run. It seems more clear now that these water vapor changes in the old run were probably reflecting the large changes in T. And that the actual impact of the UBC in FLTHIST, is not as drastic as those earlier runs indicated.

dan800 commented 1 year ago

Sorry, been on a panel today. I had a quick look at CO2 and the CFCs. The latter have only just been added to the h0s and are input to the RT, so worth checking.

CO2 looks good - not seeing anything odd at the UB:

image

At the end of 2 years the CO2 in the upper part of the model seems to be lagging the troposphere by 4 ppm, which I guess is about what it might have changed in that time. Also, nice to see the air is 'older' at high latitudes. image

CFCs spinning up: image

image

There's a loss of CFCs specified in the model domain, unlike with CO2.

At the end of the 2 years:

image image

Obs (SPARC climatologies):

Screenshot 2023-04-06 at 4 40 08 PM

Screenshot 2023-04-06 at 4 39 42 PM note: Pressure range is 300-10 hPa in these plots.

Looks to be about half of observed in 2005-7 but that's about the trend difference.

image

dan800 commented 1 year ago

I'm looking at the TEM file - it's got a lot of unnecessary output fields related to COSP. Does it need to be in there? cosp_prs_bnds (time, cosp_prs, nbnd) float64 dask.array<chunksize=(1, 7, 2), meta=np.ndarray> cosp_tau_bnds (time, cosp_tau, nbnd) float64 dask.array<chunksize=(1, 7, 2), meta=np.ndarray> cosp_ht_bnds (time, cosp_ht, nbnd) float64 dask.array<chunksize=(1, 40, 2), meta=np.ndarray> cosp_sr_bnds (time, cosp_sr, nbnd) float64 dask.array<chunksize=(1, 15, 2), meta=np.ndarray> cosp_dbze_bnds (time, cosp_dbze, nbnd) float64 dask.array<chunksize=(1, 15, 2), meta=np.ndarray> cosp_htmisr_bnds (time, cosp_htmisr, nbnd) float64 dask.array<chunksize=(1, 16, 2), meta=np.ndarray> cosp_tau_modis_bnds (time, cosp_tau_modis, nbnd) float64 dask.array<chunksize=(1, 7, 2), meta=np.ndarray> cosp_reffice_bnds (time, cosp_reffice, nbnd) float64 dask.array<chunksize=(1, 6, 2), meta=np.ndarray> cosp_reffliq_bnds (time, cosp_reffliq, nbnd) float64 dask.array<chunksize=(1, 6, 2), meta=np.ndarray>

dan800 commented 1 year ago

I have the first two year of TEM output calculated. They are on glade here: ~marsh/projects/CAM7-Evaluation/notebooks/TEM/f.cam6_3_102.FLTHIST_v0a.ne30.001.TEM.nc New zonal mean output seems to be working! Here's the mass streamfunction for the last timestep: image @islasimpson Please take a look. w* looks a bit funky near the top:

image

adamrher commented 1 year ago

Very cool to see the larger CO2 "emissions" in the NH spring/summer months, compared with the lower emissions in SH spring/summer.

Let's plan to dump out a new inic file for use in the coupled eval, that has the CFC's spun-up. I believe setting inithist_all forces all constituents into the cam.i file.

dan800 commented 1 year ago

Summary in google slide form for tomorrow https://docs.google.com/presentation/d/16FZoB8HNIUPR5qkWRlmjvbYpu654orV59LvwdRKqe3k/edit?usp=sharing I'm tied up in a NAS panel but hopefully someone can present on my behalf I have added a link in the agenda

dan800 commented 1 year ago

Very cool to see the larger CO2 "emissions" in the NH spring/summer months, compared with the lower emissions in SH spring/summer.

Let's plan to dump out a new inic file for use in the coupled eval, that has the CFC's spun-up. I believe setting inithist_all forces all constituents into the cam.i file.

I think the emissions actually peak in winter spring (as things die off/decay) and it's not until summer where they are being drawn down by vigorous plant growth. I'm sure you know, but we are specifying a concentration not emission in this run.

brian-eaton commented 1 year ago

inithist_all is a relic from when Dave Williamson and Jerry Olsen were attempting to make initial files behave like restart files for their CAPT work. It adds extra variables to the initial file which are not relevant for cam_dev physics.

By default all advected constituents are included in the initial file. Also by default initial files are written yearly on Jan 1, so Cecile's current runs should be generating them.

adamrher commented 1 year ago

I stand corrected. No, it's not summer, but winter, when NH is emitting a maxima in CO2, and no, we don't need to set inithist to generate a new inic. I'm adding so much value here.

dan800 commented 1 year ago

@adamrher OK, I'm no tropospheric expert but look at those winds in the SH compared to ERA-40 in the slide deck - seems way to strong in winter (JJA). I'd worry about sea ice in coupled runs. Is the SAM a diagnostic we are looking at?

adamrher commented 1 year ago

@brian-eaton thanks for the background on _all; clarification on what's in the cam.i. files

brian-eaton commented 1 year ago

I'm looking at the TEM file - it's got a lot of unnecessary output fields related to COSP. Does it need to be in there? cosp_prs_bnds (time, cosp_prs, nbnd) float64 dask.array<chunksize=(1, 7, 2), meta=np.ndarray> cosp_tau_bnds (time, cosp_tau, nbnd) float64 dask.array<chunksize=(1, 7, 2), meta=np.ndarray> cosp_ht_bnds (time, cosp_ht, nbnd) float64 dask.array<chunksize=(1, 40, 2), meta=np.ndarray> cosp_sr_bnds (time, cosp_sr, nbnd) float64 dask.array<chunksize=(1, 15, 2), meta=np.ndarray> cosp_dbze_bnds (time, cosp_dbze, nbnd) float64 dask.array<chunksize=(1, 15, 2), meta=np.ndarray> cosp_htmisr_bnds (time, cosp_htmisr, nbnd) float64 dask.array<chunksize=(1, 16, 2), meta=np.ndarray> cosp_tau_modis_bnds (time, cosp_tau_modis, nbnd) float64 dask.array<chunksize=(1, 7, 2), meta=np.ndarray> cosp_reffice_bnds (time, cosp_reffice, nbnd) float64 dask.array<chunksize=(1, 6, 2), meta=np.ndarray> cosp_reffliq_bnds (time, cosp_reffliq, nbnd) float64 dask.array<chunksize=(1, 6, 2), meta=np.ndarray>

@dan800, these are small arrays and are essentially coordinate metadata for cosp output. Note that there are no horizontal grid dimensions (ncol_d) in them. This is a "feature" of our history output -- all the coordinate data is written into every history/initial file without checking whether there is a variable being written which requires that coordinate.

tilmes commented 1 year ago

I am looking at aerosol diagnostics. @cecilehannay could you add soa_a2 also to the list in fincl7, I guess it still slipped in the earlier list.

Here are the budgets (SOA burden is missing, because of the missing fincl), compared to the earlier TCMTHIST runs (that were done in 1996-1999). Differences are due to changes in emissions (like BC , POM, sulfate), but dust and sea-salt look good. Dust is higher, but the earlier run was probably low.

image

Total AODVISdn is 0.105, usually, I think, we tune for something like 0.13, but I think, we have different emissions in 1980, so this is probably OK for now and we have to compare with later dates.

Compared to AOD from MODIS (though for later years), this compares to a 2000-2020 climatology, so we need to wait for later years of the simulation.

image

@JulioTBacmeister Regarding tuning clouds, one thought is that we need to make sure we are comparing the same years with the observations when we tune the clouds since emissions (especially BC, POM, and SO4) are changing between 1980 and 2000, which could change clouds as well.