53 file_external_input_regist
56 character(len=H_LONG) :: ocean_dyn_offline_basename =
''
57 logical :: ocean_dyn_offline_basename_add_num = .false.
58 integer :: ocean_dyn_offline_number_of_files = 1
59 logical :: ocean_dyn_offline_enable_periodic_year = .false.
60 logical :: ocean_dyn_offline_enable_periodic_month = .false.
61 logical :: ocean_dyn_offline_enable_periodic_day = .false.
62 integer :: ocean_dyn_offline_step_fixed = 0
63 real(
rp) :: ocean_dyn_offline_defval
64 logical :: ocean_dyn_offline_check_coordinates = .true.
65 integer :: ocean_dyn_offline_step_limit = 0
67 namelist / param_ocean_dyn_offline / &
68 ocean_dyn_offline_basename, &
69 ocean_dyn_offline_basename_add_num, &
70 ocean_dyn_offline_number_of_files, &
71 ocean_dyn_offline_enable_periodic_year, &
72 ocean_dyn_offline_enable_periodic_month, &
73 ocean_dyn_offline_enable_periodic_day, &
74 ocean_dyn_offline_step_fixed, &
75 ocean_dyn_offline_defval, &
76 ocean_dyn_offline_check_coordinates, &
77 ocean_dyn_offline_step_limit
83 log_info(
"OCEAN_DYN_OFFLINE_setup",*)
'Setup'
85 ocean_dyn_offline_defval = undef
89 read(
io_fid_conf,nml=param_ocean_dyn_offline,iostat=ierr)
91 log_info(
"OCEAN_DYN_OFFLINE_setup",*)
'Not found namelist. Default used.'
92 elseif( ierr > 0 )
then
93 log_error(
"OCEAN_DYN_OFFLINE_setup",*)
'Not appropriate names in namelist PARAM_OCEAN_DYN_OFFLINE. Check!'
96 log_nml(param_ocean_dyn_offline)
98 log_info(
"OCEAN_DYN_OFFLINE_setup",*)
'Use offline ocean'
100 if ( ocean_dyn_offline_basename ==
'' )
then
101 log_error(
"OCEAN_DYN_OFFLINE_setup",*)
'OCEAN_DYN_OFFLINE_basename is necessary !!'
105 call file_external_input_regist( ocean_dyn_offline_basename, &
106 ocean_dyn_offline_basename_add_num, &
107 ocean_dyn_offline_number_of_files, &
110 ocean_dyn_offline_enable_periodic_year, &
111 ocean_dyn_offline_enable_periodic_month, &
112 ocean_dyn_offline_enable_periodic_day, &
113 ocean_dyn_offline_step_fixed, &
114 ocean_dyn_offline_defval, &
115 check_coordinates = ocean_dyn_offline_check_coordinates, &
116 step_limit = ocean_dyn_offline_step_limit )
133 file_external_input_update
136 integer,
intent(in) :: okmax, oks, oke
137 integer,
intent(in) :: oia, ois, oie
138 integer,
intent(in) :: oja, ojs, oje
139 logical,
intent(in) :: calc_flag (oia,oja)
140 real(
dp),
intent(in) :: dt
141 real(
dp),
intent(in) :: nowdaysec
142 real(
rp),
intent(inout) :: ocean_temp(okmax,oia,oja)
144 real(
rp) :: ocean_temp_ref(okmax,oia,oja)
151 log_progress(*)
'ocean / dynamics / offline'
153 call file_external_input_update(
'OCEAN_TEMP', nowdaysec, ocean_temp_ref(:,:,:), error )
156 log_error(
"OCEAN_DYN_OFFLINE",*)
'Requested data is not found!'
163 if ( calc_flag(i,j) )
then
164 ocean_temp(oks,i,j) = ocean_temp_ref(oks,i,j)