|
PISM, A Parallel Ice Sheet Model stable 0.4.1779
|
00001 /* 00002 Copyright (C) 2007--2009 Ed Bueler 00003 00004 This file is part of PISM. 00005 00006 PISM is free software; you can redistribute it and/or modify it under the 00007 terms of the GNU General Public License as published by the Free Software 00008 Foundation; either version 2 of the License, or (at your option) any later 00009 version. 00010 00011 PISM is distributed in the hope that it will be useful, but WITHOUT ANY 00012 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00013 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 00014 details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with PISM; if not, write to the Free Software 00018 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00019 */ 00020 00021 #ifndef __exactTestL_h 00022 #define __exactTestL_h 1 00023 00024 #ifdef __cplusplus 00025 extern "C" 00026 { 00027 #endif 00028 00029 /* 00030 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 00031 ! exactTestL is a C implementation of an isothermal "exact" solution on a 00032 ! no-flat bed described in section 2.3 of an incomplete preprint 00033 ! 00034 ! Ed Bueler (March 2006) "Equilibrium ice sheets solve variational 00035 ! inequalities" 00036 ! 00037 ! in this case the exact solution requires solving an ODE numerically. 00038 ! See src/verif/simpleL.c. 00039 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 00040 */ 00041 00042 /* exit status could be one of these; returned zero indicates success */ 00043 #define TESTL_NOT_DONE 8966 00044 #define TESTL_NOT_DECREASING 8967 00045 #define TESTL_INVALID_METHOD 8968 00046 #define TESTL_NO_LIST 8969 00047 00048 int exactL(double r, double *H, double *b, double *a, 00049 const double EPS_ABS, const double EPS_REL, const int ode_method); 00050 /* r in meters, 0 <= r <= 750000 */ 00051 00052 int exactL_list(double *r, int N, double *H, double *b, double *a); 00053 /* N values r[0] > r[1] > ... > r[N-1] (_decreasing_) 00054 assumes r, H, b, a are _allocated_ length N arrays */ 00055 /* uses defaults EPS_ABS=1.0e-12, EPS_REL=0.0, ode_method=1 (RK Cash-Karp) */ 00056 00057 #ifdef __cplusplus 00058 } 00059 #endif 00060 00061 00062 #endif /* __exactTestL_h */ 00063
1.7.3