Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Diagnostic radiation calculations for aerosols in WACCM?

Hi everyone,

Is WACCM able to perform radiation diagnostic aerosol calculations? I'd like to isolate the radiative aerosol effect from a specific set of aerosols but there is a note in the user guide (8. Physics modifications via the namelist — camdoc documentation) which states that the calculation is currently unable to be performed when 'model_strat_sulfate' is set to true (i.e. using WACCM). I gave it a shot anyways by following the black carbon modifications in 'user_nl_cam' found in the link above, I receive this error message from rad_constiuents.F90:

ERROR: parse_mode_defs: ERROR: expect to find source field first
parse_mode_defs: ERROR: expect to find source field first
input string:

I am not sure if the error is associated with a typo in my modified 'user_nl_cam' or if it is due to the fact that WACCM currently can't perform this calculation yet. I'd appreciate any insight into this issue.

Thanks,
Chris Maloney
 

mmills

CSEG and Liaisons
Staff member
WACCM can do radiation diagnostic calculations. What do you have in your user_nl_cam?
 
Thanks Mike,

I've copied the relevant user_nl_cam text below. The case is a hybrid run referencing a previous F-case that I ran. It compiles successfully, but dies shortly after beginning a run.


fincl1 = 'AODMODE1', 'AODMODE2', 'AODMODE3', 'AQ_bc_a1', 'AQ_num_a1', 'AQ_num_a2', 'AQ_num_a3', 'AQ_pom_a1', 'DMS', 'EXTINCT',
'GS_bc_a1', 'GS_num_a1', 'GS_num_a2', 'GS_num_a3', 'bc_a1', 'pom_a1', 'so4_a1', 'so4_a2',
'so4_a3', 'dst_a1', 'dst_a3', 'soa_a1', 'soa_a2', 'num_a1', 'num_a2', 'num_a3', 'ncl_a1', 'ncl_a2', 'ncl_a3', 'bc_c1',
'pom_c1', 'so4_c1', 'so4_c2', 'so4_c3', 'dst_c1', 'dst_c3', 'soa_c1', 'soa_c2', 'num_c1', 'num_c2', 'num_c3', 'ncl_c1',
'ncl_c2', 'ncl_c3', 'bc_a1_CLXF', 'bc_a1_XFRC', 'num_a1_CLXF', 'num_a1_XFRC', 'num_a2_CLXF', 'num_a2_XFRC', 'pom_a1_CLXF', 'pom_a1_XFRC',
'T', 'O3', 'H2O', 'CO', 'NO', 'CO2', 'AEROD_v', 'ABSORB', 'AODVIS', 'BURDEN1', 'BURDEN2', 'BURDEN3', 'IWC', 'LWC', 'AQ_DMS', 'Q',
'RELHUM', 'FLNT', 'FLUT', 'FLNTC', 'FLUTC', 'FSNT', 'FSNTC', 'FSNTOA', 'FSNTOAC', 'FSUTOA', 'H2O2', 'H2SO4', 'OMEGAT', 'OMEGA', 'PS',
'PSL', 'QRL', 'QT', 'SO2', 'SOAG', 'TROP_P', 'TROP_T', 'TROP_Z', 'TS', 'U', 'V', 'Z3', 'bc_a1_SRF', 'pom_a1_SRF', 'dst_a1_SRF',
'dst_a3_SRF', 'ncl_a1_SRF', 'ncl_a2_SRF', 'ncl_a3_SRF', 'num_a1_SRF', 'num_a2_SRF', 'num_a3_SRF', 'so4_a1_SRF', 'so4_a2_SRF', 'so4_a3_SRF',
'soa_a1_SRF', 'soa_a2_SRF', 'SST', 'AQSO4_O3', 'NOX', 'QRS_LO3', 'U200', 'U250', 'U850', 'V200', 'V250', 'V850', 'CLOUD', 'CLDHGH',
'CLDICE', 'CLDLIQ', 'LWCF', 'NUMICE', 'SWCF', 'FDS', 'FDL', 'FSN200', 'FSN200C', 'FUS', 'FUL', 'FLN200', 'FLN200C', 'FLDS',
'FULC', 'FUSC', 'FSDS', 'PDELDRY', 'bc_a4', 'num_a4', 'pom_a4', 'bc_a4_SRF', 'AODMODE4', 'AODNIR', 'AODNIRdn',
'AODNIRst', 'AODNIRstdn', 'AODdnMODE1', 'AODdnMODE2', 'AODdnMODE3', 'AODdnMODE4', 'AODvstrt', 'AODBC', 'AODBCdn', 'BURDENBC', 'BURDENBCdn', 'BURDENdn1',
'BURDENdn4', 'EXTINCTdn', 'EXTINCTNIR', 'EXTINCTNIRdn', 'INnbc', 'O3_Prod', 'O3_Loss', 'RO2_NO3_sum', 'OddOx_HOx_Loss', 'OddOx_CLOxBROx_Loss', 'OddOx_Loss_Tot', 'OddOx_Prod_Tot',
'bc_a1DDV', 'bc_a1DTQ', 'bc_a1GVF', 'bc_a4DDV', 'bc_a4DTQ', 'bc_a4GVF', 'bc_a4_XFRC', 'num_a4_XFRC', 'bc_a4_CHMP', 'bc_a4_CHML', 'num_a4_CHMP', 'num_a4_CHML', 'bc_a1_CHML', 'bc_a1_CHMP',
'Uzm', 'Vzm', 'Wzm', 'THzm', 'VTHzm', 'WTHzm', 'UVzm', 'UWzm', 'QRLC', 'QRS', 'QRSC', 'QRS_d1', 'QRL_d1', 'QRSC_d1', 'QRLC_d1'

