diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 6179cfa4eb..a9c59c576b 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -3413,232 +3413,191 @@ atm/cam/chem/carma/data/GFEDv3_OC_2010.nc - 'MXAER01:=', 'N:NBMXAER01:N:CLDNBMXAER01:num:+', - 'A:MXAER01:N:CLDMXAER01:mmr:+', - 'N:MXSULF01:N:CLDMXSULF01:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'MXAER01:=', 'N:NBMXAER01:N:CLDNBMXAER01:num:+', + 'A:MXSULF01:N:CLDMXSULF01:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC01:N:CLDMXOC01:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA01:N:CLDMXSOA01:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC01:N:CLDMXBC01:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST01:N:CLDMXDUST01:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT01:N:CLDMXSALT01:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER02:=', 'N:NBMXAER02:N:CLDNBMXAER02:num:+', - 'A:MXAER02:N:CLDMXAER02:mmr:+', - 'N:MXSULF02:N:CLDMXSULF02:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF02:N:CLDMXSULF02:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC02:N:CLDMXOC02:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA02:N:CLDMXSOA02:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC02:N:CLDMXBC02:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST02:N:CLDMXDUST02:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT02:N:CLDMXSALT02:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER03:=', 'N:NBMXAER03:N:CLDNBMXAER03:num:+', - 'A:MXAER03:N:CLDMXAER03:mmr:+', - 'N:MXSULF03:N:CLDMXSULF03:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF03:N:CLDMXSULF03:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC03:N:CLDMXOC03:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA03:N:CLDMXSOA03:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC03:N:CLDMXBC03:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST03:N:CLDMXDUST03:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT03:N:CLDMXSALT03:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER04:=', 'N:NBMXAER04:N:CLDNBMXAER04:num:+', - 'A:MXAER04:N:CLDMXAER04:mmr:+', - 'N:MXSULF04:N:CLDMXSULF04:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF04:N:CLDMXSULF04:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC04:N:CLDMXOC04:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA04:N:CLDMXSOA04:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC04:N:CLDMXBC04:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST04:N:CLDMXDUST04:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT04:N:CLDMXSALT04:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER05:=', 'N:NBMXAER05:N:CLDNBMXAER05:num:+', - 'A:MXAER05:N:CLDMXAER05:mmr:+', - 'N:MXSULF05:N:CLDMXSULF05:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF05:N:CLDMXSULF05:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC05:N:CLDMXOC05:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA05:N:CLDMXSOA05:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC05:N:CLDMXBC05:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST05:N:CLDMXDUST05:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT05:N:CLDMXSALT05:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER06:=', 'N:NBMXAER06:N:CLDNBMXAER06:num:+', - 'A:MXAER06:N:CLDMXAER06:mmr:+', - 'N:MXSULF06:N:CLDMXSULF06:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF06:N:CLDMXSULF06:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC06:N:CLDMXOC06:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA06:N:CLDMXSOA06:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC06:N:CLDMXBC06:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST06:N:CLDMXDUST06:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT06:N:CLDMXSALT06:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER07:=', 'N:NBMXAER07:N:CLDNBMXAER07:num:+', - 'A:MXAER07:N:CLDMXAER07:mmr:+', - 'N:MXSULF07:N:CLDMXSULF07:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF07:N:CLDMXSULF07:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC07:N:CLDMXOC07:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA07:N:CLDMXSOA07:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC07:N:CLDMXBC07:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST07:N:CLDMXDUST07:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT07:N:CLDMXSALT07:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER08:=', 'N:NBMXAER08:N:CLDNBMXAER08:num:+', - 'A:MXAER08:N:CLDMXAER08:mmr:+', - 'N:MXSULF08:N:CLDMXSULF08:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF08:N:CLDMXSULF08:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC08:N:CLDMXOC08:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA08:N:CLDMXSOA08:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC08:N:CLDMXBC08:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST08:N:CLDMXDUST08:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT08:N:CLDMXSALT08:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER09:=', 'N:NBMXAER09:N:CLDNBMXAER09:num:+', - 'A:MXAER09:N:CLDMXAER09:mmr:+', - 'N:MXSULF09:N:CLDMXSULF09:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF09:N:CLDMXSULF09:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC09:N:CLDMXOC09:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA09:N:CLDMXSOA09:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC09:N:CLDMXBC09:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST09:N:CLDMXDUST09:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT09:N:CLDMXSALT09:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER10:=', 'N:NBMXAER10:N:CLDNBMXAER10:num:+', - 'A:MXAER10:N:CLDMXAER10:mmr:+', - 'N:MXSULF10:N:CLDMXSULF10:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF10:N:CLDMXSULF10:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC10:N:CLDMXOC10:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA10:N:CLDMXSOA10:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC10:N:CLDMXBC10:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST10:N:CLDMXDUST10:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT10:N:CLDMXSALT10:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER11:=', 'N:NBMXAER11:N:CLDNBMXAER11:num:+', - 'A:MXAER11:N:CLDMXAER11:mmr:+', - 'N:MXSULF11:N:CLDMXSULF11:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF11:N:CLDMXSULF11:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC11:N:CLDMXOC11:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA11:N:CLDMXSOA11:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC11:N:CLDMXBC11:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST11:N:CLDMXDUST11:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT11:N:CLDMXSALT11:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER12:=', 'N:NBMXAER12:N:CLDNBMXAER12:num:+', - 'A:MXAER12:N:CLDMXAER12:mmr:+', - 'N:MXSULF12:N:CLDMXSULF12:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF12:N:CLDMXSULF12:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC12:N:CLDMXOC12:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA12:N:CLDMXSOA12:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC12:N:CLDMXBC12:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST12:N:CLDMXDUST12:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT12:N:CLDMXSALT12:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER13:=', 'N:NBMXAER13:N:CLDNBMXAER13:num:+', - 'A:MXAER13:N:CLDMXAER13:mmr:+', - 'N:MXSULF13:N:CLDMXSULF13:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF13:N:CLDMXSULF13:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC13:N:CLDMXOC13:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA13:N:CLDMXSOA13:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC13:N:CLDMXBC13:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST13:N:CLDMXDUST13:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT13:N:CLDMXSALT13:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER14:=', 'N:NBMXAER14:N:CLDNBMXAER14:num:+', - 'A:MXAER14:N:CLDMXAER14:mmr:+', - 'N:MXSULF14:N:CLDMXSULF14:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF14:N:CLDMXSULF14:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC14:N:CLDMXOC14:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA14:N:CLDMXSOA14:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC14:N:CLDMXBC14:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST14:N:CLDMXDUST14:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT14:N:CLDMXSALT14:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER15:=', 'N:NBMXAER15:N:CLDNBMXAER15:num:+', - 'A:MXAER15:N:CLDMXAER15:mmr:+', - 'N:MXSULF15:N:CLDMXSULF15:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF15:N:CLDMXSULF15:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC15:N:CLDMXOC15:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA15:N:CLDMXSOA15:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC15:N:CLDMXBC15:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST15:N:CLDMXDUST15:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT15:N:CLDMXSALT15:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER16:=', 'N:NBMXAER16:N:CLDNBMXAER16:num:+', - 'A:MXAER16:N:CLDMXAER16:mmr:+', - 'N:MXSULF16:N:CLDMXSULF16:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF16:N:CLDMXSULF16:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC16:N:CLDMXOC16:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA16:N:CLDMXSOA16:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC16:N:CLDMXBC16:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST16:N:CLDMXDUST16:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT16:N:CLDMXSALT16:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER17:=', 'N:NBMXAER17:N:CLDNBMXAER17:num:+', - 'A:MXAER17:N:CLDMXAER17:mmr:+', - 'N:MXSULF17:N:CLDMXSULF17:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF17:N:CLDMXSULF17:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC17:N:CLDMXOC17:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA17:N:CLDMXSOA17:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC17:N:CLDMXBC17:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST17:N:CLDMXDUST17:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT17:N:CLDMXSALT17:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER18:=', 'N:NBMXAER18:N:CLDNBMXAER18:num:+', - 'A:MXAER18:N:CLDMXAER18:mmr:+', - 'N:MXSULF18:N:CLDMXSULF18:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF18:N:CLDMXSULF18:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC18:N:CLDMXOC18:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA18:N:CLDMXSOA18:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC18:N:CLDMXBC18:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST18:N:CLDMXDUST18:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT18:N:CLDMXSALT18:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER19:=', 'N:NBMXAER19:N:CLDNBMXAER19:num:+', - 'A:MXAER19:N:CLDMXAER19:mmr:+', - 'N:MXSULF19:N:CLDMXSULF19:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF19:N:CLDMXSULF19:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC19:N:CLDMXOC19:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA19:N:CLDMXSOA19:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC19:N:CLDMXBC19:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST19:N:CLDMXDUST19:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT19:N:CLDMXSALT19:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER20:=', 'N:NBMXAER20:N:CLDNBMXAER20:num:+', - 'A:MXAER20:N:CLDMXAER20:mmr:+', - 'N:MXSULF20:N:CLDMXSULF20:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF20:N:CLDMXSULF20:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC20:N:CLDMXOC20:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA20:N:CLDMXSOA20:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXBC20:N:CLDMXBC20:black-c:core:$INPUTDATA_ROOT/atm/cam/physprops/bcpho_rrtmg_carma_c100508.nc:+', 'A:MXDUST20:N:CLDMXDUST20:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT20:N:CLDMXSALT20:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'PRSUL01:=', 'N:NBPRSUL01:N:CLDNBPRSUL01:num:+', - 'A:PRSUL01:N:CLDPRSUL01:mmr:+', - 'N:PRSULF01:N:CLDPRSULF01:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF01:N:CLDPRSULF01:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL02:=', 'N:NBPRSUL02:N:CLDNBPRSUL02:num:+', - 'A:PRSUL02:N:CLDPRSUL02:mmr:+', - 'N:PRSULF02:N:CLDPRSULF02:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF02:N:CLDPRSULF02:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL03:=', 'N:NBPRSUL03:N:CLDNBPRSUL03:num:+', - 'A:PRSUL03:N:CLDPRSUL03:mmr:+', - 'N:PRSULF03:N:CLDPRSULF03:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF03:N:CLDPRSULF03:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL04:=', 'N:NBPRSUL04:N:CLDNBPRSUL04:num:+', - 'A:PRSUL04:N:CLDPRSUL04:mmr:+', - 'N:PRSULF04:N:CLDPRSULF04:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF04:N:CLDPRSULF04:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL05:=', 'N:NBPRSUL05:N:CLDNBPRSUL05:num:+', - 'A:PRSUL05:N:CLDPRSUL05:mmr:+', - 'N:PRSULF05:N:CLDPRSULF05:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF05:N:CLDPRSULF05:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL06:=', 'N:NBPRSUL06:N:CLDNBPRSUL06:num:+', - 'A:PRSUL06:N:CLDPRSUL06:mmr:+', - 'N:PRSULF06:N:CLDPRSULF06:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF06:N:CLDPRSULF06:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL07:=', 'N:NBPRSUL07:N:CLDNBPRSUL07:num:+', - 'A:PRSUL07:N:CLDPRSUL07:mmr:+', - 'N:PRSULF07:N:CLDPRSULF07:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF07:N:CLDPRSULF07:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL08:=', 'N:NBPRSUL08:N:CLDNBPRSUL08:num:+', - 'A:PRSUL08:N:CLDPRSUL08:mmr:+', - 'N:PRSULF08:N:CLDPRSULF08:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF08:N:CLDPRSULF08:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL09:=', 'N:NBPRSUL09:N:CLDNBPRSUL09:num:+', - 'A:PRSUL09:N:CLDPRSUL09:mmr:+', - 'N:PRSULF09:N:CLDPRSULF09:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF09:N:CLDPRSULF09:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL10:=', 'N:NBPRSUL10:N:CLDNBPRSUL10:num:+', - 'A:PRSUL10:N:CLDPRSUL10:mmr:+', - 'N:PRSULF10:N:CLDPRSULF10:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF10:N:CLDPRSULF10:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL11:=', 'N:NBPRSUL11:N:CLDNBPRSUL11:num:+', - 'A:PRSUL11:N:CLDPRSUL11:mmr:+', - 'N:PRSULF11:N:CLDPRSULF11:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF11:N:CLDPRSULF11:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL12:=', 'N:NBPRSUL12:N:CLDNBPRSUL12:num:+', - 'A:PRSUL12:N:CLDPRSUL12:mmr:+', - 'N:PRSULF12:N:CLDPRSULF12:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF12:N:CLDPRSULF12:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL13:=', 'N:NBPRSUL13:N:CLDNBPRSUL13:num:+', - 'A:PRSUL13:N:CLDPRSUL13:mmr:+', - 'N:PRSULF13:N:CLDPRSULF13:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF13:N:CLDPRSULF13:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL14:=', 'N:NBPRSUL14:N:CLDNBPRSUL14:num:+', - 'A:PRSUL14:N:CLDPRSUL14:mmr:+', - 'N:PRSULF14:N:CLDPRSULF14:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF14:N:CLDPRSULF14:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL15:=', 'N:NBPRSUL15:N:CLDNBPRSUL15:num:+', - 'A:PRSUL15:N:CLDPRSUL15:mmr:+', - 'N:PRSULF15:N:CLDPRSULF15:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF15:N:CLDPRSULF15:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL16:=', 'N:NBPRSUL16:N:CLDNBPRSUL16:num:+', - 'A:PRSUL16:N:CLDPRSUL16:mmr:+', - 'N:PRSULF16:N:CLDPRSULF16:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF16:N:CLDPRSULF16:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL17:=', 'N:NBPRSUL17:N:CLDNBPRSUL17:num:+', - 'A:PRSUL17:N:CLDPRSUL17:mmr:+', - 'N:PRSULF17:N:CLDPRSULF17:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF17:N:CLDPRSULF17:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL18:=', 'N:NBPRSUL18:N:CLDNBPRSUL18:num:+', - 'A:PRSUL18:N:CLDPRSUL18:mmr:+', - 'N:PRSULF18:N:CLDPRSULF18:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF18:N:CLDPRSULF18:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL19:=', 'N:NBPRSUL19:N:CLDNBPRSUL19:num:+', - 'A:PRSUL19:N:CLDPRSUL19:mmr:+', - 'N:PRSULF19:N:CLDPRSULF19:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF19:N:CLDPRSULF19:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL20:=', 'N:NBPRSUL20:N:CLDNBPRSUL20:num:+', - 'A:PRSUL20:N:CLDPRSUL20:mmr:+', - 'N:PRSULF20:N:CLDPRSULF20:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc' + 'A:PRSULF20:N:CLDPRSULF20:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc' 'MXAER01:=', 'N:NBMXAER01:N:CLDNBMXAER01:num:+', - 'A:MXAER01:N:CLDMXAER01:mmr:+', - 'N:MXSULF01:N:CLDMXSULF01:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF01:N:CLDMXSULF01:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC01:N:CLDMXOC01:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA101:N:CLDMXSOA101:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA201:N:CLDMXSOA201:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3649,8 +3608,7 @@ 'A:MXDUST01:N:CLDMXDUST01:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT01:N:CLDMXSALT01:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER02:=', 'N:NBMXAER02:N:CLDNBMXAER02:num:+', - 'A:MXAER02:N:CLDMXAER02:mmr:+', - 'N:MXSULF02:N:CLDMXSULF02:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF02:N:CLDMXSULF02:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC02:N:CLDMXOC02:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA102:N:CLDMXSOA102:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA202:N:CLDMXSOA202:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3661,8 +3619,7 @@ 'A:MXDUST02:N:CLDMXDUST02:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT02:N:CLDMXSALT02:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER03:=', 'N:NBMXAER03:N:CLDNBMXAER03:num:+', - 'A:MXAER03:N:CLDMXAER03:mmr:+', - 'N:MXSULF03:N:CLDMXSULF03:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF03:N:CLDMXSULF03:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC03:N:CLDMXOC03:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA103:N:CLDMXSOA103:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA203:N:CLDMXSOA203:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3673,8 +3630,7 @@ 'A:MXDUST03:N:CLDMXDUST03:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT03:N:CLDMXSALT03:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER04:=', 'N:NBMXAER04:N:CLDNBMXAER04:num:+', - 'A:MXAER04:N:CLDMXAER04:mmr:+', - 'N:MXSULF04:N:CLDMXSULF04:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF04:N:CLDMXSULF04:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC04:N:CLDMXOC04:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA104:N:CLDMXSOA104:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA204:N:CLDMXSOA204:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3685,8 +3641,7 @@ 'A:MXDUST04:N:CLDMXDUST04:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT04:N:CLDMXSALT04:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER05:=', 'N:NBMXAER05:N:CLDNBMXAER05:num:+', - 'A:MXAER05:N:CLDMXAER05:mmr:+', - 'N:MXSULF05:N:CLDMXSULF05:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF05:N:CLDMXSULF05:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC05:N:CLDMXOC05:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA105:N:CLDMXSOA105:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA205:N:CLDMXSOA205:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3697,8 +3652,7 @@ 'A:MXDUST05:N:CLDMXDUST05:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT05:N:CLDMXSALT05:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER06:=', 'N:NBMXAER06:N:CLDNBMXAER06:num:+', - 'A:MXAER06:N:CLDMXAER06:mmr:+', - 'N:MXSULF06:N:CLDMXSULF06:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF06:N:CLDMXSULF06:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC06:N:CLDMXOC06:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA106:N:CLDMXSOA106:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA206:N:CLDMXSOA206:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3709,8 +3663,7 @@ 'A:MXDUST06:N:CLDMXDUST06:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT06:N:CLDMXSALT06:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER07:=', 'N:NBMXAER07:N:CLDNBMXAER07:num:+', - 'A:MXAER07:N:CLDMXAER07:mmr:+', - 'N:MXSULF07:N:CLDMXSULF07:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF07:N:CLDMXSULF07:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC07:N:CLDMXOC07:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA107:N:CLDMXSOA107:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA207:N:CLDMXSOA207:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3721,8 +3674,7 @@ 'A:MXDUST07:N:CLDMXDUST07:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT07:N:CLDMXSALT07:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER08:=', 'N:NBMXAER08:N:CLDNBMXAER08:num:+', - 'A:MXAER08:N:CLDMXAER08:mmr:+', - 'N:MXSULF08:N:CLDMXSULF08:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF08:N:CLDMXSULF08:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC08:N:CLDMXOC08:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA108:N:CLDMXSOA108:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA208:N:CLDMXSOA208:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3733,8 +3685,7 @@ 'A:MXDUST08:N:CLDMXDUST08:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT08:N:CLDMXSALT08:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER09:=', 'N:NBMXAER09:N:CLDNBMXAER09:num:+', - 'A:MXAER09:N:CLDMXAER09:mmr:+', - 'N:MXSULF09:N:CLDMXSULF09:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF09:N:CLDMXSULF09:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC09:N:CLDMXOC09:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA109:N:CLDMXSOA109:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA209:N:CLDMXSOA209:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3745,8 +3696,7 @@ 'A:MXDUST09:N:CLDMXDUST09:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT09:N:CLDMXSALT09:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER10:=', 'N:NBMXAER10:N:CLDNBMXAER10:num:+', - 'A:MXAER10:N:CLDMXAER10:mmr:+', - 'N:MXSULF10:N:CLDMXSULF10:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF10:N:CLDMXSULF10:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC10:N:CLDMXOC10:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA110:N:CLDMXSOA110:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA210:N:CLDMXSOA210:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3757,8 +3707,7 @@ 'A:MXDUST10:N:CLDMXDUST10:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT10:N:CLDMXSALT10:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER11:=', 'N:NBMXAER11:N:CLDNBMXAER11:num:+', - 'A:MXAER11:N:CLDMXAER11:mmr:+', - 'N:MXSULF11:N:CLDMXSULF11:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF11:N:CLDMXSULF11:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC11:N:CLDMXOC11:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA111:N:CLDMXSOA111:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA211:N:CLDMXSOA211:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3769,8 +3718,7 @@ 'A:MXDUST11:N:CLDMXDUST11:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT11:N:CLDMXSALT11:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER12:=', 'N:NBMXAER12:N:CLDNBMXAER12:num:+', - 'A:MXAER12:N:CLDMXAER12:mmr:+', - 'N:MXSULF12:N:CLDMXSULF12:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF12:N:CLDMXSULF12:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC12:N:CLDMXOC12:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA112:N:CLDMXSOA112:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA212:N:CLDMXSOA212:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3781,8 +3729,7 @@ 'A:MXDUST12:N:CLDMXDUST12:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT12:N:CLDMXSALT12:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER13:=', 'N:NBMXAER13:N:CLDNBMXAER13:num:+', - 'A:MXAER13:N:CLDMXAER13:mmr:+', - 'N:MXSULF13:N:CLDMXSULF13:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF13:N:CLDMXSULF13:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC13:N:CLDMXOC13:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA113:N:CLDMXSOA113:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA213:N:CLDMXSOA213:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3793,8 +3740,7 @@ 'A:MXDUST13:N:CLDMXDUST13:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT13:N:CLDMXSALT13:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER14:=', 'N:NBMXAER14:N:CLDNBMXAER14:num:+', - 'A:MXAER14:N:CLDMXAER14:mmr:+', - 'N:MXSULF14:N:CLDMXSULF14:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF14:N:CLDMXSULF14:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC14:N:CLDMXOC14:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA114:N:CLDMXSOA114:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA214:N:CLDMXSOA214:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3805,8 +3751,7 @@ 'A:MXDUST14:N:CLDMXDUST14:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT14:N:CLDMXSALT14:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER15:=', 'N:NBMXAER15:N:CLDNBMXAER15:num:+', - 'A:MXAER15:N:CLDMXAER15:mmr:+', - 'N:MXSULF15:N:CLDMXSULF15:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF15:N:CLDMXSULF15:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC15:N:CLDMXOC15:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA115:N:CLDMXSOA115:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA215:N:CLDMXSOA215:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3817,8 +3762,7 @@ 'A:MXDUST15:N:CLDMXDUST15:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT15:N:CLDMXSALT15:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER16:=', 'N:NBMXAER16:N:CLDNBMXAER16:num:+', - 'A:MXAER16:N:CLDMXAER16:mmr:+', - 'N:MXSULF16:N:CLDMXSULF16:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF16:N:CLDMXSULF16:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC16:N:CLDMXOC16:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA116:N:CLDMXSOA116:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA216:N:CLDMXSOA216:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3829,8 +3773,7 @@ 'A:MXDUST16:N:CLDMXDUST16:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT16:N:CLDMXSALT16:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER17:=', 'N:NBMXAER17:N:CLDNBMXAER17:num:+', - 'A:MXAER17:N:CLDMXAER17:mmr:+', - 'N:MXSULF17:N:CLDMXSULF17:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF17:N:CLDMXSULF17:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC17:N:CLDMXOC17:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA117:N:CLDMXSOA117:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA217:N:CLDMXSOA217:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3841,8 +3784,7 @@ 'A:MXDUST17:N:CLDMXDUST17:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT17:N:CLDMXSALT17:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER18:=', 'N:NBMXAER18:N:CLDNBMXAER18:num:+', - 'A:MXAER18:N:CLDMXAER18:mmr:+', - 'N:MXSULF18:N:CLDMXSULF18:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF18:N:CLDMXSULF18:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC18:N:CLDMXOC18:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA118:N:CLDMXSOA118:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA218:N:CLDMXSOA218:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3853,8 +3795,7 @@ 'A:MXDUST18:N:CLDMXDUST18:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT18:N:CLDMXSALT18:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER19:=', 'N:NBMXAER19:N:CLDNBMXAER19:num:+', - 'A:MXAER19:N:CLDMXAER19:mmr:+', - 'N:MXSULF19:N:CLDMXSULF19:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF19:N:CLDMXSULF19:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC19:N:CLDMXOC19:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA119:N:CLDMXSOA119:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA219:N:CLDMXSOA219:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3865,8 +3806,7 @@ 'A:MXDUST19:N:CLDMXDUST19:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT19:N:CLDMXSALT19:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'MXAER20:=', 'N:NBMXAER20:N:CLDNBMXAER20:num:+', - 'A:MXAER20:N:CLDMXAER20:mmr:+', - 'N:MXSULF20:N:CLDMXSULF20:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', + 'A:MXSULF20:N:CLDMXSULF20:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc:+', 'A:MXOC20:N:CLDMXOC20:p-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/ocphi_rrtmg_carma_c100508.nc:+', 'A:MXSOA120:N:CLDMXSOA120:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', 'A:MXSOA220:N:CLDMXSOA220:s-organic:shell:$INPUTDATA_ROOT/atm/cam/physprops/soa_rrtmg_carma_c100508.nc:+', @@ -3877,65 +3817,45 @@ 'A:MXDUST20:N:CLDMXDUST20:dust:core:$INPUTDATA_ROOT/atm/cam/physprops/dust_aeronet_rrtmg_carma_c141106.nc:+', 'A:MXSALT20:N:CLDMXSALT20:seasalt:shell:$INPUTDATA_ROOT/atm/cam/physprops/ssam_rrtmg_carma_c100508.nc', 'PRSUL01:=', 'N:NBPRSUL01:N:CLDNBPRSUL01:num:+', - 'A:PRSUL01:N:CLDPRSUL01:mmr:+', - 'N:PRSULF01:N:CLDPRSULF01:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF01:N:CLDPRSULF01:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL02:=', 'N:NBPRSUL02:N:CLDNBPRSUL02:num:+', - 'A:PRSUL02:N:CLDPRSUL02:mmr:+', - 'N:PRSULF02:N:CLDPRSULF02:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF02:N:CLDPRSULF02:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL03:=', 'N:NBPRSUL03:N:CLDNBPRSUL03:num:+', - 'A:PRSUL03:N:CLDPRSUL03:mmr:+', - 'N:PRSULF03:N:CLDPRSULF03:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF03:N:CLDPRSULF03:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL04:=', 'N:NBPRSUL04:N:CLDNBPRSUL04:num:+', - 'A:PRSUL04:N:CLDPRSUL04:mmr:+', - 'N:PRSULF04:N:CLDPRSULF04:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF04:N:CLDPRSULF04:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL05:=', 'N:NBPRSUL05:N:CLDNBPRSUL05:num:+', - 'A:PRSUL05:N:CLDPRSUL05:mmr:+', - 'N:PRSULF05:N:CLDPRSULF05:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF05:N:CLDPRSULF05:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL06:=', 'N:NBPRSUL06:N:CLDNBPRSUL06:num:+', - 'A:PRSUL06:N:CLDPRSUL06:mmr:+', - 'N:PRSULF06:N:CLDPRSULF06:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF06:N:CLDPRSULF06:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL07:=', 'N:NBPRSUL07:N:CLDNBPRSUL07:num:+', - 'A:PRSUL07:N:CLDPRSUL07:mmr:+', - 'N:PRSULF07:N:CLDPRSULF07:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF07:N:CLDPRSULF07:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL08:=', 'N:NBPRSUL08:N:CLDNBPRSUL08:num:+', - 'A:PRSUL08:N:CLDPRSUL08:mmr:+', - 'N:PRSULF08:N:CLDPRSULF08:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF08:N:CLDPRSULF08:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL09:=', 'N:NBPRSUL09:N:CLDNBPRSUL09:num:+', - 'A:PRSUL09:N:CLDPRSUL09:mmr:+', - 'N:PRSULF09:N:CLDPRSULF09:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF09:N:CLDPRSULF09:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL10:=', 'N:NBPRSUL10:N:CLDNBPRSUL10:num:+', - 'A:PRSUL10:N:CLDPRSUL10:mmr:+', - 'N:PRSULF10:N:CLDPRSULF10:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF10:N:CLDPRSULF10:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL11:=', 'N:NBPRSUL11:N:CLDNBPRSUL11:num:+', - 'A:PRSUL11:N:CLDPRSUL11:mmr:+', - 'N:PRSULF11:N:CLDPRSULF11:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF11:N:CLDPRSULF11:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL12:=', 'N:NBPRSUL12:N:CLDNBPRSUL12:num:+', - 'A:PRSUL12:N:CLDPRSUL12:mmr:+', - 'N:PRSULF12:N:CLDPRSULF12:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF12:N:CLDPRSULF12:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL13:=', 'N:NBPRSUL13:N:CLDNBPRSUL13:num:+', - 'A:PRSUL13:N:CLDPRSUL13:mmr:+', - 'N:PRSULF13:N:CLDPRSULF13:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF13:N:CLDPRSULF13:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL14:=', 'N:NBPRSUL14:N:CLDNBPRSUL14:num:+', - 'A:PRSUL14:N:CLDPRSUL14:mmr:+', - 'N:PRSULF14:N:CLDPRSULF14:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF14:N:CLDPRSULF14:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL15:=', 'N:NBPRSUL15:N:CLDNBPRSUL15:num:+', - 'A:PRSUL15:N:CLDPRSUL15:mmr:+', - 'N:PRSULF15:N:CLDPRSULF15:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF15:N:CLDPRSULF15:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL16:=', 'N:NBPRSUL16:N:CLDNBPRSUL16:num:+', - 'A:PRSUL16:N:CLDPRSUL16:mmr:+', - 'N:PRSULF16:N:CLDPRSULF16:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF16:N:CLDPRSULF16:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL17:=', 'N:NBPRSUL17:N:CLDNBPRSUL17:num:+', - 'A:PRSUL17:N:CLDPRSUL17:mmr:+', - 'N:PRSULF17:N:CLDPRSULF17:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF17:N:CLDPRSULF17:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL18:=', 'N:NBPRSUL18:N:CLDNBPRSUL18:num:+', - 'A:PRSUL18:N:CLDPRSUL18:mmr:+', - 'N:PRSULF18:N:CLDPRSULF18:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF18:N:CLDPRSULF18:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL19:=', 'N:NBPRSUL19:N:CLDNBPRSUL19:num:+', - 'A:PRSUL19:N:CLDPRSUL19:mmr:+', - 'N:PRSULF19:N:CLDPRSULF19:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', + 'A:PRSULF19:N:CLDPRSULF19:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc', 'PRSUL20:=', 'N:NBPRSUL20:N:CLDNBPRSUL20:num:+', - 'A:PRSUL20:N:CLDPRSUL20:mmr:+', - 'N:PRSULF20:N:CLDPRSULF20:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc' + 'A:PRSULF20:N:CLDPRSULF20:sulfate:shell:$INPUTDATA_ROOT/atm/cam/physprops/sulfate_rrtmg_carma_c080918.nc' diff --git a/bld/namelist_files/use_cases/carma_trop_strat_cam6.xml b/bld/namelist_files/use_cases/carma_trop_strat_cam6.xml index 0382fd27da..18179806ea 100644 --- a/bld/namelist_files/use_cases/carma_trop_strat_cam6.xml +++ b/bld/namelist_files/use_cases/carma_trop_strat_cam6.xml @@ -36,10 +36,6 @@ 'EXTINCT', 'EXTINCTUV', 'EXTINCTNIR','ABSORB', 'AODVIS', 'AODABS','SAD_STRAT','SAD_SULFC','SAD_LNAT','SAD_ICE', 'O3','CO','OH','NO2','SSAVIS','AODNIR','AODVISst','AODNIRst','AODUVst',,'TMSO2','TMH2SO4','TMOCS', - 'TMMXAER01','TMMXAER02','TMMXAER03','TMMXAER04','TMMXAER05','TMMXAER06','TMMXAER07','TMMXAER08','TMMXAER09','TMMXAER10', - 'TMMXAER11','TMMXAER12','TMMXAER13','TMMXAER14','TMMXAER15','TMMXAER16','TMMXAER17','TMMXAER18','TMMXAER19','TMMXAER20', - 'TMPRSUL01','TMPRSUL02','TMPRSUL03','TMPRSUL04','TMPRSUL05','TMPRSUL06','TMPRSUL07','TMPRSUL08','TMPRSUL09','TMPRSUL10', - 'TMPRSUL11','TMPRSUL12','TMPRSUL13','TMPRSUL14','TMPRSUL15','TMPRSUL16','TMPRSUL17','TMPRSUL18','TMPRSUL19','TMPRSUL20', 'TMMXOC01','TMMXOC02','TMMXOC03','TMMXOC04','TMMXOC05','TMMXOC06','TMMXOC07','TMMXOC08','TMMXOC09','TMMXOC10', 'TMMXOC11','TMMXOC12','TMMXOC13','TMMXOC14','TMMXOC15','TMMXOC16','TMMXOC17','TMMXOC18','TMMXOC19','TMMXOC20', 'TMMXBC01','TMMXBC02','TMMXBC03','TMMXBC04','TMMXBC05','TMMXBC06','TMMXBC07','TMMXBC08','TMMXBC09','TMMXBC10', diff --git a/src/chemistry/aerosol/aerosol_properties_mod.F90 b/src/chemistry/aerosol/aerosol_properties_mod.F90 index aadd56f87d..d66a1a93ef 100644 --- a/src/chemistry/aerosol/aerosol_properties_mod.F90 +++ b/src/chemistry/aerosol/aerosol_properties_mod.F90 @@ -70,6 +70,7 @@ module aerosol_properties_mod procedure(aero_min_mass_mean_rad), deferred :: min_mass_mean_rad procedure(aero_optics_params), deferred :: optics_params procedure(aero_bin_name), deferred :: bin_name + procedure(aero_scav_radius), deferred :: scav_radius procedure :: final=>aero_props_final end type aerosol_properties @@ -378,6 +379,18 @@ function aero_bin_name(self, list_ndx, bin_ndx) result(name) end function aero_bin_name + !------------------------------------------------------------------------------ + ! returns scavenging radius for a given aerosol bin number + !------------------------------------------------------------------------------ + function aero_scav_radius(self, bin_ndx) result(radius) + import :: aerosol_properties, r8 + class(aerosol_properties), intent(in) :: self + integer, intent(in) :: bin_ndx ! bin number + + real(r8) :: radius + + end function aero_scav_radius + end interface contains diff --git a/src/chemistry/aerosol/aerosol_state_mod.F90 b/src/chemistry/aerosol/aerosol_state_mod.F90 index 29318677d7..322af7f7e0 100644 --- a/src/chemistry/aerosol/aerosol_state_mod.F90 +++ b/src/chemistry/aerosol/aerosol_state_mod.F90 @@ -220,15 +220,15 @@ end function aero_hetfrz_size_wght ! returns hygroscopicity for a given radiation diagnostic list number and ! bin number !------------------------------------------------------------------------------ - function aero_hygroscopicity(self, list_ndx, bin_ndx) result(kappa) + subroutine aero_hygroscopicity(self, list_ndx, bin_ndx, kappa) import :: aerosol_state, r8 class(aerosol_state), intent(in) :: self integer, intent(in) :: list_ndx ! rad climate/diagnostic list index integer, intent(in) :: bin_ndx ! bin number - real(r8), pointer :: kappa(:,:) ! hygroscopicity (ncol,nlev) + real(r8), intent(out) :: kappa(:,:) ! hygroscopicity (ncol,nlev) - end function aero_hygroscopicity + end subroutine aero_hygroscopicity !------------------------------------------------------------------------------ ! returns aerosol wet diameter and aerosol water concentration for a given diff --git a/src/chemistry/aerosol/carma_aerosol_properties_mod.F90 b/src/chemistry/aerosol/carma_aerosol_properties_mod.F90 index 13b47f55ad..4a0f45e9c8 100644 --- a/src/chemistry/aerosol/carma_aerosol_properties_mod.F90 +++ b/src/chemistry/aerosol/carma_aerosol_properties_mod.F90 @@ -34,6 +34,7 @@ module carma_aerosol_properties_mod procedure :: soluble procedure :: min_mass_mean_rad procedure :: bin_name + procedure :: scav_radius final :: destructor end type carma_aerosol_properties @@ -96,8 +97,8 @@ function constructor() result(newobj) do m = 1, nbins call rad_cnst_get_info_by_bin(0, m, nspec=nspecies(m)) - ncnst_tot = ncnst_tot + nspecies(m) + 2 - nmasses(m) = nspecies(m) + 1 + ncnst_tot = ncnst_tot + nspecies(m) + 1 + nmasses(m) = nspecies(m) end do alogsig(:) = log(2._r8) !!!! ???? IS THIS RIGHT ???? !!! @@ -352,11 +353,7 @@ subroutine mmr_names(self, bin_ndx, species_ndx, name_a, name_c) character(len=*), intent(out) :: name_a ! constituent name of ambient aerosol MMR character(len=*), intent(out) :: name_c ! constituent name of cloud-borne aerosol MMR - if (species_ndx>1) then - call rad_cnst_get_info_by_bin_spec(0, bin_ndx, species_ndx-1, spec_name=name_a, spec_name_cw=name_c) - else - call rad_cnst_get_info_by_bin(0, bin_ndx, mmr_name=name_a, mmr_name_cw=name_c) - end if + call rad_cnst_get_info_by_bin_spec(0, bin_ndx, species_ndx, spec_name=name_a, spec_name_cw=name_c) end subroutine mmr_names @@ -381,11 +378,7 @@ subroutine amb_mmr_name(self, bin_ndx, species_ndx, name) integer, intent(in) :: species_ndx ! species number character(len=*), intent(out) :: name ! constituent name of ambient aerosol MMR - if (species_ndx>0) then - call rad_cnst_get_info_by_bin_spec(0, bin_ndx, species_ndx, spec_name=name) - else - call rad_cnst_get_info_by_bin(0, bin_ndx, mmr_name=name) - end if + call rad_cnst_get_info_by_bin_spec(0, bin_ndx, species_ndx, spec_name=name) end subroutine amb_mmr_name @@ -438,9 +431,7 @@ function icenuc_updates_mmr(self, bin_ndx, species_ndx) result(res) res = .false. - if (species_ndx==0) then - res = self%icenuc_updates_num(bin_ndx) - else + if (species_ndx>0) then call self%species_type( bin_ndx, species_ndx, spectype) if (trim(spectype)=='dust') res = .true. if (trim(spectype)=='sulfate') res = .true. @@ -564,4 +555,42 @@ function bin_name(self, list_ndx, bin_ndx) result(name) end function bin_name + !------------------------------------------------------------------------------ + ! returns scavenging radius (cm) for a given aerosol bin number + !------------------------------------------------------------------------------ + function scav_radius(self, bin_ndx) result(radius) + + use carma_model_mod, only: NBIN + use carma_intr, only :carma_get_bin_rmass + + class(carma_aerosol_properties), intent(in) :: self + integer, intent(in) :: bin_ndx ! bin number + + real(r8) :: radius ! cm + + real(r8) :: mass ! the bin mass (g) + real(r8) :: rho ! density (kg/m3) + integer :: igroup, ibin, rc, ispec + character(len=32) :: spectype + + ibin = bin_ndx + igroup = 1 + if (bin_ndx>NBIN) then + igroup = 2 + ibin = ibin-NBIN + end if + + call carma_get_bin_rmass(igroup, ibin, mass, rc) + + do ispec = 1, self%nspecies(bin_ndx) + call self%species_type(bin_ndx,ispec, spectype) + if (trim(spectype) == 'sulfate') then + call self%get(bin_ndx,ispec,density=rho) + end if + end do + + radius = (0.75*mass / pi / (1.0e-3_r8*rho)) **(0.33_r8) ! specdens kg/m3 to g/cm3, convert from radiust to diameter + + end function scav_radius + end module carma_aerosol_properties_mod diff --git a/src/chemistry/aerosol/carma_aerosol_state_mod.F90 b/src/chemistry/aerosol/carma_aerosol_state_mod.F90 index 0c3533a064..3458bd60ff 100644 --- a/src/chemistry/aerosol/carma_aerosol_state_mod.F90 +++ b/src/chemistry/aerosol/carma_aerosol_state_mod.F90 @@ -2,13 +2,16 @@ module carma_aerosol_state_mod use shr_kind_mod, only: r8 => shr_kind_r8 use aerosol_state_mod, only: aerosol_state, ptr2d_t - use rad_constituents, only: rad_cnst_get_bin_mmr_by_idx, rad_cnst_get_bin_num, rad_cnst_get_bin_mmr + use rad_constituents, only: rad_cnst_get_bin_mmr_by_idx, rad_cnst_get_bin_num !, rad_cnst_get_bin_mmr use rad_constituents, only: rad_cnst_get_info_by_bin use physics_buffer, only: physics_buffer_desc, pbuf_get_field, pbuf_get_index use physics_types, only: physics_state use aerosol_properties_mod, only: aerosol_properties, aero_name_len use physconst, only: pi + use carma_intr, only: carma_get_total_mmr, carma_get_dry_radius, carma_get_number, carma_get_number_cld + use carma_intr, only: carma_get_group_by_name, carma_get_kappa, carma_get_dry_radius, carma_get_wet_radius + use ppgrid, only: begchunk, endchunk, pcols, pver implicit none @@ -119,11 +122,22 @@ function ambient_total_bin_mmr(self, aero_props, bin_ndx, col_ndx, lyr_ndx) resu real(r8) :: mmr_tot ! mass mixing ratios totaled for all species - real(r8),pointer :: mmrptr(:,:) + real(r8) :: totmmr(pcols,pver) + character(len=aero_name_len) :: bin_name, shortname + integer :: igroup, ibin, rc, nchr - call rad_cnst_get_bin_mmr(0, bin_ndx, 'a', self%state, self%pbuf, mmrptr) + call rad_cnst_get_info_by_bin(0, bin_ndx, bin_name=bin_name) + + nchr = len_trim(bin_name)-2 + shortname = bin_name(:nchr) + + call carma_get_group_by_name(shortname, igroup, rc) + + read(bin_name(nchr+1:),*) ibin + + call carma_get_total_mmr(self%state, igroup, ibin, totmmr, rc) - mmr_tot = mmrptr(col_ndx,lyr_ndx) + mmr_tot = totmmr(col_ndx,lyr_ndx) end function ambient_total_bin_mmr @@ -176,7 +190,27 @@ subroutine get_ambient_num(self, bin_ndx, num) integer, intent(in) :: bin_ndx ! bin index real(r8), pointer :: num(:,:) ! number mixing ratios + character(len=aero_name_len) :: bin_name, shortname + integer :: igroup, ibin, rc, nchr, ncol + real(r8) :: nmr(pcols,pver) + + ncol = self%state%ncol + + call rad_cnst_get_info_by_bin(0, bin_ndx, bin_name=bin_name) + + nchr = len_trim(bin_name)-2 + shortname = bin_name(:nchr) + + call carma_get_group_by_name(shortname, igroup, rc) + + read(bin_name(nchr+1:),*) ibin + call rad_cnst_get_bin_num(0, bin_ndx, 'a', self%state, self%pbuf, num) + + call carma_get_number(self%state, igroup, ibin, nmr, rc) + + num(:ncol,:) = nmr(:ncol,:) + end subroutine get_ambient_num !------------------------------------------------------------------------------ @@ -187,7 +221,27 @@ subroutine get_cldbrne_num(self, bin_ndx, num) integer, intent(in) :: bin_ndx ! bin index real(r8), pointer :: num(:,:) ! number mixing ratios + character(len=aero_name_len) :: bin_name, shortname + integer :: igroup, ibin, rc, nchr, ncol + real(r8) :: nmr(pcols,pver) + + ncol = self%state%ncol + + call rad_cnst_get_info_by_bin(0, bin_ndx, bin_name=bin_name) + + nchr = len_trim(bin_name)-2 + shortname = bin_name(:nchr) + + call carma_get_group_by_name(shortname, igroup, rc) + + read(bin_name(nchr+1:),*) ibin + call rad_cnst_get_bin_num(0, bin_ndx, 'c', self%state, self%pbuf, num) + + call carma_get_number_cld(self%pbuf, igroup, ibin, ncol, pver, nmr, rc) + + num(:ncol,:) = nmr(:ncol,:) + end subroutine get_cldbrne_num !------------------------------------------------------------------------------ @@ -205,11 +259,8 @@ subroutine get_states( self, aero_props, raer, qqcw ) indx = aero_props%indexer(ibin, 0) call self%get_ambient_num(ibin, raer(indx)%fld) call self%get_cldbrne_num(ibin, qqcw(indx)%fld) - indx = aero_props%indexer(ibin, 1) - call rad_cnst_get_bin_mmr(0, ibin, 'a', self%state, self%pbuf, raer(indx)%fld) - call rad_cnst_get_bin_mmr(0, ibin, 'c', self%state, self%pbuf, qqcw(indx)%fld) do ispc = 1, aero_props%nspecies(ibin) - indx = aero_props%indexer(ibin, ispc+1) + indx = aero_props%indexer(ibin, ispc) call self%get_ambient_mmr(ispc,ibin, raer(indx)%fld) call self%get_cldbrne_mmr(ispc,ibin, qqcw(indx)%fld) end do @@ -229,19 +280,27 @@ subroutine icenuc_size_wght_arr(self, bin_ndx, ncol, nlev, species_type, use_pre logical, intent(in) :: use_preexisting_ice ! pre-existing ice flag real(r8), intent(out) :: wght(:,:) - character(len=aero_name_len) :: bin_name - real(r8), pointer :: dryr(:,:) + character(len=aero_name_len) :: bin_name, shortname + real(r8) :: rdry(ncol,nlev), rhopdry(ncol,nlev) integer :: i,k real(r8) :: diamdry + integer :: igroup, ibin, rc, nchr wght = 0._r8 call rad_cnst_get_info_by_bin(0, bin_ndx, bin_name=bin_name) - call pbuf_get_field(self%pbuf, pbuf_get_index(trim(bin_name)//"_dryr"),dryr) + + nchr = len_trim(bin_name)-2 + shortname = bin_name(:nchr) + call carma_get_group_by_name(shortname, igroup, rc) + + read(bin_name(nchr+1:),*) ibin + + call carma_get_dry_radius(self%state, igroup, ibin, rdry, rhopdry, rc) ! m, kg/m3 do k = 1,nlev do i = 1,ncol - diamdry = dryr(i,k) * 2.e4_r8 ! diameter in microns (from radius in cm) + diamdry = rdry(i,k) * 2.e4_r8 * 1.e6_r8 ! diameter in microns (from radius in m) if (diamdry >= 0.1_r8) then ! size threashold wght(i,k) = 1._r8 end if @@ -262,19 +321,11 @@ subroutine icenuc_size_wght_val(self, bin_ndx, col_ndx, lyr_ndx, species_type, u logical, intent(in) :: use_preexisting_ice ! pre-existing ice flag real(r8), intent(out) :: wght - character(len=aero_name_len) :: bin_name - real(r8), pointer :: dryr(:,:) - real(r8) :: diamdry - - wght = 0._r8 + real(r8) :: wght_arr(pcols,pver) - call rad_cnst_get_info_by_bin(0, bin_ndx, bin_name=bin_name) - call pbuf_get_field(self%pbuf, pbuf_get_index(trim(bin_name)//"_dryr"),dryr) + call self%icenuc_size_wght(bin_ndx, self%state%ncol, pver, species_type, use_preexisting_ice, wght_arr) - diamdry = dryr(col_ndx,lyr_ndx) * 2.e4_r8 ! diameter in microns (from radius in cm) - if (diamdry >= 0.1_r8) then ! size threashold - wght = 1._r8 - end if + wght = wght_arr(col_ndx,lyr_ndx) end subroutine icenuc_size_wght_val @@ -291,24 +342,12 @@ subroutine update_bin( self, bin_ndx, col_ndx, lyr_ndx, delmmr_sum, delnum_sum, real(r8),intent(in) :: dtime ! time step size (sec) real(r8),intent(inout) :: tend(:,:,:) ! tendency - real(r8), pointer :: amb_mmr(:,:) - real(r8), pointer :: cld_mmr(:,:) real(r8), pointer :: amb_num(:,:) real(r8), pointer :: cld_num(:,:) - call rad_cnst_get_bin_mmr(0, bin_ndx, 'a', self%state, self%pbuf, amb_mmr) - call rad_cnst_get_bin_mmr(0, bin_ndx, 'c', self%state, self%pbuf, cld_mmr) - call self%get_ambient_num(bin_ndx, amb_num) call self%get_cldbrne_num(bin_ndx, cld_num) - if (tnd_ndx>0) then - tend(col_ndx,lyr_ndx,tnd_ndx) = -delmmr_sum/dtime - else - amb_mmr(col_ndx,lyr_ndx) = amb_mmr(col_ndx,lyr_ndx) - delmmr_sum - end if - cld_mmr(col_ndx,lyr_ndx) = cld_mmr(col_ndx,lyr_ndx) + delmmr_sum - ! apply the total number change to bin number amb_num(col_ndx,lyr_ndx) = amb_num(col_ndx,lyr_ndx) - delnum_sum @@ -329,20 +368,32 @@ function hetfrz_size_wght(self, bin_ndx, ncol, nlev) result(wght) real(r8) :: wght(ncol,nlev) - character(len=aero_name_len) :: bin_name - real(r8), pointer :: dryr(:,:) - real(r8) :: diamdry(ncol,nlev) + character(len=aero_name_len) :: bin_name, shortname + real(r8) :: rdry(ncol,nlev), rhopdry(ncol,nlev) + integer :: i,k + real(r8) :: diamdry + integer :: igroup, ibin, rc, nchr - wght(:,:) = 0._r8 + wght = 0._r8 call rad_cnst_get_info_by_bin(0, bin_ndx, bin_name=bin_name) - call pbuf_get_field(self%pbuf, pbuf_get_index(trim(bin_name)//"_dryr"),dryr) - diamdry(:ncol,:) = dryr(:ncol,:) * 2.e4_r8 ! diameter in microns (from radius in cm) + nchr = len_trim(bin_name)-2 + shortname = bin_name(:nchr) + call carma_get_group_by_name(shortname, igroup, rc) - where (diamdry >= 0.5_r8) - wght = 1._r8 - end where + read(bin_name(nchr+1:),*) ibin + + call carma_get_dry_radius(self%state, igroup, ibin, rdry, rhopdry, rc) ! m, kg/m3 + + do k = 1,nlev + do i = 1,ncol + diamdry = rdry(i,k) * 2.e4_r8 * 1.e6_r8 ! diameter in microns (from radius in m) + if (diamdry >= 0.1_r8) then ! size threashold + wght(i,k) = 1._r8 + end if + end do + end do end function hetfrz_size_wght @@ -350,21 +401,27 @@ end function hetfrz_size_wght ! returns hygroscopicity for a given radiation diagnostic list number and ! bin number !------------------------------------------------------------------------------ - function hygroscopicity(self, list_ndx, bin_ndx) result(kappa) + subroutine hygroscopicity(self, list_ndx, bin_ndx, kappa) class(carma_aerosol_state), intent(in) :: self integer, intent(in) :: list_ndx ! rad climate list number integer, intent(in) :: bin_ndx ! bin number + real(r8), intent(out) :: kappa(:,:) ! hygroscopicity (ncol,nlev) - real(r8), pointer :: kappa(:,:) ! hygroscopicity (ncol,nlev) + character(len=aero_name_len) :: bin_name, shortname + integer :: igroup, ibin, rc, nchr, ncol - character(len=aero_name_len) :: bin_name + call rad_cnst_get_info_by_bin(0, bin_ndx, bin_name=bin_name) + + nchr = len_trim(bin_name)-2 + shortname = bin_name(:nchr) - nullify(kappa) + call carma_get_group_by_name(shortname, igroup, rc) - call rad_cnst_get_info_by_bin(list_ndx, bin_ndx, bin_name=bin_name) - call pbuf_get_field(self%pbuf, pbuf_get_index(trim(bin_name)//"_kappa"),kappa) + read(bin_name(nchr+1:),*) ibin - end function hygroscopicity + call carma_get_kappa(self%state, igroup, ibin, kappa, rc) + + end subroutine hygroscopicity !------------------------------------------------------------------------------ ! returns aerosol wet diameter and aerosol water concentration for a given @@ -392,9 +449,9 @@ end subroutine water_uptake function wgtpct(self) result(wtp) class(carma_aerosol_state), intent(in) :: self real(r8), pointer :: wtp(:,:) ! weight precent of H2SO4/H2O solution - - call pbuf_get_field(self%pbuf, pbuf_get_index('WTP'), wtp) - +! ****** NEED TO IMPLEMENT ****** +!!$ call pbuf_get_field(self%pbuf, pbuf_get_index('WTP'), wtp) + nullify(wtp) end function wgtpct !------------------------------------------------------------------------------ @@ -412,17 +469,26 @@ function dry_volume(self, aero_props, list_idx, bin_idx, ncol, nlev) result(vol) real(r8) :: vol(ncol,nlev) ! m3/kg + real(r8) :: raddry(pcols,pver) !! dry radius (m) + real(r8) :: rhodry(pcols,pver) !! dry density (kg/m3) - real(r8), pointer :: dryr(:,:) - character(len=32) :: bin_name + character(len=aero_name_len) :: bin_name, shortname + integer :: igroup, ibin, rc, nchr - vol = 0._r8 + call rad_cnst_get_info_by_bin(0, bin_idx, bin_name=bin_name) + + nchr = len_trim(bin_name)-2 + shortname = bin_name(:nchr) + + call carma_get_group_by_name(shortname, igroup, rc) - call rad_cnst_get_info_by_bin(list_idx, bin_idx, bin_name=bin_name) + read(bin_name(nchr+1:),*) ibin - call pbuf_get_field(self%pbuf, pbuf_get_index(trim(bin_name)//"_dryr"),dryr) + vol = 0._r8 + + call carma_get_dry_radius(self%state, igroup, ibin, raddry, rhodry, rc) - vol(:ncol,:) = four_thirds_pi * (dryr(:ncol,:)**3) + vol(:ncol,:) = four_thirds_pi * (raddry(:ncol,:)**3) ! ???? units = m3/kg ???? end function dry_volume @@ -441,16 +507,26 @@ function wet_volume(self, aero_props, list_idx, bin_idx, ncol, nlev) result(vol) real(r8) :: vol(ncol,nlev) ! m3/kg - real(r8), pointer :: wetr(:,:) - character(len=32) :: bin_name + real(r8) :: radwet(pcols,pver) !! wet radius (m) + real(r8) :: rhowet(pcols,pver) !! wet density (kg/m3) - vol = 0._r8 + character(len=aero_name_len) :: bin_name, shortname + integer :: igroup, ibin, rc, nchr + + call rad_cnst_get_info_by_bin(0, bin_idx, bin_name=bin_name) - call rad_cnst_get_info_by_bin(list_idx, bin_idx, bin_name=bin_name) + nchr = len_trim(bin_name)-2 + shortname = bin_name(:nchr) + + call carma_get_group_by_name(shortname, igroup, rc) + + read(bin_name(nchr+1:),*) ibin + + vol = 0._r8 - call pbuf_get_field(self%pbuf, pbuf_get_index(trim(bin_name)//"_wetr"),wetr) + call carma_get_wet_radius(self%state, igroup, ibin, radwet, rhowet, rc) - vol(:ncol,:) = four_thirds_pi * (wetr(:ncol,:)**3) + vol(:ncol,:) = four_thirds_pi * (radwet(:ncol,:)**3) ! ???? units = m3/kg ???? end function wet_volume diff --git a/src/chemistry/aerosol/hygrocoreshell_aerosol_optics_mod.F90 b/src/chemistry/aerosol/hygrocoreshell_aerosol_optics_mod.F90 index 53bcbc8be2..8871312117 100644 --- a/src/chemistry/aerosol/hygrocoreshell_aerosol_optics_mod.F90 +++ b/src/chemistry/aerosol/hygrocoreshell_aerosol_optics_mod.F90 @@ -69,7 +69,6 @@ function constructor(aero_props, aero_state, ilist, ibin, ncol, nlev, relhum) re integer :: ierr, nspec integer :: ilev, ispec, icol - real(r8), pointer :: kappa_ptr(:,:) ! hygroscopicity real(r8), pointer :: specmmr(:,:) ! species mass mixing ratio real(r8) :: coremmr(ncol,nlev) @@ -172,8 +171,7 @@ function constructor(aero_props, aero_state, ilist, ibin, ncol, nlev, relhum) re end do end do - kappa_ptr => aero_state%hygroscopicity(ilist, ibin) - newobj%kappa(:ncol,:) = kappa_ptr(:ncol,:) + call aero_state%hygroscopicity(ilist, ibin, newobj%kappa) call aero_props%optics_params(ilist, ibin, & corefrac=newobj%tbl_corefrac, kap=newobj%tbl_kap, & diff --git a/src/chemistry/aerosol/hygrowghtpct_aerosol_optics_mod.F90 b/src/chemistry/aerosol/hygrowghtpct_aerosol_optics_mod.F90 index b8b0300903..71686f1ce5 100644 --- a/src/chemistry/aerosol/hygrowghtpct_aerosol_optics_mod.F90 +++ b/src/chemistry/aerosol/hygrowghtpct_aerosol_optics_mod.F90 @@ -80,11 +80,12 @@ function constructor(aero_props, aero_state, ilist, ibin, ncol, nlev) result(new return end if - wgtpct_in => aero_state%wgtpct() - +!!$ wgtpct_in => aero_state%wgtpct() +!! *** NEED TO FIX *** call aero_props%optics_params(ilist, ibin, wgtpct=newobj%tbl_wgtpct, nwtp=newobj%nwtp) - newobj%wgtpct(:ncol,:) = wgtpct_in(:ncol,:) +!!$ newobj%wgtpct(:ncol,:) = wgtpct_in(:ncol,:) + newobj%wgtpct(:ncol,:) = 0._r8 nspec = aero_props%nspecies(ilist, ibin) diff --git a/src/chemistry/aerosol/modal_aerosol_properties_mod.F90 b/src/chemistry/aerosol/modal_aerosol_properties_mod.F90 index 66cee40480..17d50f06fe 100644 --- a/src/chemistry/aerosol/modal_aerosol_properties_mod.F90 +++ b/src/chemistry/aerosol/modal_aerosol_properties_mod.F90 @@ -36,6 +36,7 @@ module modal_aerosol_properties_mod procedure :: soluble procedure :: min_mass_mean_rad procedure :: bin_name + procedure :: scav_radius final :: destructor end type modal_aerosol_properties @@ -665,4 +666,15 @@ function bin_name(self, list_ndx, bin_ndx) result(name) end function bin_name + !------------------------------------------------------------------------------ + ! returns scavenging radius (cm) for a given aerosol bin number + !------------------------------------------------------------------------------ + function scav_radius(self, bin_ndx) result(radius) + class(modal_aerosol_properties), intent(in) :: self + integer, intent(in) :: bin_ndx ! bin number + + real(r8) :: radius + + end function scav_radius + end module modal_aerosol_properties_mod diff --git a/src/chemistry/aerosol/modal_aerosol_state_mod.F90 b/src/chemistry/aerosol/modal_aerosol_state_mod.F90 index 905e59da66..3210d4bfa1 100644 --- a/src/chemistry/aerosol/modal_aerosol_state_mod.F90 +++ b/src/chemistry/aerosol/modal_aerosol_state_mod.F90 @@ -427,16 +427,15 @@ end function hetfrz_size_wght ! returns hygroscopicity for a given radiation diagnostic list number and ! bin number !------------------------------------------------------------------------------ - function hygroscopicity(self, list_ndx, bin_ndx) result(kappa) + subroutine hygroscopicity(self, list_ndx, bin_ndx, kappa) class(modal_aerosol_state), intent(in) :: self integer, intent(in) :: list_ndx ! rad climate list number integer, intent(in) :: bin_ndx ! bin number + real(r8), intent(out) :: kappa(:,:) ! hygroscopicity (ncol,nlev) - real(r8), pointer :: kappa(:,:) ! hygroscopicity (ncol,nlev) + kappa = -huge(1._r8) - nullify(kappa) - - end function hygroscopicity + end subroutine hygroscopicity !------------------------------------------------------------------------------ ! returns aerosol wet diameter and aerosol water concentration for a given diff --git a/src/chemistry/carma_aero/aero_model.F90 b/src/chemistry/carma_aero/aero_model.F90 index a9b3cc1507..5a252b29db 100644 --- a/src/chemistry/carma_aero/aero_model.F90 +++ b/src/chemistry/carma_aero/aero_model.F90 @@ -21,9 +21,9 @@ module aero_model use infnan, only: nan, assignment(=) use rad_constituents, only: rad_cnst_get_info, rad_cnst_get_info_by_bin, & rad_cnst_get_info_by_bin_spec, rad_cnst_get_bin_props_by_idx, & - rad_cnst_get_bin_mmr_by_idx, rad_cnst_get_bin_mmr, & - rad_cnst_get_bin_num + rad_cnst_get_bin_mmr_by_idx use mo_setsox, only: setsox, has_sox + use carma_aerosol_properties_mod, only: carma_aerosol_properties implicit none private @@ -87,17 +87,17 @@ module aero_model end type ptr2d_t logical :: lq(pcnst) = .false. ! set flags true for constituents with non-zero tendencies - ! in the ptend object + ! in the ptend object - ! Namelist variables + ! Namelist variables real(r8) :: sol_facti_cloud_borne = 1._r8 real(r8) :: sol_factb_interstitial = 0.1_r8 real(r8) :: sol_factic_interstitial = 0.4_r8 real(r8) :: seasalt_emis_scale - logical :: convproc_do_aer - + logical :: convproc_do_aer + type(carma_aerosol_properties), pointer :: aero_props =>null() contains @@ -171,8 +171,9 @@ subroutine aero_model_register() integer :: m, l, i integer :: nsoa_vbs character(len=32) :: spectype - character(len=32) :: spec_name - character(len=32) :: mmr_name + character(len=32) :: num_name + character(len=32) :: num_name_cw + character(len=32) :: spec_name_cw character(len=32) :: soag_name character(len=32) :: soa_name @@ -183,12 +184,12 @@ subroutine aero_model_register() ! add pbuf fields for interstitial (cloud borne) aerosols in CARMA do m = 1, nbins - call rad_cnst_get_info_by_bin(0, m, nspec=nspec(m), mmr_name=mmr_name) - call pbuf_add_field('CLD'//trim(mmr_name),'global',dtype_r8,(/pcols,pver/), idx) - call pbuf_add_field('CLDNB'//trim(mmr_name),'global',dtype_r8,(/pcols,pver/), idx) + call rad_cnst_get_info_by_bin(0, m, num_name=num_name, num_name_cw=num_name_cw, nspec=nspec(m)) + call pbuf_add_field(num_name,'global',dtype_r8,(/pcols,pver/), idx) + call pbuf_add_field(num_name_cw,'global',dtype_r8,(/pcols,pver/), idx) do l = 1, nspec(m) - call rad_cnst_get_info_by_bin_spec(0, m, l, spec_name=spec_name) - call pbuf_add_field('CLD'//trim(spec_name),'global',dtype_r8,(/pcols,pver/),idx) + call rad_cnst_get_info_by_bin_spec(0, m, l, spec_name_cw=spec_name_cw) + call pbuf_add_field(spec_name_cw,'global',dtype_r8,(/pcols,pver/),idx) enddo enddo @@ -258,23 +259,25 @@ subroutine aero_model_init( pbuf2d ) !st character(len=fieldname_len) :: field_name character(len=32) :: spectype - character(len=32) :: spec_name - character(len=32) :: mmr_name - character(len=32) :: bin_name + character(len=32) :: num_name + character(len=32) :: num_name_cw + character(len=32) :: spec_name_cw integer :: idx real(r8) :: nanval + aero_props => carma_aerosol_properties() + if (is_first_step()) then do m = 1, nbins - call rad_cnst_get_info_by_bin(0, m, mmr_name=mmr_name) - idx = pbuf_get_index('CLD'//trim(mmr_name)) + call rad_cnst_get_info_by_bin(0, m, num_name=num_name, num_name_cw=num_name_cw) + idx = pbuf_get_index(num_name) call pbuf_set_field(pbuf2d, idx, 0.0_r8) - idx = pbuf_get_index('CLDNB'//trim(mmr_name)) + idx = pbuf_get_index(num_name_cw) call pbuf_set_field(pbuf2d, idx, 0.0_r8) do l = 1, nspec(m) - call rad_cnst_get_info_by_bin_spec(0, m, l, spec_name=spec_name) - idx = pbuf_get_index('CLD'//trim(spec_name)) + call rad_cnst_get_info_by_bin_spec(0, m, l, spec_name_cw=spec_name_cw) + idx = pbuf_get_index(spec_name_cw) call pbuf_set_field(pbuf2d, idx, 0.0_r8) enddo enddo @@ -365,15 +368,13 @@ subroutine aero_model_init( pbuf2d ) ii = 0 do m = 1, nbins - do l = 1, nspec(m) + 2 ! do through nspec plus mmr and number + do l = 1, nspec(m) + 1 ! loop through nspec plus number ii = ii + 1 bin_idx(m,l) = ii if (l <= nspec(m) ) then ! species call rad_cnst_get_info_by_bin_spec(0, m, l, spec_name=fieldname(ii), spec_name_cw=fieldname_cw(ii)) - else if (l == nspec(m) + 1) then ! mmr - call rad_cnst_get_info_by_bin(0, m, mmr_name=fieldname(ii), mmr_name_cw=fieldname_cw(ii)) - else if (l == nspec(m) + 2) then !number + else !number call rad_cnst_get_info_by_bin(0, m, num_name=fieldname(ii), num_name_cw=fieldname_cw(ii)) end if @@ -694,7 +695,7 @@ subroutine aero_model_wetdep( state, dt, dlf, cam_out, ptend, pbuf) dcondt_resusp3d(:,:,:) = 0._r8 call physics_ptend_init(ptend, state%psetcols, 'aero_model_wetdep', lq=lq) - +return !st CARMA is doing water uptake (in the CARMA code), we leave this out here ! Do calculations of mode radius and water uptake if: ! 1) modal aerosols are affecting the climate, or @@ -866,8 +867,6 @@ subroutine aero_model_wetdep( state, dt, dlf, cam_out, ptend, pbuf) ! get total mass (per bin) l = nspec(m) + 1 mm = bin_idx(m, l) - call rad_cnst_get_bin_mmr(0, m, 'a', state, pbuf, raer(mm)%fld) - totalmmr = raer(mm)%fld do l = 1, nspec(m) mm = bin_idx(m, l) call rad_cnst_get_bin_mmr_by_idx(0, m, l, 'a', state, pbuf, raer(mm)%fld) @@ -930,15 +929,6 @@ subroutine aero_model_wetdep( state, dt, dlf, cam_out, ptend, pbuf) call rad_cnst_get_bin_mmr_by_idx(0, m, l, 'a', state, pbuf, raer(mm)%fld) call rad_cnst_get_bin_mmr_by_idx(0, m, l, 'c', state, pbuf, qqcw(mm)%fld) ! cloud-borne aerosol end if - if (l == nspec(m)+1) then - call rad_cnst_get_bin_mmr(0, m, 'a', state, pbuf, raer(mm)%fld) - call rad_cnst_get_bin_mmr(0, m, 'c', state, pbuf, qqcw(mm)%fld) ! cloud-borne aerosol - end if - if (l == nspec(m)+2) then - call rad_cnst_get_bin_num(0, m, 'a', state, pbuf, raer(mm)%fld) - call rad_cnst_get_bin_num(0, m, 'c', state, pbuf, qqcw(mm)%fld) ! cloud-borne aerosol - end if - if (lphase == 1) then !ptend%lq(lpr) = .TRUE. @@ -1518,6 +1508,7 @@ subroutine aero_model_gasaerexch( state, loffset, ncol, lchnk, troplev, delt, re character(len=32) :: bin_name character(len=32) :: spectype logical :: is_spcam_m2005 +return ! ! ... initialize nh3 ! @@ -1597,14 +1588,6 @@ subroutine aero_model_gasaerexch( state, loffset, ncol, lchnk, troplev, delt, re mw_carma(mm) = 57._r8 end if end if - if (l == nspec(m)+1) then - call rad_cnst_get_bin_mmr(0, m, 'a', state, pbuf, raer(mm)%fld) - call rad_cnst_get_bin_mmr(0, m, 'c', state, pbuf, qqcw(mm)%fld) ! cloud-borne aerosol - end if - if (l == nspec(m)+2) then - call rad_cnst_get_bin_num(0, m, 'a', state, pbuf, raer(mm)%fld) - call rad_cnst_get_bin_num(0, m, 'c', state, pbuf, qqcw(mm)%fld) ! cloud-borne aerosol - end if mmrcw(:ncol,:,mm) = qqcw(mm)%fld(:ncol,:) vmrcw(:ncol,:,mm) = qqcw(mm)%fld(:ncol,:) raervmr(:ncol,:,mm) = raer(mm)%fld(:ncol,:) @@ -1833,7 +1816,9 @@ subroutine surf_area_dens( state, pbuf, ncol, mmr, beglev, endlev, sad, reff, sf real(r8), pointer :: wetr(:,:) ! CARMA bin wet radius in cm real(r8), pointer :: sad_carma(:,:) ! CARMA bin wet surface area density in cm2/cm3 real(r8), pointer :: aer_bin_mmr(:,:) - + sad = 0._r8 + reff = 0._r8 +return ! ! Compute surface aero for each bin. ! Total over all bins as the surface area for chemical reactions. @@ -1932,9 +1917,6 @@ subroutine carma_aero_bcscavcoef_init ( pbuf2d ) character(len=32) :: bin_name character(len=32) :: spectype - real(r8), pointer :: rmass_ptr(:) ! CARMA rmass fixed per bin - real(r8), allocatable :: rmass(:) ! CARMA rmass - real(r8) dg0, dg0_cgs, press, dg0_base, & rhodryaero, rhowetaero, rhowetaero_cgs, rmserr, & scavratenum, scavratevol, sigmag, & @@ -1950,7 +1932,6 @@ subroutine carma_aero_bcscavcoef_init ( pbuf2d ) lunerr = iulog dlndg_nimptblgrow = log( 1.25_r8 ) - allocate ( rmass(nbins) ) ! bin model: main loop over aerosol bins modeloop: do m = 1, nbins @@ -1960,24 +1941,16 @@ subroutine carma_aero_bcscavcoef_init ( pbuf2d ) ! get bin info call rad_cnst_get_info_by_bin(0, m, bin_name=bin_name) - call pbuf_get_field(pbuf2d, begchunk, pbuf_get_index(trim(bin_name)//"_rmass"),rmass_ptr) - rmass(m) = rmass_ptr(1) - ! for setting up the lookup table, use the dry density of the first - ! get specdens from sulfate (check) + ! get specdens from sulfate (check) do l = 1, nspec(m) - - call rad_cnst_get_bin_props_by_idx(0, m, l,spectype=spectype, density_aer=specdens) - - ! chemical component of the aerosol type (which currently will be so4) - ! For CARMA, rmass per bin stays the same, while dry radius varies when the particle density varies - ! rmass = 4/3 * Pi * density * dry radius - ! We assume a fixed specie density - if (trim(spectype) == 'sulfate') then - rhodryaero = specdens - end if + call aero_props%species_type(m,l, spectype) + if (trim(spectype) == 'sulfate') then + call aero_props%get(m,l,density=rhodryaero) + end if end do - dg0_base = 2._r8 * (0.75_r8*rmass(m) / pi / (1.0e-3_r8*rhodryaero)) **(0.33_r8) ! specdens kg/m3 to g/cm3, convert from radiust to diameter + + dg0_base = 2._r8 * aero_props%scav_radius(m) !sigmag = sigmag_amode(mode) !dg0_base = dcen_sect(m,n)*exp( -1.5*((log(sigmag))**2) ) @@ -2111,7 +2084,7 @@ subroutine carma_aero_bcscavcoef_get( m, ncol, isprx, wetr, dryr, scavcoefnum, s end if end do dg0_base = 2._r8 * (0.75_r8*rmass(m) / pi / (1.0e-3_r8*rhodryaero)) **(0.33_r8) ! specdens kg/m3 to g/cm3, convert from radiust to diameter - !rg0_base = (0.75*rmass(m) / pi / (1.0e-3_r8*specdens)) **(0.33_r8) ! specdens kg/m3 to g/cm3 + !rg0_base = (0.75_r8*rmass(m) / pi / (1.0e-3_r8*specdens)) **(0.33_r8) ! specdens kg/m3 to g/cm3 do k = 1, pver do i = 1, ncol diff --git a/src/chemistry/carma_aero/carma_aero_convproc.F90 b/src/chemistry/carma_aero/carma_aero_convproc.F90 index 65cca26998..7b9275c911 100644 --- a/src/chemistry/carma_aero/carma_aero_convproc.F90 +++ b/src/chemistry/carma_aero/carma_aero_convproc.F90 @@ -30,8 +30,7 @@ module carma_aero_convproc use cam_logfile, only: iulog use cam_abortutils, only: endrun use rad_constituents,only: rad_cnst_get_info, rad_cnst_get_info_by_bin, rad_cnst_get_info_by_bin_spec, & - rad_cnst_get_bin_props_by_idx, rad_cnst_get_bin_mmr_by_idx, rad_cnst_get_bin_mmr, & - rad_cnst_get_bin_num + rad_cnst_get_bin_props_by_idx, rad_cnst_get_bin_mmr_by_idx use carma_aerosol_properties_mod, only: carma_aerosol_properties use carma_aerosol_state_mod, only: carma_aerosol_state @@ -273,17 +272,11 @@ subroutine ma_convproc_init ii = 0 do m = 1, nbins - do l = 1, nspec(m) + 2 ! do through nspec plus mmr and number + do l = 1, nspec(m) ii = ii + 1 bin_idx(m,l) = ii - if (l <= nspec(m) ) then ! species - call rad_cnst_get_info_by_bin_spec(0, m, l, spec_name=fieldname(ii), spec_name_cw=fieldname_cw(ii)) - else if (l == nspec(m) + 1) then ! bin mmr - call rad_cnst_get_info_by_bin(0, m, mmr_name=fieldname(ii), mmr_name_cw=fieldname_cw(ii)) - else if (l == nspec(m) + 2) then ! bin num dens - call rad_cnst_get_info_by_bin(0, m, num_name=fieldname(ii), num_name_cw=fieldname_cw(ii)) - end if + call rad_cnst_get_info_by_bin_spec(0, m, l, spec_name=fieldname(ii), spec_name_cw=fieldname_cw(ii)) call addfld (trim(fieldname(ii))//'SFSEC', & horiz_only, 'A','kg/m2/s','Wet deposition flux (precip evap, convective) at surface') @@ -324,7 +317,7 @@ subroutine ma_convproc_init if (m.lt.nbins) then call rad_cnst_get_info_by_bin(0, m+1, bin_name=bin_name_l) end if - do l = 1, nspec(m) + 2 ! do through nspec plus mmr and number + do l = 1, nspec(m) ii = bin_idx(m,l) ibl(ii) = ii @@ -532,13 +525,8 @@ subroutine ma_convproc_intr( state, ptend, pbuf, ztodt, & if (ll <= nspec(n)) then call rad_cnst_get_bin_mmr_by_idx(0, n, ll, 'a', state, pbuf, raer(l)%fld) end if - if (ll == nspec(n)+1) then ! mmr - call rad_cnst_get_bin_mmr(0, n, 'a', state, pbuf, raer(l)%fld) - end if - if (ll == nspec(n)+2) then ! number - call rad_cnst_get_bin_num(0, n, 'a', state, pbuf, raer(l)%fld) - end if - ! calc new raer(l) if from state, add ptend + + ! calc new raer(l) if from state, add ptend if (bin_cnst_lq(n,ll)) then ! advected species, non advective species have been updated qa(:ncol,:,l) = raer(l)%fld(1:ncol,:) + dt*ptend%q(1:ncol,:,lpr) qb(:ncol,:,l) = max( 0.0_r8, qa(1:ncol,:,l) ) diff --git a/src/physics/cam/carma_fixer_mod.F90 b/src/physics/cam/carma_fixer_mod.F90 index 5efb602da8..628c6a05f8 100644 --- a/src/physics/cam/carma_fixer_mod.F90 +++ b/src/physics/cam/carma_fixer_mod.F90 @@ -10,9 +10,9 @@ module carma_fixer_mod subroutine carma_fix_pbuf( state, pbuf ) use carma_flags_mod, only: carma_model - use rad_constituents, only: rad_cnst_get_info, rad_cnst_get_info_by_bin - use rad_constituents, only: rad_cnst_get_bin_num, rad_cnst_get_info_by_bin_spec - use rad_constituents, only: rad_cnst_get_bin_mmr, rad_cnst_get_bin_mmr_by_idx +!!$ use rad_constituents, only: rad_cnst_get_info, rad_cnst_get_info_by_bin +!!$ use rad_constituents, only: rad_cnst_get_bin_num, rad_cnst_get_info_by_bin_spec +!!$ use rad_constituents, only: rad_cnst_get_bin_mmr, rad_cnst_get_bin_mmr_by_idx use ppgrid, only: pcols, pver use constituents, only: pcnst, cnst_name, cnst_get_ind use physics_buffer, only: physics_buffer_desc, pbuf_get_index, pbuf_get_field @@ -31,45 +31,45 @@ subroutine carma_fix_pbuf( state, pbuf ) logical, parameter :: debug=.false. character(len=*), parameter :: prefix = 'carma_fix_pbuf: ' - - if (carma_model(:10) /= 'trop_strat') return - - ncol = state%ncol - - call rad_cnst_get_info(0, nbins=nbins) - - do m = 1, nbins - call rad_cnst_get_bin_mmr(0, m, 'a', state, pbuf, bin_mmr) - call rad_cnst_get_bin_num(0, m, 'a', state, pbuf, bin_num) - call rad_cnst_get_info_by_bin(0, m, nspec=nspec, bin_name=name) - call pbuf_get_field(pbuf, pbuf_get_index(trim(name)//"_rmass"),rmass) - bin_num(:ncol,:) = bin_mmr(:ncol,:)/rmass(1) - - if (debug.and.masterproc) write(iulog,*) prefix//'bin mmr name = '//trim(name) - lbuf = -1 - total_mmr(:,:) = 0._r8 - - do l = 1, nspec - call rad_cnst_get_info_by_bin_spec(0, m, l, spec_name=name) - if (debug.and.masterproc) write(iulog,*) prefix//' species mmr name = '//trim(name) - call cnst_get_ind(name, idxtmp, abort=.false.) - if ( idxtmp>0 ) then - call rad_cnst_get_bin_mmr_by_idx(0, m, l, 'a', state, pbuf, spec_mmr) - total_mmr(:ncol,:) = total_mmr(:ncol,:) + spec_mmr(:ncol,:) - elseif (lbuf<1) then - if (debug.and.masterproc) write(iulog,*) prefix//' species '//trim(name)//' is in pbuf' - lbuf = l - else - call endrun(prefix//' multiple bin species in pbuf') - endif - enddo - if (lbuf>0) then - call rad_cnst_get_info_by_bin_spec(0, m, lbuf, spec_name=name) - if (debug.and.masterproc) write(iulog,*) prefix//'force '//trim(name)//' mmr = bin - total' - call rad_cnst_get_bin_mmr_by_idx(0, m, lbuf, 'a', state, pbuf, spec_mmr) - spec_mmr(:ncol,:) = max( bin_mmr(:ncol,:)-total_mmr(:ncol,:), 0._r8 ) - endif - enddo +!!$ +!!$ if (carma_model(:10) /= 'trop_strat') return +!!$ +!!$ ncol = state%ncol +!!$ +!!$ call rad_cnst_get_info(0, nbins=nbins) +!!$ +!!$ do m = 1, nbins +!!$ call rad_cnst_get_bin_mmr(0, m, 'a', state, pbuf, bin_mmr) +!!$ call rad_cnst_get_bin_num(0, m, 'a', state, pbuf, bin_num) +!!$ call rad_cnst_get_info_by_bin(0, m, nspec=nspec, bin_name=name) +!!$ call pbuf_get_field(pbuf, pbuf_get_index(trim(name)//"_rmass"),rmass) +!!$ bin_num(:ncol,:) = bin_mmr(:ncol,:)/rmass(1) +!!$ +!!$ if (debug.and.masterproc) write(iulog,*) prefix//'bin mmr name = '//trim(name) +!!$ lbuf = -1 +!!$ total_mmr(:,:) = 0._r8 +!!$ +!!$ do l = 1, nspec +!!$ call rad_cnst_get_info_by_bin_spec(0, m, l, spec_name=name) +!!$ if (debug.and.masterproc) write(iulog,*) prefix//' species mmr name = '//trim(name) +!!$ call cnst_get_ind(name, idxtmp, abort=.false.) +!!$ if ( idxtmp>0 ) then +!!$ call rad_cnst_get_bin_mmr_by_idx(0, m, l, 'a', state, pbuf, spec_mmr) +!!$ total_mmr(:ncol,:) = total_mmr(:ncol,:) + spec_mmr(:ncol,:) +!!$ elseif (lbuf<1) then +!!$ if (debug.and.masterproc) write(iulog,*) prefix//' species '//trim(name)//' is in pbuf' +!!$ lbuf = l +!!$ else +!!$ call endrun(prefix//' multiple bin species in pbuf') +!!$ endif +!!$ enddo +!!$ if (lbuf>0) then +!!$ call rad_cnst_get_info_by_bin_spec(0, m, lbuf, spec_name=name) +!!$ if (debug.and.masterproc) write(iulog,*) prefix//'force '//trim(name)//' mmr = bin - total' +!!$ call rad_cnst_get_bin_mmr_by_idx(0, m, lbuf, 'a', state, pbuf, spec_mmr) +!!$ spec_mmr(:ncol,:) = max( bin_mmr(:ncol,:)-total_mmr(:ncol,:), 0._r8 ) +!!$ endif +!!$ enddo end subroutine carma_fix_pbuf diff --git a/src/physics/cam/rad_constituents.F90 b/src/physics/cam/rad_constituents.F90 index d2cf715ce6..c71b7f1a43 100644 --- a/src/physics/cam/rad_constituents.F90 +++ b/src/physics/cam/rad_constituents.F90 @@ -54,9 +54,7 @@ module rad_constituents rad_cnst_get_info_by_bin_spec, & rad_cnst_get_bin_props, & rad_cnst_get_bin_num, & - rad_cnst_get_bin_num_idx, & - rad_cnst_get_carma_mmr_idx, & - rad_cnst_get_bin_mmr + rad_cnst_get_carma_mmr_idx public :: rad_cnst_num_name @@ -136,11 +134,6 @@ module rad_constituents character(len= 1) :: source_num_c ! source of cloud borne number conc field character(len= 32) :: camname_num_c ! name registered in pbuf or constituents for number mixing ratio of cloud borne species - character(len= 1) :: source_mass_a ! source of interstitial number conc field - character(len= 32) :: camname_mass_a ! name registered in pbuf or constituents for number mixing ratio of interstitial species - character(len= 1) :: source_mass_c ! source of cloud borne number conc field - character(len= 32) :: camname_mass_c ! name registered in pbuf or constituents for number mixing ratio of cloud borne species - character(len= 1), pointer :: source_mmr_a(:) ! source of interstitial mmr field character(len= 32), pointer :: camname_mmr_a(:) ! name registered in pbuf or constituents for mmr species character(len= 1), pointer :: source_mmr_c(:) ! source of cloud borne specie mmr fields @@ -151,8 +144,6 @@ module rad_constituents integer :: idx_num_a ! index in pbuf or constituents for number mixing ratio of interstitial species integer :: idx_num_c ! index in pbuf for number mixing ratio of cloud-borne species - integer :: idx_mass_a ! index in pbuf or constituents for mass mixing ratio of interstitial species - integer :: idx_mass_c ! index in pbuf for mass mixing ratio of cloud-borne species integer, pointer :: idx_mmr_a(:) ! index in pbuf or constituents for mmr of interstitial species integer, pointer :: idx_mmr_c(:) ! index in pbuf or constituents for mmr of cloud-borne species @@ -796,8 +787,7 @@ end subroutine rad_cnst_get_info_by_mode !================================================================================================ -subroutine rad_cnst_get_info_by_bin(list_idx, m_idx, & - bin_name, num_name, num_name_cw, mmr_name, mmr_name_cw, nspec) +subroutine rad_cnst_get_info_by_bin(list_idx, m_idx, bin_name, num_name, num_name_cw, nspec) ! Return info about CARMA aerosol lists @@ -807,8 +797,6 @@ subroutine rad_cnst_get_info_by_bin(list_idx, m_idx, & character(len=*), optional, intent(out) :: bin_name character(len=32), optional, intent(out) :: num_name ! name of interstitial number mixing ratio character(len=32), optional, intent(out) :: num_name_cw ! name of cloud borne number mixing ratio - character(len=32), optional, intent(out) :: mmr_name ! name of interstitial mass mixing ratio - character(len=32), optional, intent(out) :: mmr_name_cw ! name of cloud borne mass mixing ratio integer, optional, intent(out) :: nspec ! number of species in the mode ! Local variables @@ -852,16 +840,6 @@ subroutine rad_cnst_get_info_by_bin(list_idx, m_idx, & num_name_cw = bins%comps(mm)%camname_num_c endif - ! name of interstitial mass mixing ratio - if (present(mmr_name)) then - mmr_name = bins%comps(mm)%camname_mass_a - endif - - ! name of cloud borne mass mixing ratio - if (present(mmr_name_cw)) then - mmr_name_cw = bins%comps(mm)%camname_mass_c - endif - end subroutine rad_cnst_get_info_by_bin !================================================================================================ @@ -1309,12 +1287,6 @@ subroutine init_bin_comps(bins) ! indices for number mixing ratio components bins%comps(m)%idx_num_a = get_cam_idx(bins%comps(m)%source_num_a, bins%comps(m)%camname_num_a, routine) bins%comps(m)%idx_num_c = get_cam_idx(bins%comps(m)%source_num_c, bins%comps(m)%camname_num_c, routine) - if ( bins%comps(m)%source_mass_a /= 'NOTSET' .and. bins%comps(m)%camname_mass_a /= 'NOTSET' ) then - bins%comps(m)%idx_mass_a = get_cam_idx(bins%comps(m)%source_mass_a, bins%comps(m)%camname_mass_a, routine) - endif - if ( bins%comps(m)%source_mass_c /= 'NOTSET' .and. bins%comps(m)%camname_mass_c /= 'NOTSET' ) then - bins%comps(m)%idx_mass_c = get_cam_idx(bins%comps(m)%source_mass_c, bins%comps(m)%camname_mass_c, routine) - endif ! allocate memory for species nspec = bins%comps(m)%nspec @@ -2162,7 +2134,7 @@ subroutine parse_bin_defs(nl_in, bins) do iend = len_trim(nl_in(mcur)) if (nl_in(mcur)(iend-1:iend) /= ':+') exit - if (nl_in(mcur)(iend-4:iend) /= 'mmr:+') nspec = nspec + 1 + nspec = nspec + 1 mcur = mcur + 1 end do @@ -2191,10 +2163,6 @@ subroutine parse_bin_defs(nl_in, bins) bins%comps(m)%camname_num_a = ' ' bins%comps(m)%source_num_c = ' ' bins%comps(m)%camname_num_c = ' ' - bins%comps(m)%source_mass_a = 'NOTSET' - bins%comps(m)%camname_mass_a = 'NOTSET' - bins%comps(m)%source_mass_c = 'NOTSET' - bins%comps(m)%camname_mass_c = 'NOTSET' do ispec = 1, nspec bins%comps(m)%source_mmr_a(ispec) = ' ' bins%comps(m)%camname_mmr_a(ispec) = ' ' @@ -2274,18 +2242,6 @@ subroutine parse_bin_defs(nl_in, bins) bins%comps(m)%camname_num_c = tmp_name_c tmpstr = tmpstr(ipos+1:) - else if (tmpstr(:ipos-1) == 'mmr') then - - ! there can only be one number mixing ratio component - if (mass_mr_found) call parse_error('more than 1 mass mixing ratio component', nl_in(mcur)) - - mass_mr_found = .true. - bins%comps(m)%source_mass_a = tmp_src_a - bins%comps(m)%camname_mass_a = tmp_name_a - bins%comps(m)%source_mass_c = tmp_src_c - bins%comps(m)%camname_mass_c = tmp_name_c - tmpstr = tmpstr(ipos+1:) - else ! check for valid species type @@ -2338,7 +2294,6 @@ subroutine parse_bin_defs(nl_in, bins) tmpstr = nl_in(mcur) end do comps_loop - ! check that a number component was found if (.not. num_mr_found) call parse_error('number component not found', nl_in(mbeg)) @@ -2793,71 +2748,6 @@ end subroutine rad_cnst_get_carma_mmr_idx !================================================================================================ -subroutine rad_cnst_get_bin_mmr(list_idx, bin_idx, phase, state, pbuf, mmr) - - ! Return pointer to mass mixing ratio for the aerosol bin from the specified - ! climate or diagnostic list. - - ! Arguments - integer, intent(in) :: list_idx ! index of the climate or a diagnostic list - integer, intent(in) :: bin_idx ! bin index - character(len=1), intent(in) :: phase ! 'a' for interstitial, 'c' for cloud borne - type(physics_state), target, intent(in) :: state - type(physics_buffer_desc), pointer :: pbuf(:) - real(r8), pointer :: mmr(:,:) - - ! Local variables - integer :: m_idx - integer :: idx - integer :: lchnk - character(len=1) :: source - type(binlist_t), pointer :: slist - character(len=*), parameter :: subname = 'rad_cnst_get_bin_mmr' - !----------------------------------------------------------------------------- - - if (list_idx >= 0 .and. list_idx <= N_DIAG) then - slist => sa_list(list_idx) - else - write(iulog,*) subname//': list_idx =', list_idx - call endrun(subname//': list_idx out of bounds') - endif - - ! Check for valid bin index - if (bin_idx < 1 .or. bin_idx > slist%nbins) then - write(iulog,*) subname//': bin_idx= ', bin_idx, ' nbins= ', slist%nbins - call endrun(subname//': bin list index out of range') - end if - - ! Get the index for the corresponding bin in the bin definition object - m_idx = slist%idx(bin_idx) - - ! Get data source - if (phase == 'a') then - source = bins%comps(m_idx)%source_mass_a - idx = bins%comps(m_idx)%idx_mass_a - else if (phase == 'c') then - source = bins%comps(m_idx)%source_mass_c - idx = bins%comps(m_idx)%idx_mass_c - else - write(iulog,*) subname//': phase= ', phase - call endrun(subname//': unrecognized phase; must be "a" or "c"') - end if - - lchnk = state%lchnk - - select case( source ) - case ('A') - mmr => state%q(:,:,idx) - case ('N') - call pbuf_get_field(pbuf, idx, mmr) - case ('Z') - mmr => zero_cols - end select - -end subroutine rad_cnst_get_bin_mmr - -!================================================================================================ - subroutine rad_cnst_get_mode_num(list_idx, mode_idx, phase, state, pbuf, num) ! Return pointer to number mixing ratio for the aerosol mode from the specified @@ -3035,53 +2925,6 @@ end subroutine rad_cnst_get_mode_num_idx !================================================================================================ -subroutine rad_cnst_get_bin_num_idx(bin_idx, cnst_idx) - - ! Return constituent index of bin number mixing ratio for the aerosol bin in - ! the climate list. - - ! This is a special routine to allow direct access to information in the - ! constituent array inside physics parameterizations that have been passed, - ! and are operating over the entire constituent array. The interstitial phase - ! is assumed since that's what is contained in the constituent array. - - ! Arguments - integer, intent(in) :: bin_idx ! bin index - integer, intent(out) :: cnst_idx ! constituent index - - ! Local variables - integer :: b_idx - character(len=1) :: source - type(binlist_t), pointer :: slist - character(len=*), parameter :: subname = 'rad_cnst_get_bin_num_idx' - !----------------------------------------------------------------------------- - - ! assume climate list - slist => sa_list(0) - - ! Check for valid bin index - if (bin_idx < 1 .or. bin_idx > slist%nbins) then - write(iulog,*) subname//': bin_idx= ', bin_idx, ' nbins= ', slist%nbins - call endrun(subname//': bin list index out of range') - end if - - ! Get the index for the corresponding bin in the bin definition object - b_idx = slist%idx(bin_idx) - - ! Check that source is 'A' which means the index is for the constituent array - source = bins%comps(b_idx)%source_num_a - if (source /= 'A') then - write(iulog,*) subname//': source= ', source - call endrun(subname//': requested bin number index not in constituent array') - end if - - ! Return index in constituent array - cnst_idx = bins%comps(b_idx)%idx_num_a - -end subroutine rad_cnst_get_bin_num_idx - -!================================================================================================ - integer function rad_cnst_get_aer_idx(list_idx, aer_name) ! Return the index of aerosol aer_name in the list specified by list_idx. diff --git a/src/physics/carma/cam/carma_intr.F90 b/src/physics/carma/cam/carma_intr.F90 index 9461c57322..a2d4c7d650 100644 --- a/src/physics/carma/cam/carma_intr.F90 +++ b/src/physics/carma/cam/carma_intr.F90 @@ -146,7 +146,7 @@ module carma_intr ! Defaults not in the namelist character(len=10), parameter :: carma_mixtype = 'wet' ! mixing ratio type for CARMA constituents - integer :: LUNOPRT = -1 ! lun for output + integer :: LUNOPRT = 6 ! lun for output ! Constituent Mappings integer :: icnst4elem(NELEM, NBIN) ! constituent index for a carma element @@ -296,7 +296,6 @@ subroutine carma_register ! Create the CARMA object that will contain all the information about the ! how CARMA is configured. - call CARMA_Create(carma, NBIN, NELEM, NGROUP, NSOLUTE, NGAS, NWAVE, rc, & LUNOPRT=LUNOPRT, wave=wave, dwave=dwave, do_wave_emit=do_wave_emit, NREFIDX=NREFIDX) if (rc < 0) call endrun('carma_register::CARMA_Create failed.') @@ -3728,7 +3727,7 @@ subroutine carma_get_bin(state, ielem, ibin, mmr, rc) ncol = state%ncol ! Check the group and bin ranges - if ((ielem < 1) .or. (ielem .gt. NGROUP)) then + if ((ielem < 1) .or. (ielem .gt. NELEM)) then write(LUNOPRT, *) 'carma_get_bin:: ERROR - Invalid element id, ', ielem rc = RC_ERROR return @@ -3977,7 +3976,7 @@ subroutine carma_get_kappa(state, igroup, ibin, kappa, rc) type(physics_state), intent(in) :: state !! physics state variables integer, intent(in) :: igroup !! group index integer, intent(in) :: ibin !! bin index - real(r8), intent(out) :: kappa(pcols,pver) !! kappa value for the entire particle + real(r8), intent(out) :: kappa(:,:) !! kappa value for the entire particle integer, intent(out) :: rc !! return code real(r8) :: totmmr(pcols,pver) ! total mmr (kg/kg) @@ -4027,8 +4026,8 @@ subroutine carma_get_kappa(state, igroup, ibin, kappa, rc) end do ! Figure out the average kappa.q - where (totmmr .gt. 0._r8) - kappa = kappa / totmmr + where (totmmr(:ncol,:) .gt. 0._r8) + kappa(:ncol,:) = kappa(:ncol,:) / totmmr(:ncol,:) end where return @@ -4424,4 +4423,15 @@ subroutine carma_get_bin_rmass(igroup, ibin, mass, rc) end subroutine carma_get_bin_rmass +!!$ subroutine carma_get_wtpct +!!$ +!!$ real(r8) :: mmr_gas(pver) !! gas mass mixing ratio (kg/kg) +!!$ +!!$ do igas = 1,NGAS +!!$ if(igas .eq. I_GAS_H2SO4)then ! only output the sulfate weight percent +!!$ call CARMASTATE_GetGas(cstate, igas, mmr_gas(:), rc, wtpct=wtpct) +!!$ end if +!!$ end do +!!$ +!!$ end subroutine carma_get_wtpct end module carma_intr diff --git a/src/physics/carma/models/trop_strat_soa1/carma_model_mod.F90 b/src/physics/carma/models/trop_strat_soa1/carma_model_mod.F90 index 4d69d1279f..ad8967f688 100644 --- a/src/physics/carma/models/trop_strat_soa1/carma_model_mod.F90 +++ b/src/physics/carma/models/trop_strat_soa1/carma_model_mod.F90 @@ -391,6 +391,7 @@ subroutine CARMAMODEL_DefineModel(carma, rc) ! sulfate mass and number density for each bin ! e.g. CRSULF01 first element mass mixing ratio; NBMXAER01 #/kg do ibin=1,NBIN + write (outputbin, "(I2.2)") ibin if (igroup==I_GRP_MXAER) then call pbuf_add_field("DQDT_MXSOA"//outputbin,'global',dtype_r8,(/pcols,pver/), ipbuf4soa(ibin)) call pbuf_add_field("MXSOA"//outputbin//"CM",'physpkg',dtype_r8,(/pcols,pver/), ipbuf4soacm(ibin)) diff --git a/src/physics/carma/models/trop_strat_soa5/carma_model_mod.F90 b/src/physics/carma/models/trop_strat_soa5/carma_model_mod.F90 index 4b74d7f2c5..101b696087 100644 --- a/src/physics/carma/models/trop_strat_soa5/carma_model_mod.F90 +++ b/src/physics/carma/models/trop_strat_soa5/carma_model_mod.F90 @@ -427,6 +427,7 @@ subroutine CARMAMODEL_DefineModel(carma, rc) ! sulfate mass and number density for each bin ! e.g. CRSULF01 first element mass mixing ratio; NBMXAER01 #/kg do ibin=1,NBIN + write (outputbin, "(I2.2)") ibin if (igroup==I_GRP_MXAER) then call pbuf_add_field("DQDT_MXSOA1"//outputbin,'global',dtype_r8,(/pcols,pver/), ipbuf4soa1(ibin)) call pbuf_add_field("DQDT_MXSOA2"//outputbin,'global',dtype_r8,(/pcols,pver/), ipbuf4soa2(ibin))