diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..6633699b7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+*.mod
+*.i90
+*.o
+
+depend
+driver/fvGFS/*.inc
+libfv3core.a
diff --git a/model/fv_arrays.F90 b/model/fv_arrays.F90
index 24b74043e..f6c4bd744 100644
--- a/model/fv_arrays.F90
+++ b/model/fv_arrays.F90
@@ -109,7 +109,7 @@ module fv_arrays_mod
logical :: initialized = .false.
real sphum, liq_wat, ice_wat ! GFDL physics
- real rainwat, snowwat, graupel
+ real rainwat, snowwat, graupel, hailwat
real :: efx(max_step), efx_sum, efx_nest(max_step), efx_sum_nest, mtq(max_step), mtq_sum
integer :: steps
diff --git a/model/fv_dynamics.F90 b/model/fv_dynamics.F90
index 5561559ff..a7b7edb47 100644
--- a/model/fv_dynamics.F90
+++ b/model/fv_dynamics.F90
@@ -96,6 +96,10 @@ module fv_dynamics_mod
!
-!
-! Module Name |
-! Functions Included |
-!
-!
-! constants_mod |
-! pi=>pi_8, omega, grav, kappa, rdgas, rvgas, cp_air |
-!
-!
-! external_sst_mod |
-! i_sst, j_sst, sst_ncep |
-!
-!
-! field_manager_mod |
-! MODEL_ATMOS |
-!
-!
-! fms_mod |
-! file_exist, read_data, field_exist, write_version_number,
-! open_namelist_file, check_nml_error, close_file,
-! get_mosaic_tile_file, read_data, error_mesg |
-!
-!
-! fms_io_mod |
-! get_tile_string, field_size, free_restart_type,
-! restart_file_type, register_restart_field,
-! save_restart, restore_state |
-!
-!
-! fv_arrays_mod |
-! fv_atmos_type, fv_grid_type, fv_grid_bounds_type, R_GRID |
-!
-!
-! fv_control_mod |
-! fv_init, fv_end, ngrids |
-!
-!
-! fv_diagnostics_mod |
-! prt_maxmin, prt_gb_nh_sh, prt_height |
-!
-!
-! fv_eta_mod |
-! set_eta, set_external_eta |
-!
-!
-! fv_fill_mod |
-! fillz |
-!
-!
-! fv_grid_utils_mod |
-! ptop_min, g_sum,mid_pt_sphere,get_unit_vect2,
-! get_latlon_vector,inner_prod |
-!
-!
-! fv_io_mod |
-! fv_io_read_tracers |
-!
-!
-! fv_mp_mod |
-! ng, is_master, fill_corners, YDir, mp_reduce_min, mp_reduce_max |
-!
-!
-! fv_mapz_mod |
-! mappm |
-!
-!
-! fv_nwp_nudge_mod |
-! T_is_Tv |
-!
-!
-! fv_surf_map_mod |
-! surfdrv, FV3_zs_filter,sgh_g, oro_g,del2_cubed_sphere, del4_cubed_sphere |
-!
-!
-! fv_timing_mod |
-! timing_on, timing_off |
-!
-!
-! fv_update_phys_mod |
-! fv_update_phys |
-!
-!
-! init_hydro_mod |
-! p_var |
-!
-!
-! mpp_mod |
-! mpp_error, FATAL, NOTE, mpp_pe, mpp_root_pe,stdlog, input_nml_file |
-!
-!
-! mpp_domains_mod |
-! mpp_get_tile_id, domain2d, mpp_update_domains, NORTH, EAST |
-!
-!
-! mpp_parameter_mod |
-! AGRID_PARAM=>AGRID |
-!
-!
-! sim_nc_mod |
-! open_ncfile, close_ncfile, get_ncdim1, get_var1_double, get_var2_real,
-! get_var3_r4, get_var2_r4, get_var1_real, get_var_att_double |
-!
-!
-! tracer_manager_mod |
-! get_tracer_names, get_number_tracers, get_tracer_index, set_tracer_profile |
-!
-!
-! test_cases_mod |
-! checker_tracers |
-!
-!
-
- use netcdf
- use external_sst_mod, only: i_sst, j_sst, sst_ncep
- use fms_mod, only: file_exist, read_data, field_exist, write_version_number
- use fms_mod, only: open_namelist_file, check_nml_error, close_file
- use fms_mod, only: get_mosaic_tile_file, error_mesg
- use fms_io_mod, only: get_tile_string, field_size, free_restart_type
- use fms_io_mod, only: restart_file_type, register_restart_field
- use fms_io_mod, only: save_restart, restore_state, set_filename_appendix, get_global_att_value
- use mpp_mod, only: mpp_error, FATAL, NOTE, mpp_pe, mpp_root_pe
- use mpp_mod, only: stdlog, input_nml_file
- use mpp_parameter_mod, only: AGRID_PARAM=>AGRID
- use mpp_domains_mod, only: mpp_get_tile_id, domain2d, mpp_update_domains, NORTH, EAST
- use tracer_manager_mod, only: get_tracer_names, get_number_tracers, get_tracer_index
- use tracer_manager_mod, only: set_tracer_profile
- use field_manager_mod, only: MODEL_ATMOS
-
- use constants_mod, only: pi=>pi_8, omega, grav, kappa, rdgas, rvgas, cp_air
- use fv_arrays_mod, only: fv_atmos_type, fv_grid_type, fv_grid_bounds_type, R_GRID
- use fv_diagnostics_mod,only: prt_maxmin, prt_gb_nh_sh, prt_height
- use fv_grid_utils_mod, only: ptop_min, g_sum,mid_pt_sphere,get_unit_vect2,get_latlon_vector,inner_prod
- use fv_io_mod, only: fv_io_read_tracers
- use fv_mapz_mod, only: mappm
-
- use fv_regional_mod, only: dump_field, H_STAGGER, U_STAGGER, V_STAGGER, get_data_source
- use fv_mp_mod, only: is_master, fill_corners, YDir, mp_reduce_min, mp_reduce_max
- use fv_regional_mod, only: start_regional_cold_start
- use fv_surf_map_mod, only: surfdrv, FV3_zs_filter
- use fv_surf_map_mod, only: sgh_g, oro_g
- use fv_surf_map_mod, only: del2_cubed_sphere, del4_cubed_sphere
- use fv_timing_mod, only: timing_on, timing_off
- use init_hydro_mod, only: p_var
- use fv_fill_mod, only: fillz
- use fv_eta_mod, only: set_eta, set_external_eta
- use sim_nc_mod, only: open_ncfile, close_ncfile, get_ncdim1, get_var1_double, get_var2_real, &
- get_var3_r4, get_var2_r4, get_var1_real, get_var_att_double
- use fv_nwp_nudge_mod, only: T_is_Tv
- use test_cases_mod, only: checker_tracers
-
-! The "T" field in NCEP analysis is actually virtual temperature (Larry H. post processing)
-! BEFORE 20051201
-
- use boundary_mod, only: nested_grid_BC, extrapolation_BC
- use mpp_domains_mod, only: mpp_get_data_domain, mpp_get_global_domain, mpp_get_compute_domain
-
-#ifdef MULTI_GASES
- use multi_gases_mod, only: virq, virqd, vicpqd
-#endif
-
- implicit none
- private
-
- real, parameter:: zvir = rvgas/rdgas - 1.
- real(kind=R_GRID), parameter :: cnst_0p20=0.20d0
- real, parameter :: deg2rad = pi/180.
- character (len = 80),public :: source ! This tells what the input source was for the data
- character(len=27), parameter :: source_fv3gfs = 'FV3GFS GAUSSIAN NEMSIO FILE'
- public get_external_ic, get_cubed_sphere_terrain
- public remap_scalar, remap_dwinds
-
-! version number of this module
-! Include variable "version" to be written to log file.
-#include