PISM, A Parallel Ice Sheet Model stable 0.4.1779

src/coupler/PSElevation.hh

Go to the documentation of this file.
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_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines