// Author: Aime' Fournier // E-mail: fournier@ucar.edu #include "real.h" real l2norm(real *u,int na,int m,int n) { double r; int i,ipn,j,mna; mna=m*na; // nu. rows times allocated columns r=0.; // initialize sum of squares for( i=0; i<mna; i+=na ) { // row loop: ipn=i+n; // last column plus 1 for( j=i; j<ipn; j++ ) { // column loop: r+=u[j]*u[j]; // increment sum of squares // printf("l2norm: u*u[%d]=%9.2e\n",j,u[j]*u[j]); } } return (real)sqrt(r); // return root-sum of squares }