Skip to content

Commit

Permalink
Removing legacy code and cleaning up logic for real processing of aer…
Browse files Browse the repository at this point in the history
…osol for mp_physics=28 (#1567)

TYPE: enhancement

KEYWORDS: real, Thompson aerosol-aware, microphysics

SOURCE: Timothy W. Juliano and Pedro A. Jimenez (NCAR/RAL)

DESCRIPTION OF CHANGES:
Problem:
Several modifications have been made to the Thompson Aerosol-Aware scheme (mp_physics=28) in an effort to clean the logic in dyn_em/module_initialize_real and enable more flexibility when pre-processing first guess aerosol fields (e.g., GEOS-5). These modifications are made in preparation for upcoming enhancements to the Thompson AA scheme related to the addition of black carbon aerosol (anthropogenic and biomass burning) and organic carbon biomass burning aerosol, as well as time-varying surface emissions.

Solution:
1. Processing of aerosol in real.exe contained legacy code. Specifically, the monthly qnwfa and qnifa variables (qn?fa_jan, qn?fa_feb, etc.) have been removed from Registry files and dyn_em/module_initialize_real.

2. Modifications have been made to the METGRID.TBL file to simplify the subsequent logic in the real program's dyn_em/module_initialize_real. Specifically, we: 
   * replace FLAG_QNWFA and FLAG_QNIFA with FLAG_QNWFA_CL and FLAG_QNIFA_CL, respectively, in the W_WIF_DEC and I_WIF_DEC entries, where “CL” stands for climatology; 
   * add FLAG_QNWFA and FLAG_QNIFA to the QNWFA and QNIFA entries, respectively, for the first guess aerosol arrays;
   * add entry P_WIF to give the user the option to interpolate the first guess aerosol using the native pressure levels of the host model;
   * use num_wif_levels for any z dimension associated with the aerosol field entries (climatology or first guess);
   * add surface aerosol emission arrays QNWFA2D and QNIFA2D to be processed.

The modifications to METGRID.TBL are as follows: 
```
========================================
name=W_WIF_DEC
z_dim_name=num_wif_levels
interp_option=four_pt+average_4pt
flag_in_output=FLAG_QNWFA_CL
========================================
name=I_WIF_DEC
z_dim_name=num_wif_levels
interp_option=four_pt+average_4pt
flag_in_output=FLAG_QNIFA_CL
========================================
name=QNWFA
z_dim_name=num_wif_levels
interp_option=four_pt+average_4pt
flag_in_output=FLAG_QNWFA
========================================
name=QNIFA
z_dim_name=num_wif_levels
interp_option=four_pt+average_4pt
flag_in_output=FLAG_QNIFA
========================================
name=P_WIF
z_dim_name=num_wif_levels
interp_option=four_pt+average_4pt
flag_in_output=FLAG_P_WIF
========================================
name=QNWFA2D
interp_option=four_pt+average_4pt
flag_in_output=FLAG_QNWFA2D
========================================
name=QNIFA2D
interp_option=four_pt+average_4pt
flag_in_output=FLAG_QNIFA2D
========================================
```

3. At present, if the user sets use_aero_icbc=.true. and does not set num_wif_levels to 30, then the code executes without error, even though the climatological aerosols will not be processed properly. Therefore, we have changed the default value of num_wif_levels from 27 to 30 to prevent unintended errors when the user forgets to set this value in the namelist. We note that with our code modifications, namelist variable num_wif_levels will be used to control both climatology and first guess aerosol processing in dyn_em/module_initialize_real.

4. We have added a new (surrogate) variable, aer_init_opt (integer, default=0), that facilitates much cleaner logic in dyn_em/module_initialize_real while “working in the background” and maintaining backward-compatibility such that namelist options use_aero_icbc and use_rap_aero_icbc may be used in the same manner as before. First, in 
share/module_check_a_mundo, we check if the user has selected Thompson AA and either use_aero_icbc (aer_init_opt=1) or use_rap_aero_icbc (aer_init_opt=2). Here, we also ensure that if aer_init_opt>0, then wif_input_opt=1. Now, in dyn_em/module_initialize_real, we are able to simplify the logic of processing aerosol fields by using select case on aer_init_opt for both the 3D and 2D (surface emissions) aerosol processing.

5. For the 3D aerosol processing, here is the new workflow. When the user selects use_aero_icbc=.true. (i.e., aer_init_opt=1) for climatology aerosol forcing, we interpolate the aerosol fields to the WRF grid pressure levels as before. No changes have been made to the interpolation routine for use_aero_icbc. However, when the user selects use_rap_aero_icbc=.true. (i.e., aer_init_opt=2) for first guess aerosol forcing, we allow for two possibilities: 
   * the user has pre-processed the first guess aerosol such that they are located at the native pressure levels of the host model. In this case, the user will process pressure variable p_wif during metgrid, and flag_p_wif=1, as defined in the modified METGTRID.TBL file, will be written to the met_em files. In dyn_em/module_initialize_real, we check for flag_p_wif=1 and subsequently interpolate the aerosol fields to the WRF grid pressure levels. At this stage, we do not have a way to check to ensure that the user-defined num_wif_levels in the namelist is equal to num_wif_levels written to the met_em files. For now, the best we can do is write a comment to the rsl.out files. 
   * the user has pre-processed the first guess aerosol such that they are interpolated to the ungrib pressure levels. In this case, the user will set num_wif_levels in the namelist equal to num_metgrid_levels; otherwise, a fatal error will occur.

6. For the 2D aerosol processing, here is the new workflow. When the user selects use_aero_icbc=.true. (i.e., aer_init_opt=1) for climatology aerosol forcing, the surface water-friendly and ice-friendly emissions are processed as before. No changes have been made to these routines. However, when the user selects use_rap_aero_icbc=.true. (i.e., aer_init_opt=2) for first guess aerosol forcing, we check for the surface emission flags for water- and ice-friendly and process if they are there; otherwise, the arrays are set to zero.

LIST OF MODIFIED FILES:
M Registry/Registry.EM
M Registry/Registry.EM_CHEM
M Registry/Registry.EM_COMMON
M Registry/Registry.tladj
M Registry/registry.new3d_wif
M dyn_em/module_initialize_real.F
M share/module_check_a_mundo.F
M share/module_optional_input.F

TESTS CONDUCTED:
1. We have tested the logic to ensure that it catches any issues related to namelist options and flags in met_em files. Also, we have tested to make sure that the 3D aerosol fields interpolated to the WRF grid are nearly identical when using either method for aerosol first guess (i.e., interpolating using the native pressure levels of the host model versus the pre-processed aerosol on metgrid levels).
2. Jenkins tests are all PASSING

RELEASE NOTE: Code enhancements are introduced to the processing of aerosol information in real.exe for the Thompson Aerosol-Aware microphysics scheme; specifically, legacy code is removed and logic in the real program is improved.
  • Loading branch information
twjuliano authored Dec 17, 2021
1 parent 81d7a9a commit 61a1359
Showing 8 changed files with 436 additions and 402 deletions.
2 changes: 1 addition & 1 deletion Registry/Registry.EM
Original file line number Diff line number Diff line change
@@ -43,6 +43,6 @@ package tracer_test1 tracer_opt==2 - tracer:tr17_1,tr17_2,t

package restofwrf use_wps_input==0 - -

package realonly use_wps_input==1 - state:u_gc,v_gc,t_gc,rh_gc,ght_gc,p_gc,xlat_gc,xlong_gc,ht_gc,tsk_gc,tavgsfc,tmn_gc,pslv_gc,sct_dom_gc,scb_dom_gc,greenfrac,albedo12m,lai12m,pd_gc,psfc_gc,intq_gc,pdhs,sh_gc,cl_gc,cf_gc,qv_gc,qr_gc,qc_gc,qs_gc,qi_gc,qg_gc,qh_gc,qni_gc,qnc_gc,icefrac_gc,prho_gc,pdrho_gc,qnr_gc,qns_gc,qng_gc,qnh_gc,soil_layers,soil_levels,st,sm,sw,soilt,soilm,sm000007,sm007028,sm028100,sm100255,st000007,st007028,st028100,st100255,sm000010,sm010040,sm040100,sm100200,sm010200,soilm000,soilm005,soilm020,soilm040,soilm160,soilm300,sw000010,sw010040,sw040100,sw100200,sw010200,soilw000,soilw005,soilw020,soilw040,soilw160,soilw300,st000010,st010040,st040100,st100200,st010200,soilt000,soilt005,soilt020,soilt040,soilt160,soilt300,qnwfa_gc,qnwfa_now,qnwfa_jan,qnwfa_feb,qnwfa_mar,qnwfa_apr,qnwfa_may,qnwfa_jun,qnwfa_jul,qnwfa_aug,qnwfa_sep,qnwfa_oct,qnwfa_nov,qnwfa_dec,qnifa_gc,qnifa_now,qnifa_jan,qnifa_feb,qnifa_mar,qnifa_apr,qnifa_may,qnifa_jun,qnifa_jul,qnifa_aug,qnifa_sep,qnifa_oct,qnifa_nov,qnifa_dec,qntemp,qntemp2,hgtmaxw,pmaxw,tmaxw,umaxw,vmaxw,hgttrop,ptrop,ttrop,utrop,vtrop,urb_param
package realonly use_wps_input==1 - state:u_gc,v_gc,t_gc,rh_gc,ght_gc,p_gc,xlat_gc,xlong_gc,ht_gc,tsk_gc,tavgsfc,tmn_gc,pslv_gc,sct_dom_gc,scb_dom_gc,greenfrac,albedo12m,lai12m,pd_gc,psfc_gc,intq_gc,pdhs,sh_gc,cl_gc,cf_gc,qv_gc,qr_gc,qc_gc,qs_gc,qi_gc,qg_gc,qh_gc,qni_gc,qnc_gc,icefrac_gc,prho_gc,pdrho_gc,qnr_gc,qns_gc,qng_gc,qnh_gc,soil_layers,soil_levels,st,sm,sw,soilt,soilm,sm000007,sm007028,sm028100,sm100255,st000007,st007028,st028100,st100255,sm000010,sm010040,sm040100,sm100200,sm010200,soilm000,soilm005,soilm020,soilm040,soilm160,soilm300,sw000010,sw010040,sw040100,sw100200,sw010200,soilw000,soilw005,soilw020,soilw040,soilw160,soilw300,st000010,st010040,st040100,st100200,st010200,soilt000,soilt005,soilt020,soilt040,soilt160,soilt300,qntemp,qntemp2,hgtmaxw,pmaxw,tmaxw,umaxw,vmaxw,hgttrop,ptrop,ttrop,utrop,vtrop,urb_param

package tconly use_wps_input==2 - state:u_gc,v_gc,t_gc,rh_gc,ght_gc,p_gc,xlat_gc,xlong_gc,ht_gc,tsk_gc,tavgsfc,tmn_gc,pslv_gc,sct_dom_gc,scb_dom_gc,greenfrac,albedo12m,pd_gc,psfc_gc,intq_gc,pdhs,sh_gc,qv_gc,qr_gc,qc_gc,qs_gc,qi_gc,qg_gc,qh_gc,qni_gc,qnc_gc,qnr_gc,qns_gc,qng_gc,qnh_gc,icefrac_gc
2 changes: 1 addition & 1 deletion Registry/Registry.EM_CHEM
Original file line number Diff line number Diff line change
@@ -18,6 +18,6 @@ state real SST_INPUT ij misc 1 - rh "SST_IN

package restofwrf use_wps_input==0 - -

package realonly use_wps_input==1 - state:u_gc,v_gc,t_gc,rh_gc,ght_gc,p_gc,xlat_gc,xlong_gc,ht_gc,tsk_gc,tavgsfc,tmn_gc,pslv_gc,sct_dom_gc,scb_dom_gc,greenfrac,albedo12m,lai12m,pd_gc,psfc_gc,intq_gc,pdhs,sh_gc,cl_gc,cf_gc,qv_gc,qr_gc,qc_gc,qs_gc,qi_gc,qg_gc,qh_gc,qni_gc,qnc_gc,icefrac_gc,prho_gc,pdrho_gc,qnr_gc,qns_gc,qng_gc,qnh_gc,soil_layers,soil_levels,st,sm,sw,soilt,soilm,sm000007,sm007028,sm028100,sm100255,st000007,st007028,st028100,st100255,sm000010,sm010040,sm040100,sm100200,sm010200,soilm000,soilm005,soilm020,soilm040,soilm160,soilm300,sw000010,sw010040,sw040100,sw100200,sw010200,soilw000,soilw005,soilw020,soilw040,soilw160,soilw300,st000010,st010040,st040100,st100200,st010200,soilt000,soilt005,soilt020,soilt040,soilt160,soilt300,fad0_urb2d,fad135_urb2d,fad45_urb2d,pad_urb2d,fad90_urb2d,rad_urb2d,car_urb2d,h2w_urb2d,svf_urb2d,z0s_urb2d,z0r_urb2d,z0m_urb2d,zds_urb2d,zdm_urb2d,zdr_urb2d,qnwfa_gc,qnwfa_now,qnwfa_jan,qnwfa_feb,qnwfa_mar,qnwfa_apr,qnwfa_may,qnwfa_jun,qnwfa_jul,qnwfa_aug,qnwfa_sep,qnwfa_oct,qnwfa_nov,qnwfa_dec,qnifa_gc,qnifa_now,qnifa_jan,qnifa_feb,qnifa_mar,qnifa_apr,qnifa_may,qnifa_jun,qnifa_jul,qnifa_aug,qnifa_sep,qnifa_oct,qnifa_nov,qnifa_dec,qntemp,qntemp2,hgtmaxw,pmaxw,tmaxw,umaxw,vmaxw,hgttrop,ptrop,ttrop,utrop,vtrop,urb_param
package realonly use_wps_input==1 - state:u_gc,v_gc,t_gc,rh_gc,ght_gc,p_gc,xlat_gc,xlong_gc,ht_gc,tsk_gc,tavgsfc,tmn_gc,pslv_gc,sct_dom_gc,scb_dom_gc,greenfrac,albedo12m,lai12m,pd_gc,psfc_gc,intq_gc,pdhs,sh_gc,cl_gc,cf_gc,qv_gc,qr_gc,qc_gc,qs_gc,qi_gc,qg_gc,qh_gc,qni_gc,qnc_gc,icefrac_gc,prho_gc,pdrho_gc,qnr_gc,qns_gc,qng_gc,qnh_gc,soil_layers,soil_levels,st,sm,sw,soilt,soilm,sm000007,sm007028,sm028100,sm100255,st000007,st007028,st028100,st100255,sm000010,sm010040,sm040100,sm100200,sm010200,soilm000,soilm005,soilm020,soilm040,soilm160,soilm300,sw000010,sw010040,sw040100,sw100200,sw010200,soilw000,soilw005,soilw020,soilw040,soilw160,soilw300,st000010,st010040,st040100,st100200,st010200,soilt000,soilt005,soilt020,soilt040,soilt160,soilt300,fad0_urb2d,fad135_urb2d,fad45_urb2d,pad_urb2d,fad90_urb2d,rad_urb2d,car_urb2d,h2w_urb2d,svf_urb2d,z0s_urb2d,z0r_urb2d,z0m_urb2d,zds_urb2d,zdm_urb2d,zdr_urb2d,qntemp,qntemp2,hgtmaxw,pmaxw,tmaxw,umaxw,vmaxw,hgttrop,ptrop,ttrop,utrop,vtrop,urb_param

package tconly use_wps_input==2 - state:u_gc,v_gc,t_gc,rh_gc,ght_gc,p_gc,xlat_gc,xlong_gc,ht_gc,tsk_gc,tavgsfc,tmn_gc,pslv_gc,sct_dom_gc,scb_dom_gc,greenfrac,albedo12m,pd_gc,psfc_gc,intq_gc,pdhs,sh_gc,qv_gc,qr_gc,qc_gc,qs_gc,qi_gc,qg_gc,qh_gc,qni_gc,qnc_gc,qnr_gc,qns_gc,qng_gc,qnh_gc,icefrac_gc
29 changes: 1 addition & 28 deletions Registry/Registry.EM_COMMON
Original file line number Diff line number Diff line change
@@ -122,34 +122,6 @@ state real qnr_gc igj dyn_em 1 Z i1 "QNR" "
state real qns_gc igj dyn_em 1 Z i1 "QNS" "snow num concentration" "# kg-1"
state real qng_gc igj dyn_em 1 Z i1 "QNG" "graupel num concentration" "# kg-1"
state real qnh_gc igj dyn_em 1 Z i1 "QNH" "hail num concentration" "# kg-1"
state real qnwfa_gc igj dyn_em 1 Z i1 "QNWFA" "water-friendly aerosol num concentration" "# kg-1"
state real qnifa_gc igj dyn_em 1 Z i1 "QNIFA" "water-friendly aerosol num concentration" "# kg-1"
state real qnwfa_now igj dyn_em 1 Z - "QNWFA_NOW" "num water-friendly aerosol Now" "# kg-1"
state real qnwfa_jan igj dyn_em 1 Z i1 "QNWFA_JAN" "num water-friendly aerosol Jan" "# kg-1"
state real qnwfa_feb igj dyn_em 1 Z i1 "QNWFA_FEB" "num water-friendly aerosol Feb" "# kg-1"
state real qnwfa_mar igj dyn_em 1 Z i1 "QNWFA_MAR" "num water-friendly aerosol Mar" "# kg-1"
state real qnwfa_apr igj dyn_em 1 Z i1 "QNWFA_APR" "num water-friendly aerosol Apr" "# kg-1"
state real qnwfa_may igj dyn_em 1 Z i1 "QNWFA_MAY" "num water-friendly aerosol May" "# kg-1"
state real qnwfa_jun igj dyn_em 1 Z i1 "QNWFA_JUN" "num water-friendly aerosol Jun" "# kg-1"
state real qnwfa_jul igj dyn_em 1 Z i1 "QNWFA_JUL" "num water-friendly aerosol Jul" "# kg-1"
state real qnwfa_aug igj dyn_em 1 Z i1 "QNWFA_AUG" "num water-friendly aerosol Aug" "# kg-1"
state real qnwfa_sep igj dyn_em 1 Z i1 "QNWFA_SEP" "num water-friendly aerosol Sep" "# kg-1"
state real qnwfa_oct igj dyn_em 1 Z i1 "QNWFA_OCT" "num water-friendly aerosol Oct" "# kg-1"
state real qnwfa_nov igj dyn_em 1 Z i1 "QNWFA_NOV" "num water-friendly aerosol Nov" "# kg-1"
state real qnwfa_dec igj dyn_em 1 Z i1 "QNWFA_DEC" "num water-friendly aerosol Dec" "# kg-1"
state real qnifa_now igj dyn_em 1 Z - "QNIFA_NOW" "num ice-friendly aerosol Now" "# kg-1"
state real qnifa_jan igj dyn_em 1 Z i1 "QNIFA_JAN" "num ice-friendly aerosol Jan" "# kg-1"
state real qnifa_feb igj dyn_em 1 Z i1 "QNIFA_FEB" "num ice-friendly aerosol Feb" "# kg-1"
state real qnifa_mar igj dyn_em 1 Z i1 "QNIFA_MAR" "num ice-friendly aerosol Mar" "# kg-1"
state real qnifa_apr igj dyn_em 1 Z i1 "QNIFA_APR" "num ice-friendly aerosol Apr" "# kg-1"
state real qnifa_may igj dyn_em 1 Z i1 "QNIFA_MAY" "num ice-friendly aerosol May" "# kg-1"
state real qnifa_jun igj dyn_em 1 Z i1 "QNIFA_JUN" "num ice-friendly aerosol Jun" "# kg-1"
state real qnifa_jul igj dyn_em 1 Z i1 "QNIFA_JUL" "num ice-friendly aerosol Jul" "# kg-1"
state real qnifa_aug igj dyn_em 1 Z i1 "QNIFA_AUG" "num ice-friendly aerosol Aug" "# kg-1"
state real qnifa_sep igj dyn_em 1 Z i1 "QNIFA_SEP" "num ice-friendly aerosol Sep" "# kg-1"
state real qnifa_oct igj dyn_em 1 Z i1 "QNIFA_OCT" "num ice-friendly aerosol Oct" "# kg-1"
state real qnifa_nov igj dyn_em 1 Z i1 "QNIFA_NOV" "num ice-friendly aerosol Nov" "# kg-1"
state real qnifa_dec igj dyn_em 1 Z i1 "QNIFA_DEC" "num ice-friendly aerosol Dec" "# kg-1"
state real qntemp imj dyn_em 1 Z - "QNTEMP" "temporary var for time interp" ""
state real qntemp2 ij dyn_em 1 - - "QNTEMP2" "temporary var2D for time interp" ""
state real t_max_p ij dyn_em 1 - i0d "T_MAX_P" "temperature at max pressure" "K"
@@ -2620,6 +2592,7 @@ rconfig integer scalar_pblmix namelist,physics max_domains 0
rconfig integer tracer_pblmix namelist,physics max_domains 1 h "mix 4d tracer variables with pbl scheme 0=no 1=yes" ""
rconfig logical use_aero_icbc namelist,physics 1 .false. rh "use_aero_icbc" "Use GOCART climo 3D aerosols IC/BC data in Thompson-MP-Aero" "logical flag"
rconfig logical use_rap_aero_icbc namelist,physics 1 .false. r "use_rap_aero_icbc" "Use GOCART climo 3D aerosols IC/BC data in Thompson-MP-Aero from RAP" "logical flag"
rconfig integer aer_init_opt derived 1 0 irh "aer_init_opt" "surrogate to handle aerosol IC/BC data in Thompson-MP-Aero: 0=no IC/BC aerosol, 1=climo, 2=first guess"
rconfig integer use_mp_re namelist,physics 1 1 h "use_mp_re" "use effective radii computed in some mp schemes in RRTMG" "flag"
rconfig logical insert_init_cloud namelist,physics 1 .false. irh "insert_init_cloud" "Insert diagnostic initial cloud using icloud=3 method (Thompson)" "logical flag"

2 changes: 1 addition & 1 deletion Registry/Registry.tladj
Original file line number Diff line number Diff line change
@@ -44,6 +44,6 @@ package tracer_test1 tracer_opt==2 - tracer:tr17_1,tr17_2,t

package restofwrf use_wps_input==0 - -

package realonly use_wps_input==1 - state:u_gc,v_gc,t_gc,rh_gc,ght_gc,p_gc,xlat_gc,xlong_gc,ht_gc,tsk_gc,tavgsfc,tmn_gc,pslv_gc,sct_dom_gc,scb_dom_gc,greenfrac,albedo12m,lai12m,pd_gc,psfc_gc,intq_gc,pdhs,sh_gc,cl_gc,cf_gc,qv_gc,qr_gc,qc_gc,qs_gc,qi_gc,qg_gc,qh_gc,qni_gc,qnc_gc,icefrac_gc,prho_gc,pdrho_gc,qnr_gc,qns_gc,qng_gc,qnh_gc,soil_layers,soil_levels,st,sm,sw,soilt,soilm,sm000007,sm007028,sm028100,sm100255,st000007,st007028,st028100,st100255,sm000010,sm010040,sm040100,sm100200,sm010200,soilm000,soilm005,soilm020,soilm040,soilm160,soilm300,sw000010,sw010040,sw040100,sw100200,sw010200,soilw000,soilw005,soilw020,soilw040,soilw160,soilw300,st000010,st010040,st040100,st100200,st010200,soilt000,soilt005,soilt020,soilt040,soilt160,soilt300,fad0_urb2d,fad135_urb2d,fad45_urb2d,pad_urb2d,fad90_urb2d,rad_urb2d,car_urb2d,h2w_urb2d,svf_urb2d,z0s_urb2d,z0r_urb2d,z0m_urb2d,zds_urb2d,zdm_urb2d,zdr_urb2d,qnwfa_gc,qnwfa_now,qnwfa_jan,qnwfa_feb,qnwfa_mar,qnwfa_apr,qnwfa_may,qnwfa_jun,qnwfa_jul,qnwfa_aug,qnwfa_sep,qnwfa_oct,qnwfa_nov,qnwfa_dec,qnifa_gc,qnifa_now,qnifa_jan,qnifa_feb,qnifa_mar,qnifa_apr,qnifa_may,qnifa_jun,qnifa_jul,qnifa_aug,qnifa_sep,qnifa_oct,qnifa_nov,qnifa_dec,qntemp,qntemp2,hgtmaxw,pmaxw,tmaxw,umaxw,vmaxw,hgttrop,ptrop,ttrop,utrop,vtrop,urb_param
package realonly use_wps_input==1 - state:u_gc,v_gc,t_gc,rh_gc,ght_gc,p_gc,xlat_gc,xlong_gc,ht_gc,tsk_gc,tavgsfc,tmn_gc,pslv_gc,sct_dom_gc,scb_dom_gc,greenfrac,albedo12m,lai12m,pd_gc,psfc_gc,intq_gc,pdhs,sh_gc,cl_gc,cf_gc,qv_gc,qr_gc,qc_gc,qs_gc,qi_gc,qg_gc,qh_gc,qni_gc,qnc_gc,icefrac_gc,prho_gc,pdrho_gc,qnr_gc,qns_gc,qng_gc,qnh_gc,soil_layers,soil_levels,st,sm,sw,soilt,soilm,sm000007,sm007028,sm028100,sm100255,st000007,st007028,st028100,st100255,sm000010,sm010040,sm040100,sm100200,sm010200,soilm000,soilm005,soilm020,soilm040,soilm160,soilm300,sw000010,sw010040,sw040100,sw100200,sw010200,soilw000,soilw005,soilw020,soilw040,soilw160,soilw300,st000010,st010040,st040100,st100200,st010200,soilt000,soilt005,soilt020,soilt040,soilt160,soilt300,fad0_urb2d,fad135_urb2d,fad45_urb2d,pad_urb2d,fad90_urb2d,rad_urb2d,car_urb2d,h2w_urb2d,svf_urb2d,z0s_urb2d,z0r_urb2d,z0m_urb2d,zds_urb2d,zdm_urb2d,zdr_urb2d,qntemp,qntemp2,hgtmaxw,pmaxw,tmaxw,umaxw,vmaxw,hgttrop,ptrop,ttrop,utrop,vtrop,urb_param

package tconly use_wps_input==2 - state:u_gc,v_gc,t_gc,rh_gc,ght_gc,p_gc,xlat_gc,xlong_gc,ht_gc,tsk_gc,tavgsfc,tmn_gc,pslv_gc,sct_dom_gc,scb_dom_gc,greenfrac,albedo12m,pd_gc,psfc_gc,intq_gc,pdhs,sh_gc,qv_gc,qr_gc,qc_gc,qs_gc,qi_gc,qg_gc,qh_gc,qni_gc,qnc_gc,qnr_gc,qns_gc,qng_gc,qnh_gc,icefrac_gc
10 changes: 7 additions & 3 deletions Registry/registry.new3d_wif
Original file line number Diff line number Diff line change
@@ -13,8 +13,12 @@

dimspec wif 2 namelist=num_wif_levels z num_wif_levels

rconfig integer num_wif_levels namelist,domains 1 27 irh "num_wif_levels" "number of levels in the Thompson Water Ice Friendly Aerosols" ""
rconfig integer wif_input_opt namelist,domains 1 0 irh "wif_input_opt" "0=do not process the Water Ice Friendly Aerosol input from metgrid"
rconfig integer num_wif_levels namelist,domains 1 30 irh "num_wif_levels" "number of levels in the Thompson Water Ice Friendly Aerosols" ""
rconfig integer wif_input_opt namelist,domains 1 1 irh "wif_input_opt" "0=do not process the Water Ice Friendly Aerosol input from metgrid"

state real qnwfa_gc i{wif}j dyn_em 1 Z i1 "QNWFA" "water-friendly aerosol num concentration" "# kg-1"
state real qnifa_gc i{wif}j dyn_em 1 Z i1 "QNIFA" "water-friendly aerosol num concentration" "# kg-1"
state real p_wif_gc i{wif}j dyn_em 1 Z i1 "P_WIF" "Pressure for first guess aerosol fields from metgrid" "Pa"

state real p_wif_now i{wif}j dyn_em 1 Z - "P_WIF_NOW" "Pressure for Water Ice Friendly Aerosols Now" "Pa"
state real p_wif_jan i{wif}j dyn_em 1 Z i1 "P_WIF_JAN" "Pressure for Water Ice Friendly Aerosols Jan" "Pa"
@@ -58,7 +62,7 @@ state real i_wif_oct i{wif}j dyn_em 1 Z i1
state real i_wif_nov i{wif}j dyn_em 1 Z i1 "I_WIF_NOV" "Background Ice Friendly Aerosol option Nov" "# kg-1"
state real i_wif_dec i{wif}j dyn_em 1 Z i1 "I_WIF_DEC" "Background Ice Friendly Aerosol option Dec" "# kg-1"

package use_wif_input wif_input_opt==1 - state:p_wif_now,p_wif_jan,p_wif_feb,p_wif_mar,p_wif_apr,p_wif_may,p_wif_jun,p_wif_jul,p_wif_aug,p_wif_sep,p_wif_oct,p_wif_nov,p_wif_dec,w_wif_now,w_wif_jan,w_wif_feb,w_wif_mar,w_wif_apr,w_wif_may,w_wif_jun,w_wif_jul,w_wif_aug,w_wif_sep,w_wif_oct,w_wif_nov,w_wif_dec,i_wif_now,i_wif_jan,i_wif_feb,i_wif_mar,i_wif_apr,i_wif_may,i_wif_jun,i_wif_jul,i_wif_aug,i_wif_sep,i_wif_oct,i_wif_nov,i_wif_dec
package use_wif_input wif_input_opt==1 - state:p_wif_gc,p_wif_now,p_wif_jan,p_wif_feb,p_wif_mar,p_wif_apr,p_wif_may,p_wif_jun,p_wif_jul,p_wif_aug,p_wif_sep,p_wif_oct,p_wif_nov,p_wif_dec,qnwfa_gc,w_wif_now,w_wif_jan,w_wif_feb,w_wif_mar,w_wif_apr,w_wif_may,w_wif_jun,w_wif_jul,w_wif_aug,w_wif_sep,w_wif_oct,w_wif_nov,w_wif_dec,qnifa_gc,i_wif_now,i_wif_jan,i_wif_feb,i_wif_mar,i_wif_apr,i_wif_may,i_wif_jun,i_wif_jul,i_wif_aug,i_wif_sep,i_wif_oct,i_wif_nov,i_wif_dec

state real qnwfa ikjftb scalar 1 - \
i0rhusdf=(bdy_interp:dt) "QNWFA" "water-friendly aerosol number con" "# kg(-1)"
Loading

0 comments on commit 61a1359

Please sign in to comment.