From 4c9809a54b5b6afc1cf11f772359bd031ed8f2c4 Mon Sep 17 00:00:00 2001 From: Nicole Jeffery Date: Wed, 9 Nov 2022 10:41:26 -0600 Subject: [PATCH 1/6] Adds the ISPOL 1D testcase Atmospheric, ocean and biogeochemical data from the 2004 Ice Station Polarstern (ISPOL) Weddell Sea (67.9S, 54W) from June 16, 2004 to December 31, 2004. BFB in all other test cases --- .../ispol_bgc_single_cell/namelist.seaice | 514 ++++++++++++++++++ .../ispol_bgc_single_cell/streams.seaice | 351 ++++++++++++ testcases/single_cell_ispol/README | 22 + testcases/single_cell_ispol/job_script.sh | 24 + testcases/single_cell_ispol/plot_testcase.py | 168 ++++++ .../plot_testcase_forcing.py | 226 ++++++++ testcases/single_cell_ispol/run_testcase.py | 34 ++ 7 files changed, 1339 insertions(+) create mode 100644 configurations/ispol_bgc_single_cell/namelist.seaice create mode 100644 configurations/ispol_bgc_single_cell/streams.seaice create mode 100644 testcases/single_cell_ispol/README create mode 100755 testcases/single_cell_ispol/job_script.sh create mode 100644 testcases/single_cell_ispol/plot_testcase.py create mode 100644 testcases/single_cell_ispol/plot_testcase_forcing.py create mode 100644 testcases/single_cell_ispol/run_testcase.py diff --git a/configurations/ispol_bgc_single_cell/namelist.seaice b/configurations/ispol_bgc_single_cell/namelist.seaice new file mode 100644 index 0000000..8d2c3f2 --- /dev/null +++ b/configurations/ispol_bgc_single_cell/namelist.seaice @@ -0,0 +1,514 @@ +&seaice_model + config_dt = 3600.0 + config_calendar_type = 'noleap' + config_start_time = '2004-06-01_00:00:00' + config_stop_time = 'none' + config_run_duration = '01-00-00_00:00:00' + config_num_halos = 2 +/ +&io + config_pio_num_iotasks = 0 + config_pio_stride = 1 + config_write_output_on_startup = false + config_test_case_diag = false + config_test_case_diag_type = 'none' + config_full_abort_write = true +/ +&decomposition + config_block_decomp_file_prefix = 'graphs/graph.info.part.' + config_number_of_blocks = 0 + config_explicit_proc_decomp = false + config_proc_decomp_file_prefix = 'graphs/graph.info.part.' + config_use_halo_exch = true + config_aggregate_halo_exch = false + config_reuse_halo_exch = false + config_load_balance_timers = false +/ +&restart + config_do_restart = false + config_restart_timestamp_name = 'restart_timestamp' + config_do_restart_hbrine = false + config_do_restart_zsalinity = false + config_do_restart_bgc = false + config_do_restart_snow_density = false + config_do_restart_snow_grain_radius = false +/ +&dimensions + config_nCategories = 5 + config_nIceLayers = 7 + config_nSnowLayers = 5 +/ +&initialize + config_earth_radius = 6371229.0 + config_initial_condition_type = 'uniform_1D' + config_initial_ice_area = 1.0 + config_initial_ice_volume = 0.001 + config_initial_snow_volume = 0.0 + config_initial_latitude_north = 70.0 + config_initial_latitude_south = -60.0 + config_initial_velocity_type = 'uniform' + config_initial_uvelocity = 0.0 + config_initial_vvelocity = 0.0 + config_calculate_coriolis = true +/ +&use_sections + config_use_dynamics = true + config_use_velocity_solver = false + config_use_advection = false + config_use_forcing = true + config_use_column_package = true + config_use_prescribed_ice = false + config_use_prescribed_ice_forcing = false +/ +&forcing + config_atmospheric_forcing_type = 'ISPOL' + config_forcing_start_time = '2004-06-01_00:00:00' + config_forcing_cycle_start = '2004-01-01_00:00:00' + config_forcing_cycle_duration = '01-00-00_00:00:00' + config_forcing_precipitation_units = 'mm_per_sec' + config_forcing_sst_type = 'ISPOL' + config_update_ocean_fluxes = false + config_include_pond_freshwater_feedback = false +/ +&testing + config_use_test_ice_shelf = false + config_testing_system_test = false +/ +&velocity_solver + config_dynamics_subcycle_number = 1 + config_rotate_cartesian_grid = true + config_include_metric_terms = true + config_elastic_subcycle_number = 120 + config_strain_scheme = 'variational' + config_constitutive_relation_type = 'evp' + config_stress_divergence_scheme = 'variational' + config_variational_basis = 'wachspress' + config_variational_denominator_type = 'original' + config_wachspress_integration_type = 'dunavant' + config_wachspress_integration_order = 8 + config_average_variational_strain = false + config_calc_velocity_masks = true + config_use_air_stress = true + config_use_ocean_stress = true + config_use_surface_tilt = true + config_geostrophic_surface_tilt = true + config_ocean_stress_type = 'quadratic' + config_use_special_boundaries_velocity = false + config_use_special_boundaries_velocity_masks = false +/ +&advection + config_advection_type = 'incremental_remap' + config_monotonic = true + config_conservation_check = false + config_monotonicity_check = false + config_recover_tracer_means_check = false +/ +&column_package + config_use_column_shortwave = true + config_use_column_vertical_thermodynamics = true + config_use_column_biogeochemistry = true + config_use_column_itd_thermodynamics = true + config_use_column_ridging = true + config_use_column_snow_tracers = false +/ +&column_tracers + config_use_ice_age = true + config_use_first_year_ice = true + config_use_level_ice = true + config_use_cesm_meltponds = false + config_use_level_meltponds = true + config_use_topo_meltponds = false + config_use_aerosols = false + config_use_effective_snow_density = false + config_use_snow_grain_radius = false + config_use_special_boundaries_tracers = false +/ +&biogeochemistry + config_use_brine = true + config_use_vertical_zsalinity = false + config_use_vertical_biochemistry = true + config_use_shortwave_bioabsorption = false + config_use_vertical_tracers = true + config_use_skeletal_biochemistry = false + config_use_nitrate = true + config_use_carbon = true + config_use_chlorophyll = false + config_use_ammonium = true + config_use_silicate = true + config_use_DMS = false + config_use_nonreactive = false + config_use_humics = true + config_use_DON = true + config_use_iron = true + config_use_macromolecules = false + config_use_modal_aerosols = false + config_use_zaerosols = false + config_skeletal_bgc_flux_type = 'Jin2006' + config_scale_initial_vertical_bgc = false + config_biogrid_bottom_molecular_sublayer = 0.006 + config_biogrid_top_molecular_sublayer = 0.006 + config_bio_gravity_drainage_length_scale = 20.0 + config_zsalinity_molecular_sublayer = 0.0 + config_zsalinity_gravity_drainage_scale = 0.028 + config_snow_porosity_at_ice_surface = -0.3 + config_new_ice_fraction_biotracer = 1.0 + config_fraction_biotracer_in_frazil = 0.80 + config_ratio_Si_to_N_diatoms = 1.80 + config_ratio_Si_to_N_small_plankton = 0.00 + config_ratio_Si_to_N_phaeocystis = 0.00 + config_ratio_S_to_N_diatoms = 0.03 + config_ratio_S_to_N_small_plankton = 0.03 + config_ratio_S_to_N_phaeocystis = 0.03 + config_ratio_Fe_to_C_diatoms = 0.0033 + config_ratio_Fe_to_C_small_plankton = 0.0033 + config_ratio_Fe_to_C_phaeocystis = 0.1 + config_ratio_Fe_to_N_diatoms = 0.023 + config_ratio_Fe_to_N_small_plankton = 0.023 + config_ratio_Fe_to_N_phaeocystis = 0.7 + config_ratio_Fe_to_DON = 0.023 + config_ratio_Fe_to_DOC_saccharids = 0.1 + config_ratio_Fe_to_DOC_lipids = 0.033 + config_respiration_fraction_of_growth = 0.05 + config_rapid_mobile_to_stationary_time = 3600.0 + config_long_mobile_to_stationary_time = 7776000.0 + config_algal_maximum_velocity = 0.0000001 + config_ratio_Fe_to_dust = 0.035 + config_solubility_of_Fe_in_dust = 0.005 + config_chla_absorptivity_of_diatoms = 0.03 + config_chla_absorptivity_of_small_plankton = 0.01 + config_chla_absorptivity_of_phaeocystis = 0.05 + config_light_attenuation_diatoms = 0.3 + config_light_attenuation_small_plankton = 0.2 + config_light_attenuation_phaeocystis = 0.17 + config_light_inhibition_diatoms = 0.001 + config_light_inhibition_small_plankton = 0.001 + config_light_inhibition_phaeocystis = 0.04 + config_maximum_growth_rate_diatoms = 1.44 + config_maximum_growth_rate_small_plankton = 0.41 + config_maximum_growth_rate_phaeocystis = 0.63 + config_temperature_growth_diatoms = 0.063 + config_temperature_growth_small_plankton = 0.063 + config_temperature_growth_phaeocystis = 0.063 + config_grazed_fraction_diatoms = 0.19 + config_grazed_fraction_small_plankton = 0.19 + config_grazed_fraction_phaeocystis = 0.19 + config_mortality_diatoms = 0.007 + config_mortality_small_plankton = 0.007 + config_mortality_phaeocystis = 0.007 + config_temperature_mortality_diatoms = 0.03 + config_temperature_mortality_small_plankton = 0.03 + config_temperature_mortality_phaeocystis = 0.03 + config_exudation_diatoms = 0.0 + config_exudation_small_plankton = 0.0 + config_exudation_phaeocystis = 0.0 + config_nitrate_saturation_diatoms = 1.0 + config_nitrate_saturation_small_plankton = 1.0 + config_nitrate_saturation_phaeocystis = 1.0 + config_ammonium_saturation_diatoms = 0.3 + config_ammonium_saturation_small_plankton = 0.3 + config_ammonium_saturation_phaeocystis = 0.3 + config_silicate_saturation_diatoms = 4.0 + config_silicate_saturation_small_plankton = 0.0 + config_silicate_saturation_phaeocystis = 0.0 + config_iron_saturation_diatoms = 1.0 + config_iron_saturation_small_plankton = 0.2 + config_iron_saturation_phaeocystis = 0.1 + config_fraction_spilled_to_DON = 0.6 + config_degredation_of_DON = 0.2 + config_fraction_DON_ammonium = 1.0 + config_fraction_loss_to_saccharids = 0.5 + config_fraction_loss_to_lipids = 0.5 + config_fraction_exudation_to_saccharids = 1.0 + config_fraction_exudation_to_lipids = 1.0 + config_remineralization_saccharids = 0.03 + config_remineralization_lipids = 0.03 + config_maximum_brine_temperature = 0.0 + config_salinity_dependence_of_growth = 1.0 + config_minimum_optical_depth = 0.1 + config_slopped_grazing_fraction = 0.5 + config_excreted_fraction = 0.5 + config_fraction_mortality_to_ammonium = 0.9 + config_fraction_iron_remineralized = 1.0 + config_nitrification_rate = 0.046 + config_desorption_loss_particulate_iron = 3065.0 + config_maximum_loss_fraction = 0.9 + config_maximum_ratio_iron_to_saccharids = 0.2 + config_respiration_loss_to_DMSPd = 0.75 + config_DMSP_to_DMS_conversion_fraction = 0.7 + config_DMSP_to_DMS_conversion_time = 5.0 + config_DMS_oxidation_time = 12.0 + config_mobility_type_diatoms = 0.0 + config_mobility_type_small_plankton = 0.0 + config_mobility_type_phaeocystis = 0.0 + config_mobility_type_nitrate = -1.0 + config_mobility_type_ammonium = 0.0 + config_mobility_type_silicate = -1.0 + config_mobility_type_DMSPp = 0.5 + config_mobility_type_DMSPd = 0.0 + config_mobility_type_humics = 0.0 + config_mobility_type_saccharids = 0.0 + config_mobility_type_lipids = 0.9 + config_mobility_type_inorganic_carbon = -1.0 + config_mobility_type_proteins = 0.0 + config_mobility_type_dissolved_iron = 0.0 + config_mobility_type_particulate_iron = 0.5 + config_mobility_type_black_carbon1 = 0.0 + config_mobility_type_black_carbon2 = 0.0 + config_mobility_type_dust1 = 0.0 + config_mobility_type_dust2 = 0.0 + config_mobility_type_dust3 = 0.0 + config_mobility_type_dust4 = 0.0 + config_ratio_C_to_N_diatoms = 7.0 + config_ratio_C_to_N_small_plankton = 7.0 + config_ratio_C_to_N_phaeocystis = 7.0 + config_ratio_chla_to_N_diatoms = 2.1 + config_ratio_chla_to_N_small_plankton = 1.1 + config_ratio_chla_to_N_phaeocystis = 0.84 + config_scales_absorption_diatoms = 2.0 + config_scales_absorption_small_plankton = 4.0 + config_scales_absorption_phaeocystis = 5.0 + config_ratio_C_to_N_proteins = 5.0 +/ +&shortwave + config_shortwave_type = 'dEdd' + config_albedo_type = 'ccsm3' + config_use_snicar_ad = true + config_visible_ice_albedo = 0.78 + config_infrared_ice_albedo = 0.36 + config_visible_snow_albedo = 0.98 + config_infrared_snow_albedo = 0.70 + config_variable_albedo_thickness_limit = 0.3 + config_ice_shortwave_tuning_parameter = 0.0 + config_pond_shortwave_tuning_parameter = 0.0 + config_snow_shortwave_tuning_parameter = 1.5 + config_temp_change_snow_grain_radius_change = 1.5 + config_max_melting_snow_grain_radius = 1500.0 + config_algae_absorption_coefficient = 0.6 +/ +&snow + config_snow_redistribution_scheme = 'none' + config_fallen_snow_radius = 54.526 + config_use_snow_liquid_ponds = false + config_new_snow_density = 100.0 + config_max_snow_density = 450.0 + config_minimum_wind_compaction = 10.0 + config_wind_compaction_factor = 27.3 + config_max_dry_snow_radius = 2800.0 +/ +&meltponds + config_snow_to_ice_transition_depth = 0.0 + config_pond_refreezing_type = 'hlid' + config_pond_flushing_timescale = 1.0e-3 + config_min_meltwater_retained_fraction = 0.15 + config_max_meltwater_retained_fraction = 1.0 + config_pond_depth_to_fraction_ratio = 0.8 + config_snow_on_pond_ice_tapering_parameter = 0.03 + config_critical_pond_ice_thickness = 0.01 +/ +&thermodynamics + config_thermodynamics_type = 'mushy' + config_heat_conductivity_type = 'bubbly' + config_rapid_mode_channel_radius = 0.5e-3 + config_rapid_model_critical_Ra = 10.0 + config_rapid_mode_aspect_ratio = 1.0 + config_slow_mode_drainage_strength = -5.0e-8 + config_slow_mode_critical_porosity = 0.05 + config_congelation_ice_porosity = 0.85 +/ +&itd + config_itd_conversion_type = 'linear remap' + config_category_bounds_type = 'original' +/ +&ridging + config_ice_strength_formulation = 'Rothrock75' + config_ridging_participation_function = 'exponential' + config_ridging_redistribution_function = 'exponential' + config_ridiging_efolding_scale = 3.0 + config_ratio_ridging_work_to_PE = 17.0 +/ +&atmosphere + config_atmos_boundary_method = 'ccsm3' + config_calc_surface_stresses = true + config_calc_surface_temperature = true + config_use_form_drag = false + config_use_high_frequency_coupling = false + config_boundary_layer_iteration_number = 5 +/ +&ocean + config_use_ocean_mixed_layer = false + config_min_friction_velocity = 0.0005 + config_ocean_heat_transfer_type = 'constant' + config_sea_freezing_temperature_type = 'mushy' + config_ocean_surface_type = 'free' + config_couple_biogeochemistry_fields = false + config_use_data_icebergs = false +/ +&diagnostics + config_check_state = false +/ +&AM_highFrequencyOutput + config_AM_highFrequencyOutput_enable = false + config_AM_highFrequencyOutput_compute_interval = 'output_interval' + config_AM_highFrequencyOutput_output_stream = 'highFrequencyOutput' + config_AM_highFrequencyOutput_compute_on_startup = true + config_AM_highFrequencyOutput_write_on_startup = true +/ +&AM_temperatures + config_AM_temperatures_enable = false + config_AM_temperatures_compute_interval = 'dt' + config_AM_temperatures_output_stream = 'none' + config_AM_temperatures_compute_on_startup = false + config_AM_temperatures_write_on_startup = false +/ +&AM_regionalStatistics + config_AM_regionalStatistics_enable = false + config_AM_regionalStatistics_compute_interval = 'output_interval' + config_AM_regionalStatistics_output_stream = 'regionalStatisticsOutput' + config_AM_regionalStatistics_compute_on_startup = false + config_AM_regionalStatistics_write_on_startup = false + config_AM_regionalStatistics_ice_extent_limit = 0.15 +/ +&AM_ridgingDiagnostics + config_AM_ridgingDiagnostics_enable = false + config_AM_ridgingDiagnostics_compute_interval = 'dt' + config_AM_ridgingDiagnostics_output_stream = 'none' + config_AM_ridgingDiagnostics_compute_on_startup = false + config_AM_ridgingDiagnostics_write_on_startup = false +/ +&AM_conservationCheck + config_AM_conservationCheck_enable = false + config_AM_conservationCheck_compute_interval = 'dt' + config_AM_conservationCheck_output_stream = 'conservationCheckOutput' + config_AM_conservationCheck_compute_on_startup = false + config_AM_conservationCheck_write_on_startup = false + config_AM_conservationCheck_write_to_logfile = true + config_AM_conservationCheck_carbon_failure_abort = false +/ +&AM_geographicalVectors + config_AM_geographicalVectors_enable = false + config_AM_geographicalVectors_compute_interval = 'dt' + config_AM_geographicalVectors_output_stream = 'none' + config_AM_geographicalVectors_compute_on_startup = false + config_AM_geographicalVectors_write_on_startup = false +/ +&AM_loadBalance + config_AM_loadBalance_enable = false + config_AM_loadBalance_compute_interval = 'output_interval' + config_AM_loadBalance_output_stream = 'loadBalanceOutput' + config_AM_loadBalance_compute_on_startup = false + config_AM_loadBalance_write_on_startup = false + config_AM_loadBalance_nProcs = 32 +/ +&AM_maximumIcePresence + config_AM_maximumIcePresence_enable = false + config_AM_maximumIcePresence_compute_interval = 'dt' + config_AM_maximumIcePresence_output_stream = 'maximumIcePresenceOutput' + config_AM_maximumIcePresence_compute_on_startup = false + config_AM_maximumIcePresence_write_on_startup = false + config_AM_maximumIcePresence_start_time = '0000-00-00_00:00:00' +/ +&AM_miscellaneous + config_AM_miscellaneous_enable = false + config_AM_miscellaneous_compute_interval = 'dt' + config_AM_miscellaneous_output_stream = 'none' + config_AM_miscellaneous_compute_on_startup = false + config_AM_miscellaneous_write_on_startup = false +/ +&AM_areaVariables + config_AM_areaVariables_enable = false + config_AM_areaVariables_compute_interval = 'dt' + config_AM_areaVariables_output_stream = 'none' + config_AM_areaVariables_compute_on_startup = false + config_AM_areaVariables_write_on_startup = false +/ +&AM_pondDiagnostics + config_AM_pondDiagnostics_enable = false + config_AM_pondDiagnostics_compute_interval = 'dt' + config_AM_pondDiagnostics_output_stream = 'none' + config_AM_pondDiagnostics_compute_on_startup = false + config_AM_pondDiagnostics_write_on_startup = false +/ +&AM_unitConversion + config_AM_unitConversion_enable = true + config_AM_unitConversion_compute_interval = 'dt' + config_AM_unitConversion_output_stream = 'none' + config_AM_unitConversion_compute_on_startup = false + config_AM_unitConversion_write_on_startup = false +/ +&AM_pointwiseStats + config_AM_pointwiseStats_enable = false + config_AM_pointwiseStats_compute_interval = 'dt' + config_AM_pointwiseStats_output_stream = 'pointwiseStatsOutput' + config_AM_pointwiseStats_compute_on_startup = false + config_AM_pointwiseStats_write_on_startup = false +/ +&AM_iceShelves + config_AM_iceShelves_enable = false + config_AM_iceShelves_compute_interval = 'output_interval' + config_AM_iceShelves_output_stream = 'iceShelvesOutput' + config_AM_iceShelves_compute_on_startup = true + config_AM_iceShelves_write_on_startup = true +/ +&AM_icePresent + config_AM_icePresent_enable = false + config_AM_icePresent_compute_interval = 'dt' + config_AM_icePresent_output_stream = 'none' + config_AM_icePresent_compute_on_startup = false + config_AM_icePresent_write_on_startup = false +/ +&AM_timeSeriesStatsDaily + config_AM_timeSeriesStatsDaily_enable = false + config_AM_timeSeriesStatsDaily_compute_on_startup = false + config_AM_timeSeriesStatsDaily_write_on_startup = false + config_AM_timeSeriesStatsDaily_compute_interval = 'dt' + config_AM_timeSeriesStatsDaily_output_stream = 'timeSeriesStatsDailyOutput' + config_AM_timeSeriesStatsDaily_restart_stream = 'timeSeriesStatsDailyRestart' + config_AM_timeSeriesStatsDaily_operation = 'avg' + config_AM_timeSeriesStatsDaily_reference_times = 'initial_time' + config_AM_timeSeriesStatsDaily_duration_intervals = 'repeat_interval' + config_AM_timeSeriesStatsDaily_repeat_intervals = 'reset_interval' + config_AM_timeSeriesStatsDaily_reset_intervals = '00-00-01_00:00:00' + config_AM_timeSeriesStatsDaily_backward_output_offset = '00-00-01_00:00:00' +/ +&AM_timeSeriesStatsMonthly + config_AM_timeSeriesStatsMonthly_enable = false + config_AM_timeSeriesStatsMonthly_compute_on_startup = false + config_AM_timeSeriesStatsMonthly_write_on_startup = false + config_AM_timeSeriesStatsMonthly_compute_interval = 'dt' + config_AM_timeSeriesStatsMonthly_output_stream = 'timeSeriesStatsMonthlyOutput' + config_AM_timeSeriesStatsMonthly_restart_stream = 'timeSeriesStatsMonthlyRestart' + config_AM_timeSeriesStatsMonthly_operation = 'avg' + config_AM_timeSeriesStatsMonthly_reference_times = 'initial_time' + config_AM_timeSeriesStatsMonthly_duration_intervals = 'repeat_interval' + config_AM_timeSeriesStatsMonthly_repeat_intervals = 'reset_interval' + config_AM_timeSeriesStatsMonthly_reset_intervals = '00-01-00_00:00:00' + config_AM_timeSeriesStatsMonthly_backward_output_offset = '00-01-00_00:00:00' +/ +&AM_timeSeriesStatsClimatology + config_AM_timeSeriesStatsClimatology_enable = false + config_AM_timeSeriesStatsClimatology_compute_on_startup = false + config_AM_timeSeriesStatsClimatology_write_on_startup = false + config_AM_timeSeriesStatsClimatology_compute_interval = '00-00-00_01:00:00' + config_AM_timeSeriesStatsClimatology_output_stream = 'timeSeriesStatsClimatologyOutput' + config_AM_timeSeriesStatsClimatology_restart_stream = 'timeSeriesStatsClimatologyRestart' + config_AM_timeSeriesStatsClimatology_operation = 'avg' + config_AM_timeSeriesStatsClimatology_reference_times = '00-03-01_00:00:00;00-06-01_00:00:00;00-09-01_00:00:00;00-12-01_00:00:00' + config_AM_timeSeriesStatsClimatology_duration_intervals = '00-03-00_00:00:00;00-03-00_00:00:00;00-03-00_00:00:00;00-03-00_00:00:00' + config_AM_timeSeriesStatsClimatology_repeat_intervals = '01-00-00_00:00:00;01-00-00_00:00:00;01-00-00_00:00:00;01-00-00_00:00:00' + config_AM_timeSeriesStatsClimatology_reset_intervals = '1000-00-00_00:00:00;1000-00-00_00:00:00;1000-00-00_00:00:00;1000-00-00_00:00:00' + config_AM_timeSeriesStatsClimatology_backward_output_offset = '00-03-00_00:00:00' +/ +&AM_timeSeriesStatsCustom + config_AM_timeSeriesStatsCustom_enable = false + config_AM_timeSeriesStatsCustom_compute_on_startup = false + config_AM_timeSeriesStatsCustom_write_on_startup = false + config_AM_timeSeriesStatsCustom_compute_interval = '00-00-00_01:00:00' + config_AM_timeSeriesStatsCustom_output_stream = 'timeSeriesStatsCustomOutput' + config_AM_timeSeriesStatsCustom_restart_stream = 'timeSeriesStatsCustomRestart' + config_AM_timeSeriesStatsCustom_operation = 'avg' + config_AM_timeSeriesStatsCustom_reference_times = 'initial_time' + config_AM_timeSeriesStatsCustom_duration_intervals = 'repeat_interval' + config_AM_timeSeriesStatsCustom_repeat_intervals = 'reset_interval' + config_AM_timeSeriesStatsCustom_reset_intervals = '00-00-07_00:00:00' + config_AM_timeSeriesStatsCustom_backward_output_offset = '00-00-01_00:00:00' +/ diff --git a/configurations/ispol_bgc_single_cell/streams.seaice b/configurations/ispol_bgc_single_cell/streams.seaice new file mode 100644 index 0000000..7bf129e --- /dev/null +++ b/configurations/ispol_bgc_single_cell/streams.seaice @@ -0,0 +1,351 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testcases/single_cell_ispol/README b/testcases/single_cell_ispol/README new file mode 100644 index 0000000..7a091e3 --- /dev/null +++ b/testcases/single_cell_ispol/README @@ -0,0 +1,22 @@ +# Set DOMAINS DIRECTORY for ISPOL (67.9 S, -54.4 E) +export MPAS_SEAICE_DOMAINS_DIR="/lcrc/group/e3sm/public_html/mpas_standalonedata/mpas-seaice/domains" + +# Set location of executable +export MPAS_SEAICE_EXECUTABLE="" + +# Set location of run_testcase.py (optional) +export MPAS_SEAICE_TESTCASES_RUN_COMMAND="" + +# build the model +cd E3SM/components/mpas-seaice/ +make [options] + +# run the test case +cd E3SM/components/mpas-seaice/testing_and_setup/testcases/single_cell_ispol +python run_testcase.py + +# or the job_script.sh can also be modified and submitted +sbatch ./job_script.sh + +# examine the output plot +*.png diff --git a/testcases/single_cell_ispol/job_script.sh b/testcases/single_cell_ispol/job_script.sh new file mode 100755 index 0000000..cabbc0e --- /dev/null +++ b/testcases/single_cell_ispol/job_script.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +#SBATCH --job-name=run1D_testsuite +#SBATCH --account=e3sm +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=1 +#SBATCH --output=1Dtestsuite_all.out +#SBATCH --error=1Dtestsuite_all.error +#SBATCH --mail-user=njeffery@lanl.gov +#SBATCH --mail-type=ALL +#SBATCH --time=00:10:00 + +# Sample job script for chrysalis +# Run with +# > sbatch ./job_script.sh + +source /lcrc/soft/climate/compass/chrysalis/load_latest_compass_gnu_openmpi.sh +source /lcrc/soft/climate/e3sm-unified/load_latest_e3sm_unified_chrysalis.sh + +export MPAS_SEAICE_DOMAINS_DIR="/lcrc/group/e3sm/public_html/mpas_standalonedata/mpas-seaice/domains" +export MPAS_SEAICE_EXECUTABLE="/home/ac.jeffery/E3SMv2/code/20220926/components/mpas-seaice/seaice_model" + +# Run My Program +srun -n 1 python run_testcase.py diff --git a/testcases/single_cell_ispol/plot_testcase.py b/testcases/single_cell_ispol/plot_testcase.py new file mode 100644 index 0000000..380eb85 --- /dev/null +++ b/testcases/single_cell_ispol/plot_testcase.py @@ -0,0 +1,168 @@ +from netCDF4 import Dataset +import matplotlib.pyplot as plt +import numpy as np +#------------------------------------------------------------------------------- + +def plot_testcase(): + + cm = 1/2.54 # centimeters in inches + #plt.rc('font', family="Times") + plt.rc('mathtext',fontset="stix") + SMALL_SIZE = 8 + MEDIUM_SIZE = 8 + BIGGER_SIZE = 8 + plt.rc('font', size=SMALL_SIZE) # controls default text sizes + plt.rc('axes', titlesize=SMALL_SIZE) # fontsize of the axes title + plt.rc('axes', labelsize=MEDIUM_SIZE) # fontsize of the x and y labels + plt.rc('xtick', labelsize=SMALL_SIZE) # fontsize of the tick labels + plt.rc('ytick', labelsize=SMALL_SIZE) # fontsize of the tick labels + plt.rc('legend', fontsize=SMALL_SIZE) # legend fontsize + plt.rc('figure', titlesize=BIGGER_SIZE) # fontsize of the figure title + + fig, axis = plt.subplots(figsize=(8*cm,7*cm)) + + filein = Dataset("./output/output.2004.nc","r") + + iceVolumeCell = filein.variables["iceVolumeCell"][:,0] + snowVolumeCell = filein.variables["snowVolumeCell"][:,0] + surfaceTemperatureCell = filein.variables["surfaceTemperatureCell"][:,0] + + filein.close() + + line1, = axis.plot(surfaceTemperatureCell,color="green",label="surfaceT") + axis.set_ylabel("Temperature (C)") + axis.set_xlabel("Time step") + axis.set_title("MPAS_Seaice ISPOL cell") + + axis2 = axis.twinx() + + line2, = axis2.plot(iceVolumeCell,color="red",label="iceVolume") + line3, = axis2.plot(snowVolumeCell,color="blue",label="snowVolume") + axis2.set_ylabel("Thickness (m)") + axis2.set_ylim(0,None) + + axis2.legend(handles=[line1,line2,line3],loc='lower right') + + plt.tight_layout() + plt.savefig("single_cell_ispol.eps") + plt.savefig("single_cell_ispol.png",dpi=300) + + ### Plot BGC fields + filein = Dataset("./output/output.2004.nc","r") + + interfaceBiologyGrid = filein.variables["interfaceBiologyGrid"][:] + verticalNitrateConcCell = filein.variables["verticalNitrateIceCell"][:,0,:] + verticalAlgaeConcCell = filein.variables["verticalAlgaeIceCell"][:,0,:] + netBrineHeight = filein.variables["netBrineHeight"][:,0] + verticalSilicateConcCell = filein.variables["verticalSilicateIceCell"][:,0,:] + verticalAmmoniumConcCell = filein.variables["verticalAmmoniumIceCell"][:,0,:] + verticalDONConcCell = filein.variables["verticalDONIceCell"][:,0,:] + verticalDOCConcCell = filein.variables["verticalDOCIceCell"][:,0,:] + verticalDICConcCell = filein.variables["verticalDICIceCell"][:,0,:] + verticaldFeConcCell = filein.variables["verticalDissolvedIronIceCell"][:,0,:] + + nTime1 = filein.dimensions["Time"] + nTime = nTime1.size + + nBiogrid1 = filein.dimensions["nBioLayersP1"] + nBioLayersP1 = nBiogrid1.size + filein.close() + + totNitrate = np.linspace(1,nTime,nTime,dtype=float)*0 + totSilicate = np.linspace(1,nTime,nTime,dtype=float)*0 + totAmmonium= np.linspace(1,nTime,nTime,dtype=float)*0 + totAlgalN = np.linspace(1,nTime,nTime,dtype=float)*0 + algae1 = np.linspace(1,nBioLayersP1,nBioLayersP1,dtype=float)*0 + algae2 = np.linspace(1,nBioLayersP1,nBioLayersP1,dtype=float)*0 + totalalgae = np.linspace(1,nBioLayersP1,nBioLayersP1,dtype=float)*0 + + DOC1 = np.linspace(1,nBioLayersP1,nBioLayersP1,dtype=float)*0 + DOC2 = np.linspace(1,nBioLayersP1,nBioLayersP1,dtype=float)*0 + totDOCtmp = np.linspace(1,nBioLayersP1,nBioLayersP1,dtype=float)*0 + totDOC = np.linspace(1,nTime,nTime,dtype=float)*0 + totDON = np.linspace(1,nTime,nTime,dtype=float)*0 + totDIC = np.linspace(1,nTime,nTime,dtype=float)*0 + totdFe = np.linspace(1,nTime,nTime,dtype=float)*0 + + for cnt in range(0,nTime): + bgrid = interfaceBiologyGrid[:] * netBrineHeight[cnt] + totNitrate[cnt] = np.nansum(verticalNitrateConcCell[cnt,:]*bgrid[:]) + totSilicate[cnt] = np.nansum(verticalSilicateConcCell[cnt,:]*bgrid[:]) + totAmmonium[cnt] = np.nansum(verticalAmmoniumConcCell[cnt,:]*bgrid[:]) + algae1[:] = verticalAlgaeConcCell[cnt,0:nBioLayersP1] + algae2[:] = verticalAlgaeConcCell[cnt,nBioLayersP1:2*nBioLayersP1] + DOC1[:] = verticalDOCConcCell[cnt,0:nBioLayersP1] + DOC2[:] = verticalDOCConcCell[cnt,nBioLayersP1:2*nBioLayersP1] + totDOCtmp[:] = DOC1[:] + DOC2[:] + totDOC[cnt] = np.nansum(totDOCtmp[:]*bgrid[:]) + totDON[cnt] = np.nansum(verticalDONConcCell[cnt,:]*bgrid[:]) + totDIC[cnt] = np.nansum(verticalDICConcCell[cnt,:]*bgrid[:]) + totdFe[cnt] = np.nansum(verticaldFeConcCell[cnt,:]*bgrid[:]) + totalgae = algae1[:] + algae2[:] + totAlgalN[cnt] = np.nansum(totalgae[:]*bgrid[:]) + + ### total Algal Nitrogen, total Silicate, total Ammonium, total Nitrate + fig, axis = plt.subplots(figsize=(8*cm,7*cm)) + + line1, = axis.plot(totAlgalN,color="green",label="tot Algal N") + axis.set_ylabel("Algae (mmol N m-2)") + axis.set_xlabel("Time step") + axis.set_title("MPAS_Seaice ISPOL BGC") + + axis2 = axis.twinx() + + line2, = axis2.plot(totNitrate,color="red",label="Nitrate") + line3, = axis2.plot(totSilicate,color="blue",label="Silicate") + line4, = axis2.plot(totAmmonium,color="cyan",label="Ammonium") + axis2.set_ylabel("(mmol m-3)") + axis2.set_ylim(0,None) + + axis2.legend(handles=[line1,line2,line3,line4],loc='upper right') + + plt.tight_layout() + plt.savefig("single_cell_ispol_bgc.eps") + plt.savefig("single_cell_ispol_bgc.png",dpi=300) + + ### total dissolved organic carbon (minus proteins), total dissolved organic nitrogen + fig, axis = plt.subplots(figsize=(8*cm,7*cm)) + + line1, = axis.plot(totDOC,color="green",label="DOC (minus proteins)") + axis.set_ylabel("DOC (mmol C m-2)") + axis.set_xlabel("Time step") + axis.set_title("MPAS_Seaice ISPOL BGC") + + axis2 = axis.twinx() + + line2, = axis2.plot(totDON,color="red",label="DON") + axis2.set_ylabel("DON (mmol N m-2)") + + axis2.legend(handles=[line1,line2],loc='upper right') + + plt.tight_layout() + plt.savefig("single_cell_ispol_DOC_DON.eps") + plt.savefig("single_cell_ispol_DOC_DON.png",dpi=300) + + ### DIC, dissolved iron + fig, axis = plt.subplots(figsize=(8*cm,7*cm)) + + line1, = axis.plot(totDIC,color="green",label="DIC") + axis.set_ylabel("DIC (mmol C m-2)") + axis.set_xlabel("Time step") + axis.set_title("MPAS_Seaice ISPOL BGC") + + axis2 = axis.twinx() + + line2, = axis2.plot(totdFe,color="red",label="dissolve Fe") + axis2.set_ylabel("dFe (mmol Fe m-2)") + + axis2.legend(handles=[line1,line2],loc='lower right') + + plt.tight_layout() + plt.savefig("single_cell_ispol_DIC_dfe.eps") + plt.savefig("single_cell_ispol_DIC_dfe.png",dpi=300) + +#------------------------------------------------------------------------------- + +if __name__ == "__main__": + + plot_testcase() diff --git a/testcases/single_cell_ispol/plot_testcase_forcing.py b/testcases/single_cell_ispol/plot_testcase_forcing.py new file mode 100644 index 0000000..d5f28c7 --- /dev/null +++ b/testcases/single_cell_ispol/plot_testcase_forcing.py @@ -0,0 +1,226 @@ +from netCDF4 import Dataset +import matplotlib.pyplot as plt +import numpy as np +#------------------------------------------------------------------------------- + +def plot_testcase(): + + cm = 1/2.54 # centimeters in inches + plt.rc('mathtext',fontset="stix") + SMALL_SIZE = 8 + MEDIUM_SIZE = 8 + BIGGER_SIZE = 8 + plt.rc('font', size=SMALL_SIZE) # controls default text sizes + plt.rc('axes', titlesize=SMALL_SIZE) # fontsize of the axes title + plt.rc('axes', labelsize=MEDIUM_SIZE) # fontsize of the x and y labels + plt.rc('xtick', labelsize=SMALL_SIZE) # fontsize of the tick labels + plt.rc('ytick', labelsize=SMALL_SIZE) # fontsize of the tick labels + plt.rc('legend', fontsize=SMALL_SIZE) # legend fontsize + plt.rc('figure', titlesize=BIGGER_SIZE) # fontsize of the figure title + + ### Air Specific Humidity and Air Temperature + fig, axis = plt.subplots(figsize=(8*cm,7*cm)) + + filein = Dataset("./output/output.2004.nc","r") + + airSpecificHumidity = filein.variables["airSpecificHumidity"][:,0] + airTemperature = filein.variables["airTemperature"][:,0] + + filein.close() + + line1, = axis.plot(airTemperature,color="green",label="air T") + axis.set_ylabel("air T (K)") + axis.set_xlabel("Time step") + axis.set_title("MPAS_Seaice ISPOL forcing") + + axis2 = axis.twinx() + + line2, = axis2.plot(airSpecificHumidity,color="red",label="airSpecificHumidity") + axis2.set_ylabel("Spec. Humidity") + + axis2.legend(handles=[line1,line2],loc='lower left') + + plt.tight_layout() + plt.savefig("single_cell_ispol_airT_humid.eps") + plt.savefig("single_cell_ispol_airT_humid.png",dpi=300) + + ### uAirVelocity vAirVelocity + fig, axis = plt.subplots(figsize=(8*cm,7*cm)) + + filein = Dataset("./output/output.2004.nc","r") + uAirVelocity = filein.variables["uAirVelocity"][:,0] + vAirVelocity = filein.variables["vAirVelocity"][:,0] + + filein.close() + + line1, = axis.plot(vAirVelocity,color="green",label="air v-vel") + axis.set_ylabel("v-vel (m s-1)") + axis.set_xlabel("Time step") + axis.set_title("MPAS_Seaice ISPOL forcing") + + axis2 = axis.twinx() + + line2, = axis2.plot(uAirVelocity,color="red",label="air u-vel") + axis2.set_ylabel("u-vel (m s-1)") + + axis2.legend(handles=[line1,line2],loc='lower left') + + plt.tight_layout() + plt.savefig("single_cell_ispol_u_v_AirVel.eps") + plt.savefig("single_cell_ispol_u_v_AirVel.png",dpi=300) + + ### seaSurfaceTemperature seaSurfaceSalinity + fig, axis = plt.subplots(figsize=(8*cm,7*cm)) + + filein = Dataset("./output/output.2004.nc","r") + seaSurfaceTemperature = filein.variables["seaSurfaceTemperature"][:,0] + seaSurfaceSalinity = filein.variables["seaSurfaceSalinity"][:,0] + + filein.close() + + line1, = axis.plot(seaSurfaceSalinity,color="green",label="SSS") + axis.set_ylabel("sss (ppt)") + axis.set_xlabel("Time step") + axis.set_title("MPAS_Seaice ISPOL forcing") + + axis2 = axis.twinx() + + line2, = axis2.plot(seaSurfaceTemperature,color="red",label="SST") + axis2.set_ylabel("T (C)") + + axis2.legend(handles=[line1,line2],loc='upper right') + + plt.tight_layout() + plt.savefig("single_cell_ispol_sst_sss.eps") + plt.savefig("single_cell_ispol_sst_sss.png",dpi=300) + + ### rainfallRate oceanMixedLayerDepth + fig, axis = plt.subplots(figsize=(8*cm,7*cm)) + + filein = Dataset("./output/output.2004.nc","r") + rainfallRate = filein.variables["rainfallRate"][:,0] + oceanMixedLayerDepth = filein.variables["oceanMixedLayerDepth"][:,0] + + filein.close() + + line1, = axis.plot(oceanMixedLayerDepth,color="green",label="MLD") + axis.set_ylabel("MLD (m)") + axis.set_xlabel("Time step") + axis.set_title("MPAS_Seaice ISPOL forcing") + + axis2 = axis.twinx() + + line2, = axis2.plot(rainfallRate,color="red",label="rainfall") + axis2.set_ylabel("rain (kg m-2 s-1)") + + axis2.legend(handles=[line1,line2],loc='lower left') + + plt.tight_layout() + plt.savefig("single_cell_ispol_mld_rain.eps") + plt.savefig("single_cell_ispol_mld_rain.png",dpi=300) + + ### uOceanVelocity vOceanVelocity + fig, axis = plt.subplots(figsize=(8*cm,7*cm)) + + filein = Dataset("./output/output.2004.nc","r") + uOceanVelocity = filein.variables["uOceanVelocity"][:,0] + vOceanVelocity = filein.variables["vOceanVelocity"][:,0] + + filein.close() + + line1, = axis.plot(vOceanVelocity,color="green",label="ocean v-vel") + axis.set_ylabel("v-vel (m s-1)") + axis.set_xlabel("Time step") + axis.set_title("MPAS_Seaice ISPOL forcing") + + axis2 = axis.twinx() + + line2, = axis2.plot(uOceanVelocity,color="red",label="ocean u-vel") + axis2.set_ylabel("u-vel (m s-1)") + + axis2.legend(handles=[line1,line2],loc='lower left') + + plt.tight_layout() + plt.savefig("single_cell_ispol_u_v_oceanVel.eps") + plt.savefig("single_cell_ispol_u_v_oceanVel.png",dpi=300) + + ### seaSurfaceTiltU seaSurfaceTiltV + fig, axis = plt.subplots(figsize=(8*cm,7*cm)) + + filein = Dataset("./output/output.2004.nc","r") + seaSurfaceTiltU = filein.variables["seaSurfaceTiltU"][:,0] + seaSurfaceTiltV = filein.variables["seaSurfaceTiltV"][:,0] + + filein.close() + + line1, = axis.plot(seaSurfaceTiltV,color="green",label="sea surface tilt (v)") + axis.set_ylabel("v-tilt") + axis.set_xlabel("Time step") + axis.set_title("MPAS_Seaice ISPOL forcing") + + axis2 = axis.twinx() + + line2, = axis2.plot(seaSurfaceTiltU,color="red",label="sea surface tilt (u)") + axis2.set_ylabel("u-tilt") + + axis2.legend(handles=[line1,line2],loc='lower left') + + plt.tight_layout() + plt.savefig("single_cell_ispol_u_v_sstilt.eps") + plt.savefig("single_cell_ispol_u_v_sstilt.png",dpi=300) + + ### oceanNitrateConc oceanSilicateConc + fig, axis = plt.subplots(figsize=(8*cm,7*cm)) + + filein = Dataset("./output/output.2004.nc","r") + oceanNitrateConc = filein.variables["oceanNitrateConc"][:,0] + oceanSilicateConc = filein.variables["oceanSilicateConc"][:,0] + + filein.close() + + line1, = axis.plot(oceanSilicateConc,color="green",label="ocean SiO3") + axis.set_ylabel("mmol Si m-3") + axis.set_xlabel("Time step") + axis.set_title("MPAS_Seaice ISPOL forcing") + + axis2 = axis.twinx() + + line2, = axis2.plot(oceanNitrateConc,color="red",label="ocean NO3") + axis2.set_ylabel("mmol NO3 m-3") + + axis2.legend(handles=[line1,line2],loc='lower left') + + plt.tight_layout() + plt.savefig("single_cell_ispol_ocean_nit_sil.eps") + plt.savefig("single_cell_ispol_ocean_nit_sil.png",dpi=300) + + ### shortwaveDown longwaveDown + fig, axis = plt.subplots(figsize=(8*cm,7*cm)) + + filein = Dataset("./output/output.2004.nc","r") + shortwaveDown = filein.variables["shortwaveDown"][:,0] + longwaveDown = filein.variables["longwaveDown"][:,0] + + filein.close() + + line1, = axis.plot(longwaveDown,color="green",label="longwave down") + axis.set_ylabel("Longwave (W m-2)") + axis.set_xlabel("Time step") + axis.set_title("MPAS_Seaice ISPOL forcing") + + axis2 = axis.twinx() + + line2, = axis2.plot(shortwaveDown,color="red",label="shortwave down") + axis2.set_ylabel("Shortwave (W m-2)") + + axis2.legend(handles=[line1,line2],loc='lower left') + + plt.tight_layout() + plt.savefig("single_cell_ispol_long_shortwave.eps") + plt.savefig("single_cell_ispol_long_shortwave.png",dpi=300) + +#------------------------------------------------------------------------------- + +if __name__ == "__main__": + + plot_testcase() diff --git a/testcases/single_cell_ispol/run_testcase.py b/testcases/single_cell_ispol/run_testcase.py new file mode 100644 index 0000000..0a38d5c --- /dev/null +++ b/testcases/single_cell_ispol/run_testcase.py @@ -0,0 +1,34 @@ +import os +from plot_testcase import plot_testcase + +#------------------------------------------------------------------------------- + +def run_testcase(): + + MPAS_SEAICE_EXECUTABLE = os.environ.get('MPAS_SEAICE_EXECUTABLE') + MPAS_SEAICE_TESTCASES_RUN_COMMAND = os.environ.get('MPAS_SEAICE_TESTCASES_RUN_COMMAND') + if (MPAS_SEAICE_TESTCASES_RUN_COMMAND is None): + MPAS_SEAICE_TESTCASES_RUN_COMMAND = "" + MPAS_SEAICE_DOMAINS_DIR = os.environ.get('MPAS_SEAICE_DOMAINS_DIR') + + # copy namelist and streams file + os.system("cp ../../configurations/ispol_bgc_single_cell/namelist.seaice .") + os.system("cp ../../configurations/ispol_bgc_single_cell/streams.seaice .") + + # forcing + os.system("python %s/domain_sc_-67.9_-54.4/get_domain.py" %(MPAS_SEAICE_DOMAINS_DIR)) + + # run MPAS-Seaice + os.system("%s %s" %(MPAS_SEAICE_TESTCASES_RUN_COMMAND, MPAS_SEAICE_EXECUTABLE)) + + # plot output + plot_testcase() + + # plot forcing + plot_testcase_forcing() + +#------------------------------------------------------------------------------- + +if __name__ == "__main__": + + run_testcase() From a7f01e0ce29d118f5c96bc2202cd216a7c67b4b3 Mon Sep 17 00:00:00 2001 From: Nicole Jeffery Date: Wed, 9 Nov 2022 11:31:00 -0600 Subject: [PATCH 2/6] Corrected ispol run_script added plot_testcase_forcing --- testcases/single_cell_ispol/run_testcase.py | 1 + 1 file changed, 1 insertion(+) diff --git a/testcases/single_cell_ispol/run_testcase.py b/testcases/single_cell_ispol/run_testcase.py index 0a38d5c..b68fe97 100644 --- a/testcases/single_cell_ispol/run_testcase.py +++ b/testcases/single_cell_ispol/run_testcase.py @@ -1,5 +1,6 @@ import os from plot_testcase import plot_testcase +from plot_testcase_forcing import plot_testcase_forcing #------------------------------------------------------------------------------- From 399443ddf44cb96c3892772657a0a040c914391b Mon Sep 17 00:00:00 2001 From: Nicole Jeffery Date: Wed, 9 Nov 2022 11:39:57 -0600 Subject: [PATCH 3/6] Corrected error in ISPOL forcing plot script --- testcases/single_cell_ispol/plot_testcase_forcing.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testcases/single_cell_ispol/plot_testcase_forcing.py b/testcases/single_cell_ispol/plot_testcase_forcing.py index d5f28c7..d1169fa 100644 --- a/testcases/single_cell_ispol/plot_testcase_forcing.py +++ b/testcases/single_cell_ispol/plot_testcase_forcing.py @@ -3,7 +3,7 @@ import numpy as np #------------------------------------------------------------------------------- -def plot_testcase(): +def plot_testcase_forcing(): cm = 1/2.54 # centimeters in inches plt.rc('mathtext',fontset="stix") @@ -223,4 +223,4 @@ def plot_testcase(): if __name__ == "__main__": - plot_testcase() + plot_testcase_forcing() From e4aac3feab4b7e8168e59636f22938c5ce4c8d80 Mon Sep 17 00:00:00 2001 From: Nicole Jeffery Date: Tue, 6 Dec 2022 10:30:00 -0600 Subject: [PATCH 4/6] Removed job_script in ispol-single-cell --- testcases/single_cell_ispol/job_script.sh | 24 ----------------------- 1 file changed, 24 deletions(-) delete mode 100755 testcases/single_cell_ispol/job_script.sh diff --git a/testcases/single_cell_ispol/job_script.sh b/testcases/single_cell_ispol/job_script.sh deleted file mode 100755 index cabbc0e..0000000 --- a/testcases/single_cell_ispol/job_script.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -#SBATCH --job-name=run1D_testsuite -#SBATCH --account=e3sm -#SBATCH --nodes=1 -#SBATCH --ntasks-per-node=1 -#SBATCH --output=1Dtestsuite_all.out -#SBATCH --error=1Dtestsuite_all.error -#SBATCH --mail-user=njeffery@lanl.gov -#SBATCH --mail-type=ALL -#SBATCH --time=00:10:00 - -# Sample job script for chrysalis -# Run with -# > sbatch ./job_script.sh - -source /lcrc/soft/climate/compass/chrysalis/load_latest_compass_gnu_openmpi.sh -source /lcrc/soft/climate/e3sm-unified/load_latest_e3sm_unified_chrysalis.sh - -export MPAS_SEAICE_DOMAINS_DIR="/lcrc/group/e3sm/public_html/mpas_standalonedata/mpas-seaice/domains" -export MPAS_SEAICE_EXECUTABLE="/home/ac.jeffery/E3SMv2/code/20220926/components/mpas-seaice/seaice_model" - -# Run My Program -srun -n 1 python run_testcase.py From 33cce25bc2812013b0b8689f1f295149fd4372ef Mon Sep 17 00:00:00 2001 From: Nicole Jeffery Date: Tue, 6 Dec 2022 10:38:53 -0600 Subject: [PATCH 5/6] Removed README from single_cell_ispol --- testcases/single_cell_ispol/README | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 testcases/single_cell_ispol/README diff --git a/testcases/single_cell_ispol/README b/testcases/single_cell_ispol/README deleted file mode 100644 index 7a091e3..0000000 --- a/testcases/single_cell_ispol/README +++ /dev/null @@ -1,22 +0,0 @@ -# Set DOMAINS DIRECTORY for ISPOL (67.9 S, -54.4 E) -export MPAS_SEAICE_DOMAINS_DIR="/lcrc/group/e3sm/public_html/mpas_standalonedata/mpas-seaice/domains" - -# Set location of executable -export MPAS_SEAICE_EXECUTABLE="" - -# Set location of run_testcase.py (optional) -export MPAS_SEAICE_TESTCASES_RUN_COMMAND="" - -# build the model -cd E3SM/components/mpas-seaice/ -make [options] - -# run the test case -cd E3SM/components/mpas-seaice/testing_and_setup/testcases/single_cell_ispol -python run_testcase.py - -# or the job_script.sh can also be modified and submitted -sbatch ./job_script.sh - -# examine the output plot -*.png From d916f317c21cad308e33f1662dcffc0183d5bfea Mon Sep 17 00:00:00 2001 From: Nicole Jeffery Date: Tue, 7 Mar 2023 11:55:16 -0600 Subject: [PATCH 6/6] Updates ispol namelist for config_forcing_bgc option New namelist field is part of https://github.com/E3SM-Project/E3SM/pull/5506 --- configurations/ispol_bgc_single_cell/namelist.seaice | 1 + 1 file changed, 1 insertion(+) diff --git a/configurations/ispol_bgc_single_cell/namelist.seaice b/configurations/ispol_bgc_single_cell/namelist.seaice index 8d2c3f2..ca3f099 100644 --- a/configurations/ispol_bgc_single_cell/namelist.seaice +++ b/configurations/ispol_bgc_single_cell/namelist.seaice @@ -67,6 +67,7 @@ config_forcing_cycle_duration = '01-00-00_00:00:00' config_forcing_precipitation_units = 'mm_per_sec' config_forcing_sst_type = 'ISPOL' + config_forcing_bgc_type = 'ISPOL' config_update_ocean_fluxes = false config_include_pond_freshwater_feedback = false /