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, US, param_file, eqn_of_state)
42 real,
dimension(GV%ke),
intent(out) :: rlay
43 real,
dimension(GV%ke+1),
intent(out) :: g_prime
49 type(
eos_type),
pointer :: eqn_of_state
51 call mom_error(fatal, &
52 "USER_initialization.F90, USER_set_coord: " // &
53 "Unmodified user routine called - you must edit the routine to use it")
57 if (first_call)
call write_user_log(param_file)
59 end subroutine user_set_coord
62 subroutine user_initialize_topography(D, G, param_file, max_depth, US)
64 real,
dimension(G%isd:G%ied,G%jsd:G%jed), &
67 real,
intent(in) :: max_depth
70 call mom_error(fatal, &
71 "USER_initialization.F90, USER_initialize_topography: " // &
72 "Unmodified user routine called - you must edit the routine to use it")
76 if (first_call)
call write_user_log(param_file)
78 end subroutine user_initialize_topography
81 subroutine user_initialize_thickness(h, G, GV, param_file, just_read_params)
84 real,
dimension(SZI_(G),SZJ_(G),SZK_(GV)), &
88 logical,
optional,
intent(in) :: just_read_params
93 call mom_error(fatal, &
94 "USER_initialization.F90, USER_initialize_thickness: " // &
95 "Unmodified user routine called - you must edit the routine to use it")
97 just_read = .false. ;
if (
present(just_read_params)) just_read = just_read_params
103 if (first_call)
call write_user_log(param_file)
105 end subroutine user_initialize_thickness
108 subroutine user_initialize_velocity(u, v, G, US, param_file, just_read_params)
110 real,
dimension(SZIB_(G), SZJ_(G), SZK_(G)),
intent(out) :: u
111 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
146 logical,
optional,
intent(in) :: just_read_params
151 call mom_error(fatal, &
152 "USER_initialization.F90, USER_init_temperature_salinity: " // &
153 "Unmodified user routine called - you must edit the routine to use it")
155 just_read = .false. ;
if (
present(just_read_params)) just_read = just_read_params
157 if (just_read)
return
162 if (first_call)
call write_user_log(param_file)
164 end subroutine user_init_temperature_salinity
167 subroutine user_initialize_sponges(G, GV, use_temp, tv, param_file, CSp, h)
170 logical,
intent(in) :: use_temp
180 real,
dimension(SZI_(G),SZJ_(G),SZK_(GV)), &
182 call mom_error(fatal, &
183 "USER_initialization.F90, USER_initialize_sponges: " // &
184 "Unmodified user routine called - you must edit the routine to use it")
186 if (first_call)
call write_user_log(param_file)
188 end subroutine user_initialize_sponges
191 subroutine user_set_obc_data(OBC, tv, G, param_file, tr_Reg)
208 if (first_call)
call write_user_log(param_file)
210 end subroutine user_set_obc_data
212 subroutine user_set_rotation(G, param_file)
215 call mom_error(fatal, &
216 "USER_initialization.F90, USER_set_rotation: " // &
217 "Unmodified user routine called - you must edit the routine to use it")
219 if (first_call)
call write_user_log(param_file)
221 end subroutine user_set_rotation
224 subroutine write_user_log(param_file)
230 #include "version_variable.h"
231 character(len=40) :: mdl =
"user_initialization"
236 end subroutine write_user_log