58 logical :: OCEAN_DYN_OFFLINE_enable_periodic_year = .false.
59 logical :: OCEAN_DYN_OFFLINE_enable_periodic_month = .false.
60 logical :: OCEAN_DYN_OFFLINE_enable_periodic_day = .false.
61 integer :: OCEAN_DYN_OFFLINE_step_fixed = 0
62 real(RP) :: OCEAN_DYN_OFFLINE_offset = 0.0_rp
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_enable_periodic_year, &
70 ocean_dyn_offline_enable_periodic_month, &
71 ocean_dyn_offline_enable_periodic_day, &
72 ocean_dyn_offline_step_fixed, &
73 ocean_dyn_offline_offset, &
74 ocean_dyn_offline_defval, &
75 ocean_dyn_offline_check_coordinates, &
76 ocean_dyn_offline_step_limit
82 log_info(
"OCEAN_DYN_OFFLINE_setup",*)
'Setup' 84 ocean_dyn_offline_defval = undef
88 read(
io_fid_conf,nml=param_ocean_dyn_offline,iostat=ierr)
90 log_info(
"OCEAN_DYN_OFFLINE_setup",*)
'Not found namelist. Default used.' 91 elseif( ierr > 0 )
then 92 log_error(
"OCEAN_DYN_OFFLINE_setup",*)
'Not appropriate names in namelist PARAM_OCEAN_DYN_OFFLINE. Check!' 95 log_nml(param_ocean_dyn_offline)
97 log_info(
"OCEAN_DYN_OFFLINE_setup",*)
'Use offline ocean' 99 if ( ocean_dyn_offline_basename(1) ==
'' )
then 100 log_error(
"OCEAN_DYN_OFFLINE_setup",*)
'OCEAN_DYN_OFFLINE_basename is necessary !!' 107 ocean_dyn_offline_enable_periodic_year, &
108 ocean_dyn_offline_enable_periodic_month, &
109 ocean_dyn_offline_enable_periodic_day, &
110 ocean_dyn_offline_step_fixed, &
111 ocean_dyn_offline_offset, &
112 ocean_dyn_offline_defval, &
113 ocean_dyn_offline_check_coordinates, &
114 ocean_dyn_offline_step_limit )
131 file_external_input_update
134 integer,
intent(in) :: OKMAX, OKS, OKE
135 integer,
intent(in) :: OIA, OIS, OIE
136 integer,
intent(in) :: OJA, OJS, OJE
137 logical,
intent(in) :: calc_flag (oia,oja)
138 real(DP),
intent(in) :: dt
139 real(DP),
intent(in) :: NOWDAYSEC
140 real(RP),
intent(inout) :: OCEAN_TEMP(okmax,oia,oja)
142 real(RP) :: OCEAN_TEMP_ref(okmax,oia,oja)
148 log_progress(*)
'ocean / dynamics / offline' 150 call file_external_input_update(
'OCEAN_TEMP', nowdaysec, ocean_temp_ref(:,:,:), error )
153 log_error(
"OCEAN_DYN_OFFLINE",*)
'Requested data is not found!' 159 if ( calc_flag(i,j) )
then 160 ocean_temp(oks,i,j) = ocean_temp_ref(oks,i,j)
subroutine, public ocean_dyn_offline(OKMAX, OKS, OKE, OIA, OIS, OIE, OJA, OJS, OJE, calc_flag, dt, NOWDAYSEC, OCEAN_TEMP)
Slab ocean model.
integer, public io_fid_conf
Config file ID.
real(rp), public const_undef
subroutine, public prc_abort
Abort Process.
module ocean / dynamics / offline
subroutine, public ocean_dyn_offline_setup
Setup.