27 type(
qg_geom),
intent(in) :: geom
28 real(kind_real),
intent(in) :: x(geom%nx,geom%ny,geom%nz)
29 real(kind_real),
intent(in) :: x_north(geom%nz)
30 real(kind_real),
intent(in) :: x_south(geom%nz)
31 real(kind_real),
intent(inout) :: u(geom%nx,geom%ny,geom%nz)
38 u(:,2:geom%ny,iz) = 0.5*x(:,1:geom%ny-1,iz)/geom%deltay
39 u(:,1,iz) = 0.5*x_south(iz)/geom%deltay
40 u(:,1:geom%ny-1,iz) = u(:,1:geom%ny-1,iz)-0.5*x(:,2:geom%ny,iz)/geom%deltay
41 u(:,geom%ny,iz) = u(:,geom%ny,iz)-0.5*x_north(iz)/geom%deltay
53 type(
qg_geom),
intent(in) :: geom
54 real(kind_real),
intent(in) :: x(geom%nx,geom%ny,geom%nz)
55 real(kind_real),
intent(out) :: u(geom%nx,geom%ny,geom%nz)
62 u(:,2:geom%ny,iz) = 0.5*x(:,1:geom%ny-1,iz)/geom%deltay
64 u(:,1:geom%ny-1,iz) = u(:,1:geom%ny-1,iz)-0.5*x(:,2:geom%ny,iz)/geom%deltay
76 type(
qg_geom),
intent(in) :: geom
77 real(kind_real),
intent(in) :: u(geom%nx,geom%ny,geom%nz)
78 real(kind_real),
intent(inout) :: x(geom%nx,geom%ny,geom%nz)
84 x(:,2:geom%ny,iz) = x(:,2:geom%ny,iz)-0.5/geom%deltay*u(:,1:geom%ny-1,iz)
85 x(:,1:geom%ny-1,iz) = x(:,1:geom%ny-1,iz)+0.5/geom%deltay*u(:,2:geom%ny,iz)
subroutine, public convert_x_to_u(geom, x, x_north, x_south, u)
Convert streafunction to zonal wind.
subroutine, public convert_x_to_u_tl(geom, x, u)
Convert streafunction to zonal wind - tangent Linear.
subroutine, public convert_x_to_u_ad(geom, u, x)
Convert streafunction to zonal wind - adjoint.