|
PISM, A Parallel Ice Sheet Model stable 0.4.1779
|
00001 // Copyright (C) 2011 Andy Aschwanden and Constantine Khroulev 00002 // 00003 // This file is part of PISM. 00004 // 00005 // PISM is free software; you can redistribute it and/or modify it under the 00006 // terms of the GNU General Public License as published by the Free Software 00007 // Foundation; either version 2 of the License, or (at your option) any later 00008 // version. 00009 // 00010 // PISM is distributed in the hope that it will be useful, but WITHOUT ANY 00011 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00012 // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 00013 // details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with PISM; if not, write to the Free Software 00017 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00018 00019 #ifndef _PSELEVATION_H_ 00020 #define _PSELEVATION_H_ 00021 00022 #include "PISMSurface.hh" 00023 #include "iceModelVec2T.hh" 00024 00026 00027 class PSElevation : public PISMSurfaceModel { 00028 public: 00029 PSElevation(IceGrid &g, const NCConfigVariable &conf) 00030 : PISMSurfaceModel(g, conf) 00031 {}; 00032 00033 virtual PetscErrorCode init(PISMVars &vars); 00035 virtual void attach_atmosphere_model(PISMAtmosphereModel *input) 00036 { delete input; } 00037 00038 // Does not have an atmosphere model. 00039 virtual void get_diagnostics(map<string, PISMDiagnostic*> &/*dict*/) {} 00040 00041 virtual PetscErrorCode update(PetscReal t_years, PetscReal dt_years) 00042 { t = t_years; dt = dt_years; return 0; } // do nothing 00043 virtual PetscErrorCode ice_surface_mass_flux(IceModelVec2S &result); 00044 virtual PetscErrorCode ice_surface_temperature(IceModelVec2S &result); 00045 virtual PetscErrorCode define_variables(set<string> vars, const NCTool &nc, nc_type nctype); 00046 virtual PetscErrorCode write_variables(set<string> vars, string filename); 00047 virtual void add_vars_to_output(string keyword, set<string> &result); 00048 protected: 00049 NCSpatialVariable acab, artm; 00050 IceModelVec2S *usurf; 00051 PetscReal artm_min, artm_max, 00052 z_artm_min, z_artm_max, 00053 acab_min, acab_max, acab_limit_min, acab_limit_max, 00054 z_acab_min, z_ELA, z_acab_max; 00055 PetscTruth elev_artm_set, elev_acab_set, acab_limits_set; 00056 00057 }; 00058 00059 #endif /* _PSELEVATION_H_ */
1.7.3