32 type(qg_field),
intent(inout) :: flds
33 type(qg_config),
intent(in) :: config
35 real(kind=kind_real),
allocatable :: qnew(:,:,:)
39 allocate(qnew(flds%geom%nx,flds%geom%ny,2))
43 call advect_pv(qnew,flds%q,flds%q_north,flds%q_south,flds%u,flds%v, &
44 & flds%geom%nx,flds%geom%ny,config%deltax,config%deltay,config%dt)
48 call invert_pv(flds%x,qnew,flds%x_north,flds%x_south,config%rs, &
49 & flds%geom%nx,flds%geom%ny,config%deltax,config%deltay, &
50 & config%f1,config%f2,
bet)
54 flds%q(:,:,:) = qnew(:,:,:)
55 call zonal_wind(flds%u,flds%x,flds%x_north,flds%x_south, &
56 & flds%geom%nx,flds%geom%ny,config%deltay)
57 call meridional_wind(flds%v,flds%x, flds%geom%nx,flds%geom%ny,config%deltax)
Constants for the QG model.
subroutine invert_pv(x, pv, x_north, x_south, rs, nx, ny, deltax, deltay, F1, F2, bet)
Invert potential vorticity, returning streamfunction.
real(kind=kind_real), parameter bet
subroutine zonal_wind(u, x, x_north, x_south, nx, ny, deltay)
Calculate zonal wind component from the streamfunction.
Structure holding configuration variables for the QG model.
subroutine advect_pv(qnew, q, q_north, q_south, u, v, nx, ny, deltax, deltay, dt)
Advect potential vorticity.
Handle fields for the QG model.
subroutine propagate(flds, config)
Perform a timestep of the QG model.
subroutine meridional_wind(v, x, nx, ny, deltax)
Calculate meridional wind component from the streamfunction.