16 integer, 
intent(in) :: nx
    17 integer, 
intent(in) :: ny
    18 real(kind=kind_real), 
intent(inout) :: x(nx,ny,2)
    19 real(kind=kind_real), 
intent(inout) :: pv(nx,ny,2)
    20 real(kind=kind_real), 
intent(in) :: F1
    21 real(kind=kind_real), 
intent(in) :: F2
    22 real(kind=kind_real), 
intent(in) :: deltax
    23 real(kind=kind_real), 
intent(in) :: deltay
    27 x(:,:,1) = x(:,:,1) - f1*pv(:,:,1)
    28 x(:,:,2) = x(:,:,2) + f1*pv(:,:,1)
    29 x(:,:,1) = x(:,:,1) + f2*pv(:,:,2)
    30 x(:,:,2) = x(:,:,2) - f2*pv(:,:,2)
    34 x(:,1:ny-1,:) = x(:,1:ny-1,:) + (1.0_kind_real/(deltay*deltay))*pv(:,2:ny  ,:)
    35 x(:,2:ny  ,:) = x(:,2:ny  ,:) + (1.0_kind_real/(deltay*deltay))*pv(:,1:ny-1,:)
    37 x(nx    ,:,:) = x(nx    ,:,:) + (1.0_kind_real/(deltax*deltax))*pv(1     ,:,:)
    39 x(1:nx-1,:,:) = x(1:nx-1,:,:)  + (1.0_kind_real/(deltax*deltax))*pv(2:nx  ,:,:) 
    41 x(1     ,:,:) = x(1     ,:,:)  + (1.0_kind_real/(deltax*deltax))*pv(nx    ,:,:)
    42 x(2:nx  ,:,:) = x(2:nx  ,:,:)  + (1.0_kind_real/(deltax*deltax))*pv(1:nx-1,:,:)
    45 x(:,:,:) = x(:,:,:) -2.0_kind_real*( 1.0_kind_real/(deltax*deltax) &
    46                                   & +1.0_kind_real/(deltay*deltay))*pv(:,:,:)
    48 pv(:,:,:) = 0.0_kind_real
 subroutine pv_operator_ad(x, pv, nx, ny, F1, F2, deltax, deltay)
Potential vorticity operator - Adjoint.