Contacts: Isaac Held, Tom Knutson, Mike Spelman, Tony Broccoli, Ron Stouffer, Peter Phillipps
Mimics the behavior of the GFDL Manabe climate model, also known as the "supersource" climate model.
The following are the namelist settings necessary to invoke the Manabe Climate Model. &spectral_dynamics_nml damping_option = 'resolution_indepenent', damping_order = 2, damping_coeff = 1.e16, do_mass_correction =.true., do_energy_correction =.true., do_water_correction =.true., vert_advect_uv = 'second_centered', vert_advect_t = 'second_centered', use_virtual_temperature =.false., use_implicit =.true., longitude_origin = 0.0, robert_coeff = .04, alpha_implicit = .5, vert_difference_option = 'mcm', reference_sea_level_press=101325., lon_max = 96, lat_max = 80, num_levels = 14, num_fourier = 30 num_spherical = 31, fourier_inc = 1, triang_trunc =.false., grid_temperature =.false., topography_option = 'input', vert_coord_option = 'mcm' / &atmosphere_nml do_mcm_moist_processes=.true. / &transforms_nml check_fourier_imag=.true. / &mcm_mca_lsc_nml use_mixing_ratio = .true. / &ice_model_nml spec_ice = .true., heat_rough_ice = 3.5e-4, mom_rough_ice = 3.5e-4, alb_sno = 0.80, alb_ice = 0.65 / &ocean_rough_nml roughness_mom = 3.5e-4, roughness_heat = 3.5e-4, roughness_moist = 3.5e-4 / &ocean_albedo_nml ocean_albedo_option = 2 / &surface_flux_nml no_neg_q = .true., use_virtual_temp = .false., alt_gustiness = .true., use_mixing_ratio = .true. / &diag_integral_nml file_name = 'diag_integral.out', time_units = 'days', output_interval = 1.0 / &diffusivity_nml fixed_depth = .true., depth_0 = 4900.0, frac_inner = .015306122449, pbl_mcm = .true. / &rh_clouds_nml tuning_coeff_low_cld = 0.937, do_mcm_no_clouds_top = .true., do_mcm_crit_rh = .true. / &dry_adj_nml itermax = 20, small = 0.01, do_mcm_dry_adj = .true. / &rad_utilities_nml peripherals_source='fms', application_type='gcm' / &radiation_driver_nml rad_time_step=86400, zenith_spec='daily_mean', rad_package = 'original_fms', do_clear_sky_pass=.true., use_mixing_ratio=.true. / &original_fms_rad_nml do_mcm_radiation = .true. / &radiative_gases_nml ch4_data_source = 'absent', n2o_data_source = 'absent', f11_data_source = 'absent', f12_data_source = 'absent', f113_data_source = 'absent', f22_data_source = 'absent', co2_data_source = 'input' / &physics_driver_nml do_moist_process = .false. / &vert_diff_driver_nml do_conserve_energy = .true., do_mcm_no_neg_q = .true., use_virtual_temp_vert_diff = .false., do_mcm_plev = .true., do_mcm_vert_diff_tq = .true. / &clouds_nml do_isccp_cloud_diags = .true. / &vert_turb_driver_nml do_mellor_yamada = .false., do_diffusivity = .true. / &monin_obukhov_nml neutral = .true. / &ozone_nml do_mcm_o3_clim= .true. / &damping_driver_nml do_conserve_energy = .true., trayfric = -20., do_mg_drag = .true. / &mg_drag_nml xl_mtn = 45454.545, low_lev_frac = 0.15, do_conserve_energy = .true., do_mcm_mg_drag = .true. / &soil_nml n_levels = 1, dz = 0.001 / &land_properties_nml do_all_mcm = .true. /
Execute lhe following commands in the work directory to get the input data files needed for the Manabe Climate Model: /home/fms/bin/get_fms_data -r havana ggrpsst lad oldrad mcm cp /archive/fms/grids/exchange/havana/R30_MCM.nc INPUT/grid_spec.nc Specify co2 concentration in an ascii file named INPUT/id1co2 For example: echo "3.6e-4" > INPUT/id1co2 Because water vapor is now a tracer, it must be specified in the field_table. The field_table needed to do this is as follows: "TRACER", "atmos_mod", "mix_rat" "longname", "mixing ratio" "units", "kg/kg" "numerical_representation", "spectral" "hole_filling", "on" "advect_vert", "FOURTH_CENTERED" /
The following files have been modified for the Manabe Climate Model: atmos_param/diffusivity/diffusivity.f90 atmos_param/dry_adj/dry_adj.f90 atmos_param/fsrad/fsrad.f90 atmos_param/sea_esf_rad/original_fms_rad.f90 atmos_param/sea_esf_rad/rad_utilities.f90 atmos_param/mg_drag/mg_drag.f90 atmos_param/physics_driver/physics_driver.f90 atmos_param/radiation_driver/radiation_driver.f90 atmos_param/rh_clouds/rh_clouds.f90 atmos_param/clouds/clouds.f90 atmos_param/vert_diff/vert_diff.f90 atmos_param/vert_diff_driver/vert_diff_driver.f90 atmos_param/vert_turb_driver/vert_turb_driver.f90 atmos_param/sea_esf_rad/ozone.f90 atmos_spectral/driver/coupled/atmosphere.f90 atmos_spectral/driver/diagnostics/spectral_diagnostics.f90 atmos_spectral/model/implicit.f90 atmos_spectral/model/leapfrog.f90 atmos_spectral/model/press_and_geopot.f90 atmos_spectral/model/spectral_dynamics.f90 ice_param/ocean_albedo.f90 ice_sis/ice_spec.f90 ice_sis/ice_grid.f90 ice_sis/ice_model.f90 land_lad/land_properties.f90 land_param/climap_albedo.f90 coupler/surface_flux.f90 The following are new files added for the Manabe Climate Model: atmos_param/fsrad/mcm_lw.f90 atmos_param/fsrad/mcm_sw_driver.f90 atmos_param/fsrad/mcm_swnew.f atmos_param/fsrad/mcm_swtabl0.h atmos_param/fsrad/mcm_swtbls.F atmos_spectral/driver/coupled/mcm_mca_lsc.f atmos_spectral/driver/coupled/mcm_moist_processes.f90 --------------------------------------------------------------------- diffusivity.f90 One new namelist variable: pbl_mcm p_full, p_half added to arguments of subroutine diffusivity and passed through to subroutine diffusivity_pbl_mcm where they used in the computation of Manabe Climate Model diffusivities. --------------------------------------------------------------------- dry_adj.f90 Added two new namelist variables: small and do_mcm_dry_adj. --------------------------------------------------------------------- fsrad.f90 phalf and do_mcm_radiation added to the calling arguments of subroutine fsrad. When do_mcm_radiation=.true. mcm_shortwave_driver and mcm_lw_rad are called instead of swrad and lwrad. phalf is passed through to mcm_shortwave_driver and mcm_lw_rad. --------------------------------------------------------------------- mg_drag.f90 One new namelist variable: do_mcm_mg_drag The bulk of the code comprising subroutine mg_drag is contained within an if block controlled by this namelist switch. --------------------------------------------------------------------- physics_driver.f90 One new namelist variable: do_mcm_moist_process p_full added to calling arguments of vert_diff_driver_down. When do_mcm_moist_process=.true., moist_processes is not called. Instead, mcm_moist_processes is called from subroutine atmosphere_up. --------------------------------------------------------------------- radiation_driver.f90 One new namelist variable: use_mixing_ratio phalf passed to radiation_calc and passed though to subroutine original_fms_rad. Fixed a bug where unallocated arrays were attempted to be deallocated. When use_mixing_ratio=.true., q is interpreted as mixing ration instead of specific humidity. --------------------------------------------------------------------- original_fms_rad.f90 One new namelist variable: do_mcm_radiation do_mcm_radiation is passed to fsrad. Subroutines mcm_lw_init and mcm_shortwave_driver_init are called when do_mcm_radiation=.true. phalf added to calling arguments of subroutine original_fms_rad. It is passed through to fsrad. --------------------------------------------------------------------- rh_clouds.f90 Three variables added to namelist: tuning_coeff_low_cld, do_mcm_no_clouds_top and do_mcm_crit_rh. All three control various Manabe Climate Model behaviors. --------------------------------------------------------------------- clouds.f90 One variable added to namelist: do_isccp_cloud_diag --------------------------------------------------------------------- vert_diff_driver.f90 Four variables added to namelist: do_mcm_no_neg_q, use_virtual_temp_vert_diff, do_mcm_plev, do_mcm_vert_diff_tq. All four control various Manabe Climate Model behaviors. p_full added to calling arguments of subroutine vert_diff_driver_down. --------------------------------------------------------------------- vert_diff.f90 Added use_virtual_temp_vert_diff and do_mcm_plev to calling arguments of subroutine gcm_vert_diff_init. Added p_full to calling arguments of subroutine gcm_vert_diff_down. It is passes down to compute_nu where it is needed in the computation of Manabe Climate Model vertical diffusion. --------------------------------------------------------------------- vert_turb_driver.f90 p_full and p_half added to the calling arguments of subroutine diffusivity --------------------------------------------------------------------- ozone.f90 Given a namelist with just one variable: do_mcm_o3_clim When do_mcm_o3_clim = .true., alternative values of phaf are used. --------------------------------------------------------------------- rad_utilities.f90 phalf added to components of atmos_input_type. It is used in ozone.f90 to compute alternative values of phaf. --------------------------------------------------------------------- atmosphere.f90 Subroutines mcm_moist_processes and complete_leapfrog_tq are called when do_mcm_moist_processes=.true. --------------------------------------------------------------------- spectral_diagnostics.f90 Sea level pressure added to diagnostic fields. --------------------------------------------------------------------- implicit.f90 vert_difference_option is passed to subroutine initialize_implicit. --------------------------------------------------------------------- leapfrog.f90 Added subroutines leapfrog_2level_A and leapfrog_2level_B. These are called when both do_mcm_time_step_tq and do_mcm_moist_process are .true. --------------------------------------------------------------------- press_and_geopot.f90 vert_difference_option is passed to subroutine press_and_geopot_init. --------------------------------------------------------------------- spectral_dynamics.f90 Added do_mcm_time_step_tq and vert_difference_option to namelist. vert_difference_option is passed to subroutine press_and_geopot_init. vert_difference_option controls the way vertical velocity is computed in subroutine four_in_one. Added subroutine complete_leapfrog_tq Uses subroutines leapfrog_2level_A and leapfrog_2level_B from leapfrog_mod and calls then when both do_mcm_time_step_tq and do_mcm_moist_process are .true. --------------------------------------------------------------------- ocean_albedo.f90 ocean_albedo option added for MCM albedos. Manabe Climate Model ocean albedos put in a data statement. Added optional arguments for ocean mask and latitudes to ocean_albedo_init compute_ocean_albedo. These are used to compute ocean albedos. --------------------------------------------------------------------- ice_spec.f90 Adjustment factor of 1.06 applied to sea ice thickness. This change was made in response to the needs of MCM, but it effects all models, not just MCM. (This has been OK'ed by Mike Winton) --------------------------------------------------------------------- ice_grid.f90 Publishes latitude, which is used by ice_model_mod --------------------------------------------------------------------- ice_model.f90 Used latitude from ice_grid_mod and passes it to compute_ocean_albedo --------------------------------------------------------------------- land_properties.f90 do_mcm_masking added to namelist. When .true. get_climap_glacier_ss and get_climap_albedo_ss are called. Changed the name of a namelist variable: Changed use_ssl to do_all_mcm --------------------------------------------------------------------- climap_albedo.f90 Added two new public subroutines: get_climap_albedo_ss and get_climap_glacier_ss. They are used by land_properties_mod --------------------------------------------------------------------- surface_flux.f90 Added one new namelist variable: use_mixing_ratio --------------------------------------------------------------------- mcm_lw.f90 A module containing Manabe Climate Model longwave radiation code. Contains interfaces used by radiation_driver_mod and fsrad_mod. --------------------------------------------------------------------- mcm_sw_driver.f90 A module containing Manabe Climate Model shortwave radiation code. Contains interfaces used by radiation_driver_mod and fsrad_mod. --------------------------------------------------------------------- mcm_swnew.f Not a FORTRAN 90 module, but contains a subroutine used in mcm_sw_driver_mod. --------------------------------------------------------------------- mcm_swtabl0.h An include file included by mcm_swnew.f and mcm_swtbls.F It contains a FORTAN 77 style common block. The arrays of this common block are assigned by the block data code of mcm_swtbls.F --------------------------------------------------------------------- mcm_swtbls.F This file contains a FORTAN 77 style block data construct. --------------------------------------------------------------------- mcm_mca_lsc.f Added a namelist with one variable: use_mixing_ratio Contains a driver for Manabe Climate Model MCA and large-scale condensation. Used by mcm_moist_processes_mod. --------------------------------------------------------------------- mcm_moist_processes.f90 Contains a driver for Manabe Climate Model moist convective adjustment. Used by atmosphere_mod ---------------------------------------------------------------------
KNOWN BUGS
Does not run when num_subwindows is not equal to one. num_subwindows is a variable in spectral_dynamics_nml. The default value is one.