20 implicit none ;
private
22 #include <MOM_memory.h>
24 public user_set_coord, user_initialize_topography, user_initialize_thickness
25 public user_initialize_velocity, user_init_temperature_salinity
26 public user_initialize_sponges, user_set_obc_data, user_set_rotation
35 logical :: first_call = .true.
40 subroutine user_set_coord(Rlay, g_prime, GV, param_file, eqn_of_state)
43 real,
dimension(:),
intent(out) :: rlay
44 real,
dimension(:),
intent(out) :: g_prime
49 type(
eos_type),
pointer :: eqn_of_state
52 call mom_error(fatal, &
53 "USER_initialization.F90, USER_set_coord: " // &
54 "Unmodified user routine called - you must edit the routine to use it")
58 if (first_call)
call write_user_log(param_file)
60 end subroutine user_set_coord
63 subroutine user_initialize_topography(D, G, param_file, max_depth, US)
65 real,
dimension(G%isd:G%ied,G%jsd:G%jed), &
68 real,
intent(in) :: max_depth
71 call mom_error(fatal, &
72 "USER_initialization.F90, USER_initialize_topography: " // &
73 "Unmodified user routine called - you must edit the routine to use it")
77 if (first_call)
call write_user_log(param_file)
79 end subroutine user_initialize_topography
82 subroutine user_initialize_thickness(h, G, GV, param_file, just_read_params)
85 real,
dimension(SZI_(G),SZJ_(G),SZK_(GV)), &
89 logical,
optional,
intent(in) :: just_read_params
94 call mom_error(fatal, &
95 "USER_initialization.F90, USER_initialize_thickness: " // &
96 "Unmodified user routine called - you must edit the routine to use it")
98 just_read = .false. ;
if (
present(just_read_params)) just_read = just_read_params
100 if (just_read)
return
104 if (first_call)
call write_user_log(param_file)
106 end subroutine user_initialize_thickness
109 subroutine user_initialize_velocity(u, v, G, param_file, just_read_params)
111 real,
dimension(SZIB_(G), SZJ_(G), SZK_(G)),
intent(out) :: u
112 real,
dimension(SZI_(G), SZJB_(G), SZK_(G)),
intent(out) :: v
116 logical,
optional,
intent(in) :: just_read_params
121 call mom_error(fatal, &
122 "USER_initialization.F90, USER_initialize_velocity: " // &
123 "Unmodified user routine called - you must edit the routine to use it")
125 just_read = .false. ;
if (
present(just_read_params)) just_read = just_read_params
127 if (just_read)
return
132 if (first_call)
call write_user_log(param_file)
134 end subroutine user_initialize_velocity
138 subroutine user_init_temperature_salinity(T, S, G, param_file, eqn_of_state, just_read_params)
140 real,
dimension(SZI_(G),SZJ_(G), SZK_(G)),
intent(out) :: t
141 real,
dimension(SZI_(G),SZJ_(G), SZK_(G)),
intent(out) :: s
145 type(
eos_type),
pointer :: eqn_of_state
147 logical,
optional,
intent(in) :: just_read_params
152 call mom_error(fatal, &
153 "USER_initialization.F90, USER_init_temperature_salinity: " // &
154 "Unmodified user routine called - you must edit the routine to use it")
156 just_read = .false. ;
if (
present(just_read_params)) just_read = just_read_params
158 if (just_read)
return
163 if (first_call)
call write_user_log(param_file)
165 end subroutine user_init_temperature_salinity
168 subroutine user_initialize_sponges(G, GV, use_temp, tv, param_file, CSp, h)
171 logical,
intent(in) :: use_temp
181 real,
dimension(SZI_(G),SZJ_(G),SZK_(GV)), &
183 call mom_error(fatal, &
184 "USER_initialization.F90, USER_initialize_sponges: " // &
185 "Unmodified user routine called - you must edit the routine to use it")
187 if (first_call)
call write_user_log(param_file)
189 end subroutine user_initialize_sponges
192 subroutine user_set_obc_data(OBC, tv, G, param_file, tr_Reg)
209 if (first_call)
call write_user_log(param_file)
211 end subroutine user_set_obc_data
213 subroutine user_set_rotation(G, param_file)
216 call mom_error(fatal, &
217 "USER_initialization.F90, USER_set_rotation: " // &
218 "Unmodified user routine called - you must edit the routine to use it")
220 if (first_call)
call write_user_log(param_file)
222 end subroutine user_set_rotation
225 subroutine write_user_log(param_file)
231 #include "version_variable.h"
232 character(len=40) :: mdl =
"user_initialization"
237 end subroutine write_user_log