Documentation of sph_div1


Global Index (all files) (short | long) | Local Index (files in subdir) (short | long)


Function Synopsis

[div, lat2, lon2] = sph_div1(u, v, lat, lon, wrap);

Help text


  [div, lat2, lon2] = sph_div1(u, v, lat, lon, wrap);

  assume lat and lon specified in degree
  wrap determines whether to wrap the x-axis around the globe
       ( default = 0 )

  SEE : sph_gradx1, sph_div1, sph_curl1

Cross-Reference Information

This function calls

Listing of function sph_div1

function [div, lat2, lon2] = sph_div1(u, v, lat, lon, wrap);

  global RADUS RADIAN DEGREE

  if nargin < 5;
    wrap = 0;
  end

  [uy,ux] = size(u);
  [vy,vx] = size(v);
  nxy = length(lon)*length(lat);

  if ( uy*ux ~= nxy | vy*vx ~= nxy );
    error ( 'dimension mismatch' );
  end;

%--------------------------------------------------------

  rx = lon * RADIAN; ry = lat * RADIAN;
  if wrap;
    rx2 = 0.5 * (rx + [rx(2:vx); 2*pi + rx(1)]);
  else
    rx2 = 0.5 * (rx(1:(ux-1)) + rx(2:ux));
  end 
  ry2 = 0.5 * (ry(1:(vy-1)) + ry(2:vy));
  u2 = 0.5 * (u(1:(uy-1),:) + u(2:uy,:));
  if wrap;
    v2 = 0.5 * (v + [v(:,2:vx) v(:,1)]);
  else
    v2 = 0.5 * (v(:,1:(ux-1)) + v(:,2:ux));
  end

  [divx, lon2] = sph_gradx1(u2,ry2,rx,wrap);
  [divy, lat2] = sph_grady1(v2,ry,rx2,1);
  lon2 = lon2*DEGREE;
  lat2 = lat2*DEGREE;
  div = divx + divy;