With grib2 input data, text in the variable mapping files is used to generate tracer arrays. When the GSD (i.e., Thompson) file is used, it creates arrays for liq_aero and ice_aero when all other tracer arrays are created, and then they're filled with data from the input file (e.g., HRRR) or a fill value. However, if the user wishes to use this same variable mapping file, but also wishes to generate aerosols using the new Thompson generation code (e.g., with GFS grib2 data which doesn't have these arrays), the Thompson code attempt to generate these arrays again which would cause the model to crash. The solutions, as I see them, are to either write in a check in the aerosol generation code that checks to see if the fields have already been created in ESMF, or create a new variable mapping file that includes entries for all Thompson tracers except the aerosols.
With grib2 input data, text in the variable mapping files is used to generate tracer arrays. When the GSD (i.e., Thompson) file is used, it creates arrays for liq_aero and ice_aero when all other tracer arrays are created, and then they're filled with data from the input file (e.g., HRRR) or a fill value. However, if the user wishes to use this same variable mapping file, but also wishes to generate aerosols using the new Thompson generation code (e.g., with GFS grib2 data which doesn't have these arrays), the Thompson code attempt to generate these arrays again which would cause the model to crash. The solutions, as I see them, are to either write in a check in the aerosol generation code that checks to see if the fields have already been created in ESMF, or create a new variable mapping file that includes entries for all Thompson tracers except the aerosols.