mode_defs =
'mam4_mode1:accum:=',
'A:num_a1:N:num_c1:num_mr:+',
'A:so4_a1:N:so4_c1:sulfate:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/sulfate_rrtmg_c080918.nc:+',
'A:pom_a1:N:pom_c1:p-organic:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/ocpho_rrtmg_c130709.nc:+',
'A:soa_a1:N:soa_c1:s-organic:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/ocphi_rrtmg_c100508.nc:+',
'A:bc_a1:N:bc_c1:black-c:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/bcpho_rrtmg_c100508.nc:+',
'A:dst_a1:N:dst_c1:dust:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/dust_aeronet_rrtmg_c141106.nc:+',
'A:ncl_a1:N:ncl_c1:seasalt:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/ssam_rrtmg_c100508.nc',
'mam4_mode2:aitken:=',
'A:num_a2:N:num_c2:num_mr:+',
'A:so4_a2:N:so4_c2:sulfate:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/sulfate_rrtmg_c080918.nc:+',
'A:soa_a2:N:soa_c2:s-organic:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/ocphi_rrtmg_c100508.nc:+',
'A:ncl_a2:N:ncl_c2:seasalt:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/ssam_rrtmg_c100508.nc:+',
'A:dst_a2:N:dst_c2:dust:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/dust_aeronet_rrtmg_c141106.nc',
'mam4_mode3:coarse:=',
'A:num_a3:N:num_c3:num_mr:+',
'A:dst_a3:N:dst_c3:dust:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/dust_aeronet_rrtmg_c141106.nc:+',
'A:ncl_a3:N:ncl_c3:seasalt:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/ssam_rrtmg_c100508.nc:+',
'A:so4_a3:N:so4_c3:sulfate:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/sulfate_rrtmg_c080918.nc',
'mam4_mode4:primary_carbon:=',
'A:num_a4:N:num_c4:num_mr:+',
'A:pom_a4:N:pom_c4:p-organic:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/ocpho_rrtmg_c130709.nc:+',
'A:bc_a4:N:bc_c4:black-c:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/bcpho_rrtmg_c100508.nc'
'mam4_mode1_nobc:accum:=',
'A:num_a1:N:num_c1:num_mr:+',
'A:so4_a1:N:so4_c1:sulfate:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/sulfate_rrtmg_c080918.nc:+',
'A:pom_a1:N:pom_c1:p-organic:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/ocpho_rrtmg_c130709.nc:+',
'A:soa_a1:N:soa_c1:s-organic:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/ocphi_rrtmg_c100508.nc:+',
'A:dst_a1:N:dst_c1:dust:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/dust_aeronet_rrtmg_c141106.nc:+',
'A:ncl_a1:N:ncl_c1:seasalt:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/ssam_rrtmg_c100508.nc',
'mam4_mode4_nobc:primary_carbon:=',
'A:num_a4:N:num_c4:num_mr:+',
'A:pom_a4:N:pom_c4:p-organic:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/ocpho_rrtmg_c130709.nc:+'


