@@ -11,56 +11,57 @@ module MOM_ocean_model_mct
1111! This code is a stop-gap wrapper of the MOM6 code to enable it to be called
1212! in the same way as MOM4.
1313
14- use MOM, only : initialize_MOM, step_MOM, MOM_control_struct, MOM_end
15- use MOM, only : extract_surface_state, allocate_surface_state, finish_MOM_initialization
16- use MOM, only : get_MOM_state_elements, MOM_state_is_synchronized
17- use MOM, only : get_ocean_stocks, step_offline
18- use MOM_constants, only : CELSIUS_KELVIN_OFFSET, hlf
19- use MOM_diag_mediator, only : diag_ctrl, enable_averaging, disable_averaging
20- use MOM_diag_mediator, only : diag_mediator_close_registration, diag_mediator_end
21- use MOM_domains, only : pass_var, pass_vector, AGRID, BGRID_NE, CGRID_NE
22- use MOM_domains, only : TO_ALL, Omit_Corners
23- use MOM_error_handler, only : MOM_error, FATAL, WARNING, is_root_pe
24- use MOM_error_handler, only : callTree_enter, callTree_leave
25- use MOM_file_parser, only : get_param, log_version, close_param_file, param_file_type
26- use MOM_forcing_type, only : allocate_forcing_type
27- use MOM_forcing_type, only : forcing, mech_forcing
28- use MOM_forcing_type, only : forcing_accumulate, copy_common_forcing_fields
29- use MOM_forcing_type, only : copy_back_forcing_fields, set_net_mass_forcing
30- use MOM_forcing_type, only : set_derived_forcing_fields
31- use MOM_forcing_type, only : forcing_diagnostics, mech_forcing_diags
32- use MOM_get_input, only : Get_MOM_Input, directories
33- use MOM_grid, only : ocean_grid_type
34- use MOM_io, only : close_file, file_exists, read_data, write_version_number
35- use MOM_marine_ice, only : iceberg_forces, iceberg_fluxes, marine_ice_init, marine_ice_CS
36- use MOM_restart, only : MOM_restart_CS, save_restart
37- use MOM_string_functions, only : uppercase
38- use MOM_surface_forcing_mct, only : surface_forcing_init, convert_IOB_to_fluxes
39- use MOM_surface_forcing_mct, only : convert_IOB_to_forces, ice_ocn_bnd_type_chksum
40- use MOM_surface_forcing_mct, only : ice_ocean_boundary_type, surface_forcing_CS
41- use MOM_surface_forcing_mct, only : forcing_save_restart
42- use MOM_time_manager, only : time_type, get_time, set_time, operator (>)
43- use MOM_time_manager, only : operator (+ ), operator (- ), operator (* ), operator (/ )
44- use MOM_time_manager, only : operator (/= ), operator (<= ), operator (>= )
45- use MOM_time_manager, only : operator (<), real_to_time_type, time_type_to_real
46- use MOM_tracer_flow_control, only : call_tracer_register, tracer_flow_control_init
47- use MOM_tracer_flow_control, only : call_tracer_flux_init
48- use MOM_unit_scaling, only : unit_scale_type
49- use MOM_variables, only : surface
50- use MOM_verticalGrid, only : verticalGrid_type
51- use MOM_ice_shelf, only : initialize_ice_shelf, shelf_calc_flux, ice_shelf_CS
52- use MOM_ice_shelf, only : add_shelf_forces, ice_shelf_end, ice_shelf_save_restart
53- use coupler_types_mod, only : coupler_1d_bc_type, coupler_2d_bc_type
54- use coupler_types_mod, only : coupler_type_spawn, coupler_type_write_chksums
55- use coupler_types_mod, only : coupler_type_initialized, coupler_type_copy_data
56- use coupler_types_mod, only : coupler_type_set_diags, coupler_type_send_data
57- use mpp_domains_mod, only : domain2d, mpp_get_layout, mpp_get_global_domain
58- use mpp_domains_mod, only : mpp_define_domains, mpp_get_compute_domain, mpp_get_data_domain
59- use fms_mod, only : stdout
60- use mpp_mod, only : mpp_chksum
61- use MOM_EOS, only : gsw_sp_from_sr, gsw_pt_from_ct
62- use MOM_wave_interface, only: wave_parameters_CS, MOM_wave_interface_init
63- use MOM_wave_interface, only: MOM_wave_interface_init_lite, Update_Surface_Waves
14+ use MOM, only : initialize_MOM, step_MOM, MOM_control_struct, MOM_end
15+ use MOM, only : extract_surface_state, allocate_surface_state, finish_MOM_initialization
16+ use MOM, only : get_MOM_state_elements, MOM_state_is_synchronized
17+ use MOM, only : get_ocean_stocks, step_offline
18+ use MOM_constants, only : CELSIUS_KELVIN_OFFSET, hlf
19+ use MOM_diag_mediator, only : diag_ctrl, enable_averaging, disable_averaging
20+ use MOM_diag_mediator, only : diag_mediator_close_registration, diag_mediator_end
21+ use MOM_domains, only : pass_var, pass_vector, AGRID, BGRID_NE, CGRID_NE
22+ use MOM_domains, only : TO_ALL, Omit_Corners
23+ use MOM_error_handler, only : MOM_error, FATAL, WARNING, is_root_pe
24+ use MOM_error_handler, only : callTree_enter, callTree_leave
25+ use MOM_file_parser, only : get_param, log_version, close_param_file, param_file_type
26+ use MOM_forcing_type, only : allocate_forcing_type
27+ use MOM_forcing_type, only : forcing, mech_forcing
28+ use MOM_forcing_type, only : forcing_accumulate, copy_common_forcing_fields
29+ use MOM_forcing_type, only : copy_back_forcing_fields, set_net_mass_forcing
30+ use MOM_forcing_type, only : set_derived_forcing_fields
31+ use MOM_forcing_type, only : forcing_diagnostics, mech_forcing_diags
32+ use MOM_get_input, only : Get_MOM_Input, directories
33+ use MOM_grid, only : ocean_grid_type
34+ use MOM_io, only : close_file, file_exists, read_data, write_version_number
35+ use MOM_marine_ice, only : iceberg_forces, iceberg_fluxes, marine_ice_init, marine_ice_CS
36+ use MOM_restart, only : MOM_restart_CS, save_restart
37+ use MOM_string_functions, only : uppercase
38+ use MOM_surface_forcing_mct, only : surface_forcing_init, convert_IOB_to_fluxes
39+ use MOM_surface_forcing_mct, only : convert_IOB_to_forces, ice_ocn_bnd_type_chksum
40+ use MOM_surface_forcing_mct, only : ice_ocean_boundary_type, surface_forcing_CS
41+ use MOM_surface_forcing_mct, only : forcing_save_restart
42+ use MOM_time_manager, only : time_type, get_time, set_time, operator (>)
43+ use MOM_time_manager, only : operator (+ ), operator (- ), operator (* ), operator (/ )
44+ use MOM_time_manager, only : operator (/= ), operator (<= ), operator (>= )
45+ use MOM_time_manager, only : operator (<), real_to_time_type, time_type_to_real
46+ use MOM_tracer_flow_control, only : call_tracer_register, tracer_flow_control_init
47+ use MOM_tracer_flow_control, only : call_tracer_flux_init
48+ use MOM_unit_scaling, only : unit_scale_type
49+ use MOM_variables, only : surface
50+ use MOM_verticalGrid, only : verticalGrid_type
51+ use MOM_ice_shelf, only : initialize_ice_shelf, shelf_calc_flux, ice_shelf_CS
52+ use MOM_ice_shelf, only : add_shelf_forces, ice_shelf_end, ice_shelf_save_restart
53+ use coupler_types_mod, only : coupler_1d_bc_type, coupler_2d_bc_type
54+ use coupler_types_mod, only : coupler_type_spawn, coupler_type_write_chksums
55+ use coupler_types_mod, only : coupler_type_initialized, coupler_type_copy_data
56+ use coupler_types_mod, only : coupler_type_set_diags, coupler_type_send_data
57+ use mpp_domains_mod, only : domain2d, mpp_get_layout, mpp_get_global_domain
58+ use mpp_domains_mod, only : mpp_define_domains, mpp_get_compute_domain, mpp_get_data_domain
59+ use fms_mod, only : stdout
60+ use mpp_mod, only : mpp_chksum
61+ use MOM_EOS, only : gsw_sp_from_sr, gsw_pt_from_ct
62+ use MOM_wave_interface, only : wave_parameters_CS, MOM_wave_interface_init
63+ use MOM_wave_interface, only : MOM_wave_interface_init_lite, Update_Surface_Waves
64+ use time_interp_external_mod, only : time_interp_external_init
6465
6566! MCT specfic routines
6667use MOM_domains, only : MOM_infra_end
@@ -265,6 +266,8 @@ subroutine ocean_model_init(Ocean_sfc, OS, Time_init, Time_in, gas_fields_ocn, i
265266 OS% is_ocean_pe = Ocean_sfc% is_ocean_pe
266267 if (.not. OS% is_ocean_pe) return
267268
269+ call time_interp_external_init
270+
268271 OS% Time = Time_in
269272 call initialize_MOM(OS% Time, Time_init, param_file, OS% dirs, OS% MOM_CSp, &
270273 OS% restart_CSp, Time_in, offline_tracer_mode= OS% offline_tracer_mode, &
0 commit comments