#include #include void hc_dvecalloc(double **,int, char *); #define vshd2c vshd2c_ #define gauleg gauleg_ extern void vshd2c(int *,double *,double *,double *,double *,int *, double *,double *); extern void gauleg(double *,double *,double*,double *,int*); void main(void) { int lmax,nlat,nlon,lmsize,i,j,index; double *datax,*datay,*cpol,*ctor,*z,*w,unity,negunity; unity = 1.0;negunity=-1.0; /* */ lmax = 63; /* sizes */ nlat = lmax+1; nlon = nlat * 2; lmsize = (lmax+1)*(lmax+2)/2; /* allocate */ hc_dvecalloc(&cpol,lmsize*2,""); hc_dvecalloc(&ctor,lmsize*2,""); hc_dvecalloc(&datax,nlon*nlat,""); hc_dvecalloc(&datay,nlon*nlat,""); hc_dvecalloc(&z,nlat,""); hc_dvecalloc(&w,nlon*nlat,""); /* gauss points */ gauleg(&negunity,&unity,z,w,&nlat); /* read in data */ for(index=0;index