source: issm/trunk/src/m/classes/basalforcings.m@ 11027

Last change on this file since 11027 was 11027, checked in by Eric.Larour, 13 years ago

merged trunk-jpl and trunk for revision 11026

File size: 2.0 KB
RevLine 
[9612]1%BASAL FORCINGS class definition
2%
3% Usage:
4% basalforcings=basalforcings();
5
6classdef basalforcings
7 properties (SetAccess=public)
[10981]8 melting_rate = NaN;
9 melting_rate_correction = NaN;
10 geothermalflux = NaN;
[9612]11 end
12 methods
13 function obj = basalforcings(varargin) % {{{
14 switch nargin
15 case 0
16 obj=setdefaultparameters(obj);
17 case 1
18 in=varargin{1};
19 if (isa(in,'numeric') & in==0),
20 % requesting templates do nothing
21 else
22 error('constructor not supported');
23 end
24 otherwise
25 error('constructor not supported');
26 end
27 end % }}}
28 function obj = setdefaultparameters(obj) % {{{
29
30 end % }}}
[9853]31 function checkconsistency(obj,md,solution,analyses) % {{{
[9739]32
[11027]33 if ismember(PrognosticAnalysisEnum,analyses) & ~(solution==TransientSolutionEnum & md.transient.isprognostic==0),
[9860]34 checkfield(md,'basalforcings.melting_rate','NaN',1,'forcing',1);
[9854]35 end
36 if ismember(BalancethicknessAnalysisEnum,analyses),
[9860]37 checkfield(md,'basalforcings.melting_rate','NaN',1,'size',[md.mesh.numberofvertices 1]);
[9854]38 end
[11027]39 if ismember(ThermalAnalysisEnum,analyses) & ~(solution==TransientSolutionEnum & md.transient.isthermal==0),
[9860]40 checkfield(md,'basalforcings.melting_rate','NaN',1,'forcing',1);
41 checkfield(md,'basalforcings.geothermalflux','NaN',1,'forcing',1,'>=',0);
[9854]42 end
[9739]43 end % }}}
[9799]44 function disp(obj) % {{{
45 disp(sprintf(' basal forcings parameters:'));
46
47 fielddisplay(obj,'melting_rate','basal melting rate (positive if melting)');
48 fielddisplay(obj,'melting_rate_correction','additional melting applied when the grounding line retreats');
49 fielddisplay(obj,'geothermalflux','geothermal heat flux [W/m^2]');
50
51 end % }}}
[10981]52 function marshall(obj,fid) % {{{
53 WriteData(fid,'object',obj,'fieldname','melting_rate','format','DoubleMat','mattype',1);
54 WriteData(fid,'object',obj,'fieldname','melting_rate_correction','format','DoubleMat','mattype',1);
55 WriteData(fid,'object',obj,'fieldname','geothermalflux','format','DoubleMat','mattype',1);
56 end % }}}
[9612]57 end
58end
Note: See TracBrowser for help on using the repository browser.