1 0 GfsRiver GfsBox GfsGEdge {} {
    PhysicalParams { L = 8 }
    GModule terrain
    RefineTerrain LEVEL H {
	basename = terrain,terrain-high
    } TRUE
    VariableTerrain T {
	basename = terrain,terrain-high
    }
    Time { end = 0 }
    OutputErrorNorm { start = end } { awk '{ print LEVEL,$5,$7,$9 }' >> error-t } { v = T } {
	s = {
	    double r = sqrt (x*x + y*y);
	    return r*r/8.+cos(M_PI*r)/2.;
	}
	w = (fabs (x) < 3.8 && fabs (y) < 3.8)
	relative = 1
	v = Et
    }
    OutputErrorNorm { start = end } { awk '{ print LEVEL,$5,$7,$9 }' >> error-h } { v = H0 } {
	s = {
	    double r = sqrt (x*x + y*y);
	    return r*r/8.+cos(M_PI*r)/2.;
	}
	w = (fabs (x) < 3.8 && fabs (y) < 3.8)
	relative = 1
	v = Eh
    }
    OutputSimulation { start = end } {
	awk '{
           if ($1 != "#") {
             r = sqrt ($1*$1 + $2*$2);
             print r,$4,$5,$6,$7;
           }
        }' | sort -n -k 1,2 > end-LEVEL.txt
    } { format = text variables = T,H0,Et,Eh }
    OutputSimulation { start = end } end-LEVEL.gfs
}
GfsBox {}