12 use fckit_configuration_module,
only: fckit_configuration
13 use fckit_log_module,
only: fckit_log
35 #define LISTED_TYPE qg_model_config
38 #include "oops/util/linkedList_i.f"
48 #include "oops/util/linkedList_c.f"
57 type(fckit_configuration),
intent(in) :: f_conf
60 type(duration) :: dtstep
61 character(len=20) :: ststep
62 character(len=160) :: record
63 character(len=:),
allocatable :: str
66 call f_conf%get_or_die(
"tstep",str)
69 self%dt = duration_seconds(dtstep)
70 write(record,*)
'qg_model_setup: dt = ',self%dt
71 call fckit_log%info(record)
85 real(kind_real) :: x(fld%geom%nx,fld%geom%ny,fld%geom%nz),q(fld%geom%nx,fld%geom%ny,fld%geom%nz)
86 real(kind_real) :: u(fld%geom%nx,fld%geom%ny,fld%geom%nz),v(fld%geom%nx,fld%geom%ny,fld%geom%nz)
87 real(kind_real) :: qnew(fld%geom%nx,fld%geom%ny,fld%geom%nz)
102 call advect_q(fld%geom,conf%dt,u,v,q,fld%q_north,fld%q_south,qnew)
125 real(kind_real) :: x_traj(fld%geom%nx,fld%geom%ny,fld%geom%nz),q_traj(fld%geom%nx,fld%geom%ny,fld%geom%nz)
126 real(kind_real) :: u_traj(fld%geom%nx,fld%geom%ny,fld%geom%nz),v_traj(fld%geom%nx,fld%geom%ny,fld%geom%nz)
127 real(kind_real) :: x(fld%geom%nx,fld%geom%ny,fld%geom%nz),q(fld%geom%nx,fld%geom%ny,fld%geom%nz)
128 real(kind_real) :: u(fld%geom%nx,fld%geom%ny,fld%geom%nz),v(fld%geom%nx,fld%geom%ny,fld%geom%nz)
129 real(kind_real) :: qnew(fld%geom%nx,fld%geom%ny,fld%geom%nz)
136 call convert_q_to_x(fld%geom,q_traj,traj%x_north,traj%x_south,x_traj)
139 call convert_x_to_q(fld%geom,x_traj,traj%x_north,traj%x_south,q_traj)
143 call convert_x_to_uv(fld%geom,x_traj,traj%x_north,traj%x_south,u_traj,v_traj)
160 call advect_q_tl(fld%geom,conf%dt,u_traj,v_traj,q_traj,traj%q_north,traj%q_south,u,v,q,qnew)
183 real(kind_real) :: x_traj(fld%geom%nx,fld%geom%ny,fld%geom%nz),q_traj(fld%geom%nx,fld%geom%ny,fld%geom%nz)
184 real(kind_real) :: u_traj(fld%geom%nx,fld%geom%ny,fld%geom%nz),v_traj(fld%geom%nx,fld%geom%ny,fld%geom%nz)
185 real(kind_real) :: x(fld%geom%nx,fld%geom%ny,fld%geom%nz),q(fld%geom%nx,fld%geom%ny,fld%geom%nz)
186 real(kind_real) :: u(fld%geom%nx,fld%geom%ny,fld%geom%nz),v(fld%geom%nx,fld%geom%ny,fld%geom%nz)
187 real(kind_real) :: qnew(fld%geom%nx,fld%geom%ny,fld%geom%nz)
194 call convert_q_to_x(fld%geom,q_traj,traj%x_north,traj%x_south,x_traj)
197 call convert_x_to_q(fld%geom,x_traj,traj%x_north,traj%x_south,q_traj)
201 call convert_x_to_uv(fld%geom,x_traj,traj%x_north,traj%x_south,u_traj,v_traj)
221 call advect_q_ad(fld%geom,conf%dt,u_traj,v_traj,q_traj,traj%q_north,traj%q_south,qnew,u,v,q)