Changeset 25724


Ignore:
Timestamp:
10/29/20 14:32:42 (4 years ago)
Author:
Eric.Larour
Message:

CHG changes.

Location:
issm/branches/trunk-larour-SLPS2020/src
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • issm/branches/trunk-larour-SLPS2020/src/c/analyses/SealevelriseAnalysis.cpp

    r25566 r25724  
    202202        parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.settings.computesealevelchange",SolidearthSettingsComputesealevelchangeEnum));
    203203        parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.planetradius",SolidearthPlanetRadiusEnum));
     204        parameters->AddObject(iomodel->CopyConstantObject("md.solidearth.settings.glfraction",SolidearthSettingsGlfractionEnum));
    204205        parameters->AddObject(new DoubleParam(CumBslrEnum,0.0));
    205206        parameters->AddObject(new DoubleParam(CumBslrIceEnum,0.0));
  • issm/branches/trunk-larour-SLPS2020/src/c/classes/Elements/Tria.cpp

    r25566 r25724  
    56655665        bool scaleoceanarea= false;
    56665666        bool computeelastic= true;
     5667        int  glfraction=1;
    56675668
    56685669        /*output: */
     
    57115712        this->parameters->FindParam(&computeelastic,SolidearthSettingsElasticEnum);
    57125713        this->parameters->FindParam(&scaleoceanarea,SolidearthSettingsOceanAreaScalingEnum);
     5714        this->parameters->FindParam(&glfraction,SolidearthSettingsGlfractionEnum);
    57135715
    57145716        /*retrieve precomputed G:*/
     
    57245726
    57255727                phi=this->GetGroundedPortion(&xyz_list[0][0]); //watch out, this only works because of the Thales theorem! We are in 3D, but this routine is inherently for 2D trias
     5728                #ifdef _ISSM_DEBUG_
     5729                this->AddInput2(SealevelEustaticMaskEnum,&phi,P0Enum);
     5730                #endif
     5731                if(glfraction==0)phi=1;
    57265732        }
    57275733        else phi=1.0;
     
    57605766        /*Compute barystatic contribution:*/
    57615767        _assert_(oceanarea>0.);
     5768
    57625769        if(scaleoceanarea) oceanarea=3.619e+14; // use true ocean area, m^2
    57635770        bslrice = rho_ice*area*phi*I/(oceanarea*rho_water);
  • issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/Enum.vim

    r25596 r25724  
    342342syn keyword cConstant SealevelriseGElasticEnum
    343343syn keyword cConstant SolidearthSettingsComputesealevelchangeEnum
     344syn keyword cConstant SolidearthSettingsGlfractionEnum
    344345syn keyword cConstant SolidearthSettingsRunFrequencyEnum
    345346syn keyword cConstant SealevelriseHElasticEnum
     
    14651466syn keyword cType PowerVariogram
    14661467syn keyword cType Profiler
    1467 syn keyword cType QmuStatisticsMethod
    14681468syn keyword cType Quadtree
    14691469syn keyword cType Radar
  • issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/EnumDefinitions.h

    r25596 r25724  
    336336        SealevelriseGElasticEnum,
    337337        SolidearthSettingsComputesealevelchangeEnum,
     338        SolidearthSettingsGlfractionEnum,
    338339        SolidearthSettingsRunFrequencyEnum,
    339340        SealevelriseHElasticEnum,
  • issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/EnumToStringx.cpp

    r25596 r25724  
    344344                case SealevelriseGElasticEnum : return "SealevelriseGElastic";
    345345                case SolidearthSettingsComputesealevelchangeEnum : return "SolidearthSettingsComputesealevelchange";
     346                case SolidearthSettingsGlfractionEnum : return "SolidearthSettingsGlfraction";
    346347                case SolidearthSettingsRunFrequencyEnum : return "SolidearthSettingsRunFrequency";
    347348                case SealevelriseHElasticEnum : return "SealevelriseHElastic";
  • issm/branches/trunk-larour-SLPS2020/src/c/shared/Enum/StringToEnumx.cpp

    r25596 r25724  
    350350              else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum;
    351351              else if (strcmp(name,"SolidearthSettingsComputesealevelchange")==0) return SolidearthSettingsComputesealevelchangeEnum;
     352              else if (strcmp(name,"SolidearthSettingsGlfraction")==0) return SolidearthSettingsGlfractionEnum;
    352353              else if (strcmp(name,"SolidearthSettingsRunFrequency")==0) return SolidearthSettingsRunFrequencyEnum;
    353354              else if (strcmp(name,"SealevelriseHElastic")==0) return SealevelriseHElasticEnum;
     
    382383              else if (strcmp(name,"SmbDpermil")==0) return SmbDpermilEnum;
    383384              else if (strcmp(name,"SmbDsnowIdx")==0) return SmbDsnowIdxEnum;
    384               else if (strcmp(name,"SmbCldFrac")==0) return SmbCldFracEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"SmbDelta18o")==0) return SmbDelta18oEnum;
     388              if (strcmp(name,"SmbCldFrac")==0) return SmbCldFracEnum;
     389              else if (strcmp(name,"SmbDelta18o")==0) return SmbDelta18oEnum;
    389390              else if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum;
    390391              else if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
     
    505506              else if (strcmp(name,"BalancethicknessOmega0")==0) return BalancethicknessOmega0Enum;
    506507              else if (strcmp(name,"BalancethicknessOmega")==0) return BalancethicknessOmegaEnum;
    507               else if (strcmp(name,"BalancethicknessThickeningRate")==0) return BalancethicknessThickeningRateEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"BasalCrevasse")==0) return BasalCrevasseEnum;
     511              if (strcmp(name,"BalancethicknessThickeningRate")==0) return BalancethicknessThickeningRateEnum;
     512              else if (strcmp(name,"BasalCrevasse")==0) return BasalCrevasseEnum;
    512513              else if (strcmp(name,"BasalforcingsFloatingiceMeltingRate")==0) return BasalforcingsFloatingiceMeltingRateEnum;
    513514              else if (strcmp(name,"BasalforcingsGeothermalflux")==0) return BasalforcingsGeothermalfluxEnum;
     
    628629              else if (strcmp(name,"NGiaRate")==0) return NGiaRateEnum;
    629630              else if (strcmp(name,"UGia")==0) return UGiaEnum;
    630               else if (strcmp(name,"UGiaRate")==0) return UGiaRateEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"Gradient")==0) return GradientEnum;
     634              if (strcmp(name,"UGiaRate")==0) return UGiaRateEnum;
     635              else if (strcmp(name,"Gradient")==0) return GradientEnum;
    635636              else if (strcmp(name,"GroundinglineHeight")==0) return GroundinglineHeightEnum;
    636637              else if (strcmp(name,"HydraulicPotential")==0) return HydraulicPotentialEnum;
     
    751752              else if (strcmp(name,"SmbAccumulation")==0) return SmbAccumulationEnum;
    752753              else if (strcmp(name,"SmbAini")==0) return SmbAiniEnum;
    753               else if (strcmp(name,"SmbBMax")==0) return SmbBMaxEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"SmbBMin")==0) return SmbBMinEnum;
     757              if (strcmp(name,"SmbBMax")==0) return SmbBMaxEnum;
     758              else if (strcmp(name,"SmbBMin")==0) return SmbBMinEnum;
    758759              else if (strcmp(name,"SmbBNeg")==0) return SmbBNegEnum;
    759760              else if (strcmp(name,"SmbBPos")==0) return SmbBPosEnum;
     
    874875              else if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;
    875876              else if (strcmp(name,"SurfaceSlopeX")==0) return SurfaceSlopeXEnum;
    876               else if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"Temperature")==0) return TemperatureEnum;
     880              if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum;
     881              else if (strcmp(name,"Temperature")==0) return TemperatureEnum;
    881882              else if (strcmp(name,"TemperaturePDD")==0) return TemperaturePDDEnum;
    882883              else if (strcmp(name,"TemperaturePicard")==0) return TemperaturePicardEnum;
     
    997998              else if (strcmp(name,"Outputdefinition86")==0) return Outputdefinition86Enum;
    998999              else if (strcmp(name,"Outputdefinition87")==0) return Outputdefinition87Enum;
    999               else if (strcmp(name,"Outputdefinition88")==0) return Outputdefinition88Enum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"Outputdefinition89")==0) return Outputdefinition89Enum;
     1003              if (strcmp(name,"Outputdefinition88")==0) return Outputdefinition88Enum;
     1004              else if (strcmp(name,"Outputdefinition89")==0) return Outputdefinition89Enum;
    10041005              else if (strcmp(name,"Outputdefinition8")==0) return Outputdefinition8Enum;
    10051006              else if (strcmp(name,"Outputdefinition90")==0) return Outputdefinition90Enum;
     
    11201121              else if (strcmp(name,"Free")==0) return FreeEnum;
    11211122              else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
    1122               else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"FrontalForcingsDefault")==0) return FrontalForcingsDefaultEnum;
     1126              if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
     1127              else if (strcmp(name,"FrontalForcingsDefault")==0) return FrontalForcingsDefaultEnum;
    11271128              else if (strcmp(name,"FrontalForcingsRignot")==0) return FrontalForcingsRignotEnum;
    11281129              else if (strcmp(name,"Fset")==0) return FsetEnum;
     
    12431244              else if (strcmp(name,"MismipFloatingMeltRate")==0) return MismipFloatingMeltRateEnum;
    12441245              else if (strcmp(name,"Moulin")==0) return MoulinEnum;
    1245               else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
    12461246         else stage=11;
    12471247   }
    12481248   if(stage==11){
    1249               if (strcmp(name,"Mpi")==0) return MpiEnum;
     1249              if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
     1250              else if (strcmp(name,"Mpi")==0) return MpiEnum;
    12501251              else if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
    12511252              else if (strcmp(name,"Mumps")==0) return MumpsEnum;
     
    13661367              else if (strcmp(name,"TotalGroundedBmb")==0) return TotalGroundedBmbEnum;
    13671368              else if (strcmp(name,"TotalGroundedBmbScaled")==0) return TotalGroundedBmbScaledEnum;
    1368               else if (strcmp(name,"TotalSmb")==0) return TotalSmbEnum;
    13691369         else stage=12;
    13701370   }
    13711371   if(stage==12){
    1372               if (strcmp(name,"TotalSmbScaled")==0) return TotalSmbScaledEnum;
     1372              if (strcmp(name,"TotalSmb")==0) return TotalSmbEnum;
     1373              else if (strcmp(name,"TotalSmbScaled")==0) return TotalSmbScaledEnum;
    13731374              else if (strcmp(name,"TransientArrayParam")==0) return TransientArrayParamEnum;
    13741375              else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
  • issm/branches/trunk-larour-SLPS2020/src/m/classes/organizer.m

    r25120 r25724  
    156156                        error(['Could not find ' path ]);
    157157                end%}}}
     158                function loaddatanoprefix(org,string),% {{{
     159
     160                        %Get model path
     161                        if ~ischar(string), error('argument provided is not a string'); end
     162                        path=[org.repository '/' string];
     163
     164                        %figure out if the data is there, otherwise, we have to use the default path supplied by user.
     165                        if exist(path,'file'),
     166                                path=path;
     167                        elseif exist([path '.mat'],'file'),
     168                                path=[path '.mat'];
     169                        else
     170                                error(['Could not find ' path ]);
     171                        end
     172                        if exist(path,'file')
     173                                evalin('caller',['load -mat ' path]);
     174                                return;
     175                        end
     176
     177                        %If we are here, the data has not been found.
     178                        error(['Could not find ' path ]);
     179                end%}}}
    158180                function bool=perform(org,varargin) % {{{
    159181
     
    254276                        eval(['save(''' name '''' variables ',''-v7.3'');']);
    255277                end%}}}
     278                function savedatanoprefix(org,varargin) % {{{
     279
     280                        %check
     281                        if (org.currentstep==0), error('Cannot save data because organizer (org) is empty! Make sure you did not skip any perform call'); end
     282                        if (org.currentstep>length(org.steps)), error('Cannot save data because organizer (org) is not up to date!'); end
     283
     284                        name=[org.repository '/' org.steps(org.currentstep).string ];
     285                        disp(['saving data in: ' name]);
     286
     287                        %Skip if requested
     288                        if org.skipio,
     289                                disp(['WARNING: Skipping saving ' name]);
     290                                return;
     291                        end
     292
     293                        %check that md is a model
     294                        if (org.currentstep>length(org.steps)), error(['organizer error message: element with id ' num2str(org.currentstep) ' not found']); end
     295
     296                        %list of variable names:
     297                        variables='';
     298                        for i=2:nargin,
     299                                variables=[variables ',' '''' inputname(i) ''''];
     300                                eval([inputname(i) '= varargin{' num2str(i-1) '};']);
     301                        end
     302                        eval(['save(''' name '''' variables ',''-v7.3'');']);
     303                end%}}}
    256304        end
    257305end
  • issm/branches/trunk-larour-SLPS2020/src/m/classes/solidearthsettings.m

    r25151 r25724  
    1717                degacc                 = 0; %degree increment for resolution of Green tables
    1818                horiz                  = 0; %compute horizontal deformation
     19                glfraction             = 1; %barystatic contribution full or fractional (default fractional)
    1920        end
    2021        methods
     
    4849                %how many time steps we skip before we run solidearthsettings solver during transient
    4950                self.runfrequency=1;
     51               
     52                %fractional contribution:
     53                self.glfraction=1;
    5054       
    5155                %horizontal displacement?  (not by default)
     
    6367                        md = checkfield(md,'fieldname','solidearth.settings.degacc','size',[1 1],'>=',1e-10);
    6468                        md = checkfield(md,'fieldname','solidearth.settings.horiz','NaN',1,'Inf',1,'values',[0 1]);
     69                        md = checkfield(md,'fieldname','solidearth.settings.glfraction','values',[0 1]);
    6570
    6671                        %a coupler to a planet model is provided.
     
    9196                        fielddisplay(self,'rotation','earth rotational potential perturbation');
    9297                        fielddisplay(self,'degacc','accuracy (default .01 deg) for numerical discretization of the Green''s functions');
     98                        fielddisplay(self,'glfraction','contribute fractionally (default, 1) to barystatic sea level');
    9399                end % }}}
    94100                function marshall(self,prefix,md,fid) % {{{
     
    104110                        WriteData(fid,prefix,'object',self,'fieldname','horiz','name','md.solidearth.settings.horiz','format','Integer');
    105111                        WriteData(fid,prefix,'object',self,'fieldname','computesealevelchange','name','md.solidearth.settings.computesealevelchange','format','Integer');
     112                        WriteData(fid,prefix,'object',self,'fieldname','glfraction','name','md.solidearth.settings.glfraction','format','Integer');
    106113                end % }}}
    107114                function savemodeljs(self,fid,modelname) % {{{
     
    116123                        writejsdouble(fid,[modelname '.slr.settings.run_frequency'],self.run_frequency);
    117124                        writejsdouble(fid,[modelname '.slr.settings.degacc'],self.degacc);
     125                        writejsdouble(fid,[modelname '.slr.settings.glfraction'],self.glfraction);
    118126                end % }}}
    119127                function self = extrude(self,md) % {{{
  • issm/branches/trunk-larour-SLPS2020/src/m/contrib/larour/glacier_inventory.m

    r25588 r25724  
    183183                        %Go through O2 regions:
    184184                        for i=subsetregions,
     185                        %for i=33,
    185186                                string=self.boxes(i).RGI_CODE;
    186187                                disp(['progressing with region ' num2str(i) ' ' string]);
     
    208209                                                case 19, radius=60;
    209210                                                case 32, radius=60;
    210                                                 case 33, radius=5;
     211                                                case 33, radius=10;
    211212                                                case 41, radius=75;
    212213                                                case 42, radius=45;
  • issm/branches/trunk-larour-SLPS2020/src/m/contrib/larour/ismip6.m

    r25272 r25724  
    1313                directories    = {};   %directories where the files are
    1414                experiments    = {};   %names of experiments
     15                base           = {};   %placeholder for base
     16                surface        = {};   %placeholder for surface
    1517                thickness      = {};   %placeholder for thicknesses
    1618                deltathickness = {};   %placeholder for delta thicknesses
     19                deltathicknessvaf = {};   %placeholder for delta thicknesses above floatation
     20                deltathicknesshal = {};   %placeholder for delta thicknesses halosteric origins
     21                deltathicknessbar = {};   %placeholder for delta thicknesses halosteric origins
     22                thicknesscorrection={}; 
    1723                icemask        = {};   %placeholder for ice masks
    1824                oceanmask      = {};   %placeholder for ocean masks
     
    2026                timestart      = {};   %placeholder for times
    2127                calendar      = {};   %placeholder for times
     28                di            = {}; %ice densities
    2229        end
    2330        methods
     
    146153                        end
    147154
     155                        if ~exist('timestart','var'), timestart=2015; end
     156                        if ~exist('calendar','var'), calendar=0; end
     157
    148158                end % }}}
    149159                function info=readinfo(self,experiment,field) % {{{
     
    203213
    204214                                %map onto mesh: correct only for thicknesses
    205                                 hg=ismip2mesh_correction.*(ismip2mesh*ht) ;
     215                                if strcmpi(field,'lithk') | strcmpi(field,'orog') | strcmpi(field,'base'),
     216                                        hg=ismip2mesh_correction.*(ismip2mesh*ht) ;
     217                                        %hg=ismip2mesh*ht ;
     218                                else
     219                                        hg=ismip2mesh*ht ;
     220                                end
    206221
    207222                                %keep field:
     
    209224                                        pos=find(isnan(hg)); hg(pos)=0;
    210225                                        self.thickness{i}=hg;
     226                                end
     227                                if strcmpi(field,'orog'),
     228                                        pos=find(isnan(hg)); hg(pos)=0;
     229                                        self.surface{i}=hg;
     230                                end
     231                                if strcmpi(field,'base'),
     232                                        pos=find(isnan(hg)); hg(pos)=0;
     233                                        self.base{i}=hg;
    211234                                end
    212235                                if strcmpi(field,'sftgif'),
     
    220243                                end
    221244                                if strcmpi(field,'sftgrf'),
    222                                         hge=-ones(md.mesh.numberofvertices,size(hg,2));
     245                                        hgv=-ones(md.mesh.numberofvertices,size(hg,2));
    223246                                        for j=1:size(hg,2),
    224247                                                hgj=hg(:,j);
    225                                                 pos=find(hgj>0);
    226                                                 hge(md.mesh.elements(pos,:),j)=1;
    227                                         end
    228                                         self.oceanmask{i}=hge;
     248                                                pos=find(hgj>.99); %we want fully grounded
     249                                                %pos=find(hgj>0); %we want slightly grounded
     250                                                hgv(md.mesh.elements(pos,:),j)=1;
     251                                        end
     252                                        self.oceanmask{i}=hgv;
    229253                                end
    230254
  • issm/branches/trunk-larour-SLPS2020/src/m/contrib/larour/legendd.m

    r24457 r25724  
    2020        nl=length(strings);
    2121        for i=1:nl,
    22                 l=line([x+w/6 x+w/3],[y+(nl+1-i)*h/(nl+1) y+(nl+1-i)*h/(nl+1)]);
     22                l=line([x+w/20 x+w/4],[y+(nl+1-i)*h/(nl+1) y+(nl+1-i)*h/(nl+1)]);
    2323                set(l,'Color',colors{i});
    2424                set(l,'LineWidth',linewidth);
    25                 text(x+1.3*w/3,y+(nl+1-i)*h/(nl+1),strings{i},'FontSize',fontsize);
     25                text(x+1.3*w/5,y+(nl+1-i)*h/(nl+1),strings{i},'FontSize',fontsize);
    2626        end
    2727
  • issm/branches/trunk-larour-SLPS2020/src/m/contrib/larour/mme_autotime_correlation_matrix.m

    r25618 r25724  
    1 function matrix=mme_time_correlation_matrix(mme,varargin);
     1function matrix=mme_autotime_correlation_matrix(mme,type)
    22
    3         if nargin==2,
    4                 type=varargin{1};
    5         elseif nargin==3,
    6                 mme2=varargin{1};
    7                 type=varargin{2};
    8         else
    9                 error('mme_time_correlation_matrix usage error: 2 or 3 arguments only allowed!');
     3
     4        %Out of a multi model ensemble (nsamples x nsteps) of runs, build
     5        %a temporal correlation matrix (of size nsteps x nsteps)
     6
     7        nsamples=size(mme,1);
     8        nsteps=size(mme,2);
     9
     10        %initialize with 1 in the diagonal:
     11        matrix=eye(nsteps,nsteps);
     12
     13        %go through time steps, and fill up the top part.
     14        for i=1:nsteps,
     15                for j=i+1:nsteps,
     16                        matrix(i,j)=corr(mme(:,i),mme(:,j),'Type',type);
     17                        matrix(j,i)=matrix(i,j);
     18                end
    1019        end
    1120
    12         if nargin==2,
    13 
    14                 %Out of a multi model ensemble (nsamples x nsteps) of runs, build
    15                 %a temporal correlation matrix (of size nsteps x nsteps)
    16 
    17                 nsamples=size(mme,1);
    18                 nsteps=size(mme,2);
    19 
    20                 %initialize with 1 in the diagonal:
    21                 matrix=eye(nsteps,nsteps);
    22 
    23                 %go through time steps, and fill up the top part.
    24                 for i=1:nsteps,
    25                         for j=i+1:nsteps,
    26                                 matrix(i,j)=corr(mme(:,i),mme(:,j),'Type',type);
    27                                 matrix(j,i)=matrix(i,j);
    28                         end
    29                 end
    30         else
    31 
    32                 %Same kind of computations, except it's not autocorrelation:
    33                 nsamples=size(mme,1); nsamples2=size(mme2,1);
    34                 nsteps=size(mme,2); nsteps2=size(mme2,2);
    35 
    36                 if nsteps2~=nsteps,
    37                         error('number of time steps from both sample matrices should be identical!');
    38                 end
    39                 if nsamples2~=nsamples,
    40                         error('number of samples from both sample matrices should be identical!');
    41                 end
    42 
    43                 %initialize with 1 in the diagonal:
    44                 matrix=zeros(nsteps,nsteps);
    45 
    46                 %go through time steps, and fill up the top part.
    47                 for i=1:nsteps,
    48                         for j=i:nsteps,
    49                                 matrix(i,j)=corr(mme(:,i),mme2(:,j),'Type',type);
    50                                 matrix(j,i)=matrix(i,j);
    51                         end
    52                 end
    53         end
  • issm/branches/trunk-larour-SLPS2020/src/m/interp/averaging.m

    r17686 r25724  
    6161elseif dimension(md.mesh)==2,
    6262        rep=3;
    63         areas=GetAreas(index,md.mesh.x,md.mesh.y);
     63        if isa(md.mesh,'mesh3dsurface'),
     64                areas=GetAreas3DTria(md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.z);
     65        else
     66                areas=GetAreas(index,md.mesh.x,md.mesh.y);
     67        end
    6468else
    6569        rep=3;
  • issm/branches/trunk-larour-SLPS2020/src/m/mesh/FixMesh.m

    r13646 r25724  
    1 function  [index2 x2 y2 value2]=FixMesh(index,x,y,value)
     1function  [index2 x2 y2 value2 newpos]=FixMesh(index,x,y,value)
    22% FIXMESH - FixMesh fix mesh with broken triangles, orphan vertices, etc ...
    33%
     
    1515y2=y;
    1616value2=value;
     17newpos=1:length(x);
    1718
    1819%First, look for orphan vertices, and take them out.
     
    2930        y2(orphan)=[];
    3031        value2(orphan)=[];
     32        newpos(orphan)=[];
    3133
    3234        %now, the index:
  • issm/branches/trunk-larour-SLPS2020/src/m/plot/processdatalatlong.m

    r25587 r25724  
    2222                %interpolate data:
    2323                extradata=griddata(x0,y0,data,xextra,yextra,'nearest');
    24 
    2524                data=[data; extradata];
    2625        elseif length(data)==length(md.mesh.elements),
    27                 error('processdatalatlong error message: coord ''latlong'' case not covered for element data ');
    2826                datatype=1;
    2927        end
  • issm/branches/trunk-larour-SLPS2020/src/m/units/sletogt.m

    r24888 r25724  
    11function conversionfactor=sletogt()
    2        
    3         conversionfactor=361.9;  %361.9 Gigatons to 1 mm sea-level equivalent.
     2
     3        rho_water=1023;
     4        conversionfactor=rho_water/1000*361.9; %361.9 Gigatons to 1 mm sea-level equivalent.
Note: See TracChangeset for help on using the changeset viewer.