Ignore:
Timestamp:
07/20/12 16:14:40 (13 years ago)
Author:
helsen
Message:

smb gradient method added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/surfaceforcings.m

    r12663 r12677  
    99                mass_balance  = NaN;
    1010                ispdd = 0;
     11                issmbgradients = 0;
     12           hc = NaN;
     13                smb_pos_max = NaN;
     14                smb_pos_min = NaN;
     15                a_pos = NaN;
     16                b_pos = NaN;
     17                a_neg = NaN;
     18                b_neg = NaN;
    1119                monthlytemperatures = NaN;
    1220        end
     
    2432                  %pdd method not used in default mode
    2533                  obj.ispdd=0;
     34                  obj.issmbgradients=0;
    2635
    2736                end % }}}
     
    3039                        if ismember(PrognosticAnalysisEnum,analyses),
    3140                                md = checkfield(md,'surfaceforcings.ispdd','numel',1,'values',[0 1]);
     41                                checkfield(md,'surfaceforcings.issmbgradients','numel',1,'values',[0 1]);
    3242                                if(obj.ispdd)
    3343                                        md = checkfield(md,'surfaceforcings.monthlytemperatures','forcing',1,'NaN',1);
     44                                elseif(obj.issmbgradients)
     45                                        checkfield(md,'surfaceforcings.hc','forcing',1,'NaN',1);
     46                                        checkfield(md,'surfaceforcings.smb_pos_max','forcing',1,'NaN',1);
     47                                        checkfield(md,'surfaceforcings.smb_pos_min','forcing',1,'NaN',1);
     48                                        checkfield(md,'surfaceforcings.a_pos','forcing',1,'NaN',1);
     49                                        checkfield(md,'surfaceforcings.b_pos','forcing',1,'NaN',1);
     50                                        checkfield(md,'surfaceforcings.a_neg','forcing',1,'NaN',1);
     51                                        checkfield(md,'surfaceforcings.b_neg','forcing',1,'NaN',1);
    3452                                else
    3553                                        md = checkfield(md,'surfaceforcings.mass_balance','forcing',1,'NaN',1);
     
    4765                        fielddisplay(obj,'ispdd','is pdd activated (0 or 1, default is 0)');
    4866                        fielddisplay(obj,'monthlytemperatures','monthly surface temperatures required if pdd is activated');
     67                        fielddisplay(obj,'issmbgradients','is smb gradients method activated (0 or 1, default is 0)');
     68                        fielddisplay(obj,'hc',' elevation of intersection between accumulation and ablation regime required if smb gradients is activated');
     69                        fielddisplay(obj,'smb_pos_max',' maximum value of positive smb required if smb gradients is activated');
     70                        fielddisplay(obj,'smb_pos_min',' minimum value of positive smb required if smb gradients is activated');
     71                        fielddisplay(obj,'a_pos',' intercept of hs - smb regression line for accumulation regime required if smb gradients is activated');
     72                        fielddisplay(obj,'b_pos',' slope of hs - smb regression line for accumulation regime required if smb gradients is activated');
     73                        fielddisplay(obj,'a_neg',' intercept of hs - smb regression line for ablation regime required if smb gradients is activated');
     74                        fielddisplay(obj,'b_neg',' slope of hs - smb regression line for ablation regime required if smb gradients is activated');
    4975
    5076                end % }}}
     
    5682                                WriteData(fid,'object',obj,'fieldname','monthlytemperatures','format','DoubleMat','mattype',1);
    5783                        end
     84                        WriteData(fid,'object',obj,'fieldname','issmbgradients','format','Boolean');
     85                        if obj.issmbgradients,
     86                                WriteData(fid,'object',obj,'fieldname','hc','format','DoubleMat','mattype',1);
     87                                WriteData(fid,'object',obj,'fieldname','smb_pos_max','format','DoubleMat','mattype',1);
     88                                WriteData(fid,'object',obj,'fieldname','smb_pos_min','format','DoubleMat','mattype',1);
     89                                WriteData(fid,'object',obj,'fieldname','a_pos','format','DoubleMat','mattype',1);
     90                                WriteData(fid,'object',obj,'fieldname','b_pos','format','DoubleMat','mattype',1);
     91                                WriteData(fid,'object',obj,'fieldname','a_neg','format','DoubleMat','mattype',1);
     92                                WriteData(fid,'object',obj,'fieldname','b_neg','format','DoubleMat','mattype',1);
     93                        end
    5894
    5995                end % }}}
Note: See TracChangeset for help on using the changeset viewer.