rad_diag_1 =
'A:Q:H2O', 'N:O2:O2', 'N:CO2:CO2', 'N:ozone:O3',
'N:N2O:N2O', 'N:CH4:CH4', 'N:CFC11:CFC11', 'N:CFC12:CFC12',
'M:mam4_mode1_nobc:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/mam4_mode1_rrtmg_aeronetdust_sig1.6_dgnh.48_c140304.nc',
'M:mam4_mode2:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/mam4_mode2_rrtmg_aitkendust_c141106.nc',
'M:mam4_mode3:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/mam4_mode3_rrtmg_aeronetdust_sig1.2_dgnl.40_c150219.nc',
'M:mam4_mode4_nobc:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/mam4_mode4_rrtmg_c130628.nc',
'N:VOLC_MMR1:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/volc_camRRTMG_byradius_sigma1.6_mode1_c170214.nc',
'N:VOLC_MMR2:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/volc_camRRTMG_byradius_sigma1.6_mode2_c170214.nc',
'N:VOLC_MMR3:/scratch1/BMC/chimera/CESM-central/inputdata/atm/cam/physprops/volc_camRRTMG_byradius_sigma1.2_mode3_c170214.nc'
 

mmills

CSEG and Liaisons
Staff member
Are you running with specified chemistry? I ask because I see you have VOLC_MMR1, VOLC_MMR2, and VOLC_MMR3 in your rad_diag_1. Those are only used with stratospheric aerosols are prescribed, as in CAM6 or SC-WACCM6. If you are running WACCM6 with interactive stratospheric aerosols, the model probably can't interpret those inputs. What does your rad_climate look like in your atm_in? It might be useful to attach the full atm_in file in your reply.
 
No I am running interactive chemistry, but I did try rebuilding and running again with the 'VOLC_' fields removed and received the same error. I have attached an atm_in file. 'rad_climate' looks correct to me and I've diff'ed the attached file with another one from a previous run that worked. The only differences I found were the initial conditions files and the the addition of 'rad_diag_1' and the modified mam4 modes.
 

Attachments

  • atm_in.txt
    25.2 KB · Views: 11

mmills

CSEG and Liaisons
Staff member
Thanks for attaching that. I am not sure what your goal is in some of the changes you made from rad_climate to rad_diag_1. You changed these:

'A:O2:O2', 'A:CO2:CO2', 'A:O3:O3', 'A:N2O:N2O', 'A:CH4:CH4', 'N:CFC11STAR:CFC11', 'A:CFC12:CFC12',

to these:
'N:O2:O2', 'N:CO2:CO2', 'N:ozone:O3', 'N:N2O:N2O', 'N:CH4:CH4', 'N:CFC11:CFC11', 'N:CFC12:CFC12',

It looks like maybe you picked these up from a CAM namelist? I don't think this will work in WACCM.

If you want to isolate the effect of the aerosols, you should make rad_diag_1 include everything in rad_climate except the aerosols:

rad_diag_1 = 'A:Q:H2O', 'A:O2:O2', 'A:CO2:CO2', 'A:O3:O3', 'A:N2O:N2O', 'A:CH4:CH4', 'N:CFC11STAR:CFC11', 'A:CFC12:CFC12'

Then your outputs that end with "_1" will have fluxes that would be present in the absence of aerosols.
 
Thanks Mike,

That likely was a typo when I was attempting to mimic the modifications in the user guide. I've corrected the variables to match what is in rad_climate. However, I still am getting the same error message. I tried this again with just setting 'rad_diag_1'and the simulation ran successfully. However, I want to isolate the radiative effects of a single aerosol. That leads me to believe that there is an error in the 'mod_defs' changes that I made in my user_nl_cam. However, I am not sure what exactly is wrong there. Do you see anything amiss (it is listed in my second post)?
 

zjjiang

ZhongjingJiang
New Member
This may because you delete a line but forget to remove the final token in the previous line "+", which is a signal to the parser that the definition of the current mode continues on the next string.
 
Top