Changeset 21000


Ignore:
Timestamp:
07/26/16 14:44:16 (9 years ago)
Author:
adhikari
Message:

CHG: added capabilities to compute absolute sea level and 3D crustal motion

Location:
issm/trunk-jpl/src/m
Files:
6 added
5 edited

Legend:

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

    r20919 r21000  
    4343                        md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1);
    4444                        md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1);
     45                        md = checkfield(md,'fieldname','slr.love_l','NaN',1,'Inf',1);
    4546                        md = checkfield(md,'fieldname','slr.tide_love_h','NaN',1,'Inf',1);
    4647                        md = checkfield(md,'fieldname','slr.tide_love_k','NaN',1,'Inf',1);
     
    5253                       
    5354                        //check that love numbers are provided at the same level of accuracy:
    54                         if (this.love_h.length != this.love_k.length){
     55                        if (this.love_h.length != this.love_k.length || this.love_h.length != this.love_l.length){
    5556                                throw Error('slr error message: love numbers should be provided at the same level of accuracy');
    5657                        }
     
    7273                fielddisplay(this,'abstol','sea level rise absolute convergence criterion, NaN: not applied');
    7374                fielddisplay(this,'maxiter','maximum number of nonlinear iterations');
    74                 fielddisplay(this,'love_h','love load number for radial displacement');
    75                 fielddisplay(this,'love_k','love load number for gravitational potential perturbation');
     75                fielddisplay(this,'love_h','load Love number for radial displacement');
     76                fielddisplay(this,'love_k','load Love number for gravitational potential perturbation');
     77                fielddisplay(this,'love_l','load Love number for horizontal displacements');
    7678                fielddisplay(this,'tide_love_h','tidal love number (degree 2)');
    7779                fielddisplay(this,'tide_love_k','tidal love number (degree 2)');
     
    9294                        WriteData(fid,prefix,'object',this,'fieldname','love_h','format','DoubleMat','mattype',1);
    9395                        WriteData(fid,prefix,'object',this,'fieldname','love_k','format','DoubleMat','mattype',1);
     96                        WriteData(fid,prefix,'object',this,'fieldname','love_l','format','DoubleMat','mattype',1);
    9497                        WriteData(fid,prefix,'object',this,'fieldname','tide_love_h','format','Double');
    9598                        WriteData(fid,prefix,'object',this,'fieldname','tide_love_k','format','Double');
     
    119122                        this.love_h=NullFix(this.love_h,NaN);
    120123                        this.love_k=NullFix(this.love_k,NaN);
     124                        this.love_l=NullFix(this.love_l,NaN);
    121125                        this.tide_love_h=NullFix(this.tide_love_h,NaN);
    122126                        this.tide_love_k=NullFix(this.tide_love_k,NaN);
     
    135139        this.love_h         = 0; //provided by PREM model
    136140        this.love_k         = 0; //idam
     141        this.love_l         = 0; //idam
    137142        this.tide_love_h    = 0;
    138143        this.tide_love_k    = 0;
  • issm/trunk-jpl/src/m/classes/slr.m

    r20902 r21000  
    1313                love_h         = 0; %provided by PREM model
    1414                love_k         = 0; %ideam
     15                love_l         = 0; %ideam
    1516                tide_love_k    = 0; %ideam
    1617                tide_love_h    = 0; %ideam
     
    6667                        md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1);
    6768                        md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1);
     69                        md = checkfield(md,'fieldname','slr.love_l','NaN',1,'Inf',1);
    6870                        md = checkfield(md,'fieldname','slr.tide_love_h','NaN',1,'Inf',1);
    6971                        md = checkfield(md,'fieldname','slr.tide_love_k','NaN',1,'Inf',1);
    70                         md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1);
    7172                        md = checkfield(md,'fieldname','slr.reltol','size',[1 1]);
    7273                        md = checkfield(md,'fieldname','slr.abstol','size',[1 1]);
     
    7677
    7778                        %check that love numbers are provided at the same level of accuracy:
    78                         if (size(self.love_h,1) ~= size(self.love_k,1)),
     79                        if (size(self.love_h,1)~=size(self.love_k,1) | size(self.love_h,1)~=size(self.love_l,1)),
    7980                                error('slr error message: love numbers should be provided at the same level of accuracy');
    8081                        end
     
    100101                        fielddisplay(self,'abstol','sea level rise absolute convergence criterion, NaN: not applied');
    101102                        fielddisplay(self,'maxiter','maximum number of nonlinear iterations');
    102                         fielddisplay(self,'love_h','love load number for radial displacement');
    103                         fielddisplay(self,'love_k','love load number for gravitational potential perturbation');
    104                         fielddisplay(self,'tide_love_k','tidal love number (deg 2)');
    105                         fielddisplay(self,'tide_love_h','tidal love number (deg 2)');
     103                        fielddisplay(self,'love_h','load Love number for radial displacement');
     104                        fielddisplay(self,'love_k','load Love number for gravitational potential perturbation');
     105                        fielddisplay(self,'love_l','load Love number for horizontal displacements');
     106                        fielddisplay(self,'tide_love_k','tidal load Love number (deg 2)');
     107                        fielddisplay(self,'tide_love_h','tidal load Love number (deg 2)');
    106108                        fielddisplay(self,'rotation','earth rotational potential perturbation');
    107109                        fielddisplay(self,'rigid','rigid earth graviational potential perturbation');
     
    120122                        WriteData(fid,prefix,'object',self,'fieldname','love_h','format','DoubleMat','mattype',1);
    121123                        WriteData(fid,prefix,'object',self,'fieldname','love_k','format','DoubleMat','mattype',1);
     124                        WriteData(fid,prefix,'object',self,'fieldname','love_l','format','DoubleMat','mattype',1);
    122125                        WriteData(fid,prefix,'object',self,'fieldname','tide_love_h','format','Double');
    123126                        WriteData(fid,prefix,'object',self,'fieldname','tide_love_k','format','Double');
     
    147150                        writejs1Darray(fid,[modelname '.slr.love_h'],self.love_h);
    148151                        writejs1Darray(fid,[modelname '.slr.love_k'],self.love_k);
     152                        writejs1Darray(fid,[modelname '.slr.love_l'],self.love_l);
    149153                        writejsdouble(fid,[modelname '.slr.tide_love_k'],self.tide_love_k);
    150154                        writejsdouble(fid,[modelname '.slr.tide_love_h'],self.tide_love_h);
  • issm/trunk-jpl/src/m/classes/slr.py

    r20902 r21000  
    2323                self.love_h             = 0 #provided by PREM model()
    2424                self.love_k             = 0 #ideam
     25                self.love_l             = 0 #ideam
    2526                self.tide_love_h        = 0
    2627                self.tide_love_k        = 0
     
    4142                        string="%s\n%s"%(string,fielddisplay(self,'abstol','sea level rise absolute convergence criterion, NaN: not applied'))
    4243                        string="%s\n%s"%(string,fielddisplay(self,'maxiter','maximum number of nonlinear iterations'))
    43                         string="%s\n%s"%(string,fielddisplay(self,'love_h','love load number for radial displacement'))
    44                         string="%s\n%s"%(string,fielddisplay(self,'love_k','love load number for gravitational potential perturbation'))
    45                         string="%s\n%s"%(string,fielddisplay(self,'tide_love_k','tidal love load number (degree 2)'))
    46                         string="%s\n%s"%(string,fielddisplay(self,'tide_love_h','tidal love load number (degree 2)'))
     44                        string="%s\n%s"%(string,fielddisplay(self,'love_h','load Love number for radial displacement'))
     45                        string="%s\n%s"%(string,fielddisplay(self,'love_k','load Love number for gravitational potential perturbation'))
     46                        string="%s\n%s"%(string,fielddisplay(self,'love_l','load Love number for horizontal displaements'))
     47                        string="%s\n%s"%(string,fielddisplay(self,'tide_love_k','tidal load Love number (degree 2)'))
     48                        string="%s\n%s"%(string,fielddisplay(self,'tide_love_h','tidal load Love number (degree 2)'))
    4749                        string="%s\n%s"%(string,fielddisplay(self,'rigid','rigid earth graviational potential perturbation'))
    4850                        string="%s\n%s"%(string,fielddisplay(self,'elastic','elastic earth graviational potential perturbation'))
     
    9597                md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1)
    9698                md = checkfield(md,'fieldname','slr.love_k','NaN',1,'Inf',1)
     99                md = checkfield(md,'fieldname','slr.love_l','NaN',1,'Inf',1)
    97100                md = checkfield(md,'fieldname','slr.tide_love_h','NaN',1,'Inf',1)
    98101                md = checkfield(md,'fieldname','slr.tide_love_k','NaN',1,'Inf',1)
     
    104107
    105108                #check that love numbers are provided at the same level of accuracy:
    106                 if (size(self.love_h,0) != size(self.love_k,0)):
     109                if (size(self.love_h,0) != size(self.love_k,0) | size(self.love_h,0) != size(self.love_l,0)):
    107110                        error('slr error message: love numbers should be provided at the same level of accuracy')
    108                
    109111                return md
    110112        # }}}
     
    120122                WriteData(fid,prefix,'object',self,'fieldname','love_h','format','DoubleMat','mattype',1)
    121123                WriteData(fid,prefix,'object',self,'fieldname','love_k','format','DoubleMat','mattype',1)
     124                WriteData(fid,prefix,'object',self,'fieldname','love_l','format','DoubleMat','mattype',1)
    122125                WriteData(fid,prefix,'object',self,'fieldname','tide_love_h','format','Double');
    123126                WriteData(fid,prefix,'object',self,'fieldname','tide_love_k','format','Double');
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.js

    r20983 r21000  
    10021002function SealevelriseAnalysisEnum(){ return 998;}
    10031003function SealevelEnum(){ return 999;}
    1004 function SealevelEustaticEnum(){ return 1000;}
    1005 function SealevelriseDeltathicknessEnum(){ return 1001;}
    1006 function SealevelriseMaxiterEnum(){ return 1002;}
    1007 function SealevelriseReltolEnum(){ return 1003;}
    1008 function SealevelriseAbstolEnum(){ return 1004;}
    1009 function SealevelriseLoveHEnum(){ return 1005;}
    1010 function SealevelriseLoveKEnum(){ return 1006;}
    1011 function SealevelriseTideLoveHEnum(){ return 1007;}
    1012 function SealevelriseTideLoveKEnum(){ return 1008;}
    1013 function SealevelriseRigidEnum(){ return 1009;}
    1014 function SealevelriseElasticEnum(){ return 1010;}
    1015 function SealevelriseRotationEnum(){ return 1011;}
    1016 function SealevelriseGElasticEnum(){ return 1012;}
    1017 function SealevelriseDegaccEnum(){ return 1013;}
    1018 function SealevelriseTransitionsEnum(){ return 1014;}
    1019 function SealevelriseRequestedOutputsEnum(){ return 1015;}
    1020 function SealevelriseNumRequestedOutputsEnum(){ return 1016;}
    1021 function ParametersENDEnum(){ return 1017;}
    1022 function MaximumNumberOfDefinitionsEnum(){ return 1018;}
     1004function SealevelUmotionEnum(){ return 1000;}
     1005function SealevelNmotionEnum(){ return 1001;}
     1006function SealevelEmotionEnum(){ return 1002;}
     1007function SealevelAbsoluteEnum(){ return 1003;}
     1008function SealevelEustaticEnum(){ return 1004;}
     1009function SealevelriseDeltathicknessEnum(){ return 1005;}
     1010function SealevelriseMaxiterEnum(){ return 1006;}
     1011function SealevelriseReltolEnum(){ return 1007;}
     1012function SealevelriseAbstolEnum(){ return 1008;}
     1013function SealevelriseLoveHEnum(){ return 1009;}
     1014function SealevelriseLoveKEnum(){ return 1010;}
     1015function SealevelriseTideLoveHEnum(){ return 1011;}
     1016function SealevelriseTideLoveKEnum(){ return 1012;}
     1017function SealevelriseRigidEnum(){ return 1013;}
     1018function SealevelriseElasticEnum(){ return 1014;}
     1019function SealevelriseRotationEnum(){ return 1015;}
     1020function SealevelriseGElasticEnum(){ return 1016;}
     1021function SealevelriseUElasticEnum(){ return 1017;}
     1022function SealevelriseHElasticEnum(){ return 1018;}
     1023function SealevelriseDegaccEnum(){ return 1019;}
     1024function SealevelriseTransitionsEnum(){ return 1020;}
     1025function SealevelriseRequestedOutputsEnum(){ return 1021;}
     1026function SealevelriseNumRequestedOutputsEnum(){ return 1022;}
     1027function ParametersENDEnum(){ return 1023;}
     1028function MaximumNumberOfDefinitionsEnum(){ return 1024;}
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r20983 r21000  
    10091009def SealevelriseAnalysisEnum(): return StringToEnum("SealevelriseAnalysis")[0]
    10101010def SealevelEnum(): return StringToEnum("Sealevel")[0]
     1011def SealevelUmotionEnum(): return StringToEnum("SealevelUmotion")[0]
     1012def SealevelNmotionEnum(): return StringToEnum("SealevelNmotion")[0]
     1013def SealevelEmotionEnum(): return StringToEnum("SealevelEmotion")[0]
     1014def SealevelAbsoluteEnum(): return StringToEnum("SealevelAbsolute")[0]
    10111015def SealevelEustaticEnum(): return StringToEnum("SealevelEustatic")[0]
    10121016def SealevelriseDeltathicknessEnum(): return StringToEnum("SealevelriseDeltathickness")[0]
     
    10221026def SealevelriseRotationEnum(): return StringToEnum("SealevelriseRotation")[0]
    10231027def SealevelriseGElasticEnum(): return StringToEnum("SealevelriseGElastic")[0]
     1028def SealevelriseUElasticEnum(): return StringToEnum("SealevelriseUElastic")[0]
     1029def SealevelriseHElasticEnum(): return StringToEnum("SealevelriseHElastic")[0]
    10241030def SealevelriseDegaccEnum(): return StringToEnum("SealevelriseDegacc")[0]
    10251031def SealevelriseTransitionsEnum(): return StringToEnum("SealevelriseTransitions")[0]
Note: See TracChangeset for help on using the changeset viewer.