Changeset 15133


Ignore:
Timestamp:
05/29/13 09:27:03 (12 years ago)
Author:
Mathieu Morlighem
Message:

CHG: added forcinglength option so that WriteData knows whether all lines should be modified or not

Location:
issm/trunk-jpl/src/m
Files:
17 edited

Legend:

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

    r15132 r15133  
    4747                        yts=365.0*24.0*3600.0;
    4848
    49                         WriteData(fid,'object',obj,'fieldname','melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'forcing',1);
     49                        WriteData(fid,'object',obj,'fieldname','melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1)
    5050                        WriteData(fid,'object',obj,'fieldname','melting_rate_correction','format','DoubleMat','mattype',1,'scale',1./yts);
    51                         WriteData(fid,'object',obj,'fieldname','geothermalflux','format','DoubleMat','mattype',1,'forcing',1);
     51                        WriteData(fid,'object',obj,'fieldname','geothermalflux','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
    5252                end % }}}
    5353        end
  • issm/trunk-jpl/src/m/classes/basalforcings.py

    r15132 r15133  
    33from checkfield import *
    44from WriteData import *
     5import numpy
    56
    67class basalforcings(object):
     
    5051                yts=365.0*24.0*3600.0
    5152
    52                 WriteData(fid,'object',self,'fieldname','melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'forcing',1)
     53                WriteData(fid,'object',self,'fieldname','melting_rate','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1)
    5354                WriteData(fid,'object',self,'fieldname','melting_rate_correction','format','DoubleMat','mattype',1,'scale',1./yts)
    54                 WriteData(fid,'object',self,'fieldname','geothermalflux','format','DoubleMat','mattype',1,'forcing',1)
     55                WriteData(fid,'object',self,'fieldname','geothermalflux','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1)
    5556        # }}}
  • issm/trunk-jpl/src/m/classes/diagnostic.m

    r15132 r15133  
    151151                end % }}}
    152152                function marshall(obj,md,fid) % {{{
    153                         WriteData(fid,'object',obj,'fieldname','spcvx','format','DoubleMat','mattype',1,'forcing',1);
    154                         WriteData(fid,'object',obj,'fieldname','spcvy','format','DoubleMat','mattype',1,'forcing',1);
    155                         WriteData(fid,'object',obj,'fieldname','spcvz','format','DoubleMat','mattype',1,'forcing',1);
     153                        WriteData(fid,'object',obj,'fieldname','spcvx','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
     154                        WriteData(fid,'object',obj,'fieldname','spcvy','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
     155                        WriteData(fid,'object',obj,'fieldname','spcvz','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
    156156                        WriteData(fid,'object',obj,'fieldname','restol','format','Double');
    157157                        WriteData(fid,'object',obj,'fieldname','reltol','format','Double');
  • issm/trunk-jpl/src/m/classes/diagnostic.py

    r15132 r15133  
    161161        # }}}
    162162        def marshall(self,md,fid):    # {{{
    163                 WriteData(fid,'object',self,'fieldname','spcvx','format','DoubleMat','mattype',1,'forcing',1)
    164                 WriteData(fid,'object',self,'fieldname','spcvy','format','DoubleMat','mattype',1,'forcing',1)
    165                 WriteData(fid,'object',self,'fieldname','spcvz','format','DoubleMat','mattype',1,'forcing',1)
     163                WriteData(fid,'object',self,'fieldname','spcvx','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1)
     164                WriteData(fid,'object',self,'fieldname','spcvy','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1)
     165                WriteData(fid,'object',self,'fieldname','spcvz','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1)
    166166                WriteData(fid,'object',self,'fieldname','restol','format','Double')
    167167                WriteData(fid,'object',self,'fieldname','reltol','format','Double')
  • issm/trunk-jpl/src/m/classes/geometry.m

    r15132 r15133  
    5252                function marshall(obj,md,fid) % {{{
    5353                        WriteData(fid,'data',obj.surface,'format','DoubleMat','mattype',1,'enum',SurfaceEnum());
    54                         WriteData(fid,'data',obj.thickness,'format','DoubleMat','mattype',1,'enum',ThicknessEnum(),'forcing',1);
     54                        WriteData(fid,'data',obj.thickness,'format','DoubleMat','mattype',1,'enum',ThicknessEnum(),'forcinglength',md.mesh.numberofvertices+1);
    5555                        WriteData(fid,'data',obj.bed,'format','DoubleMat','mattype',1,'enum',BedEnum());
    5656                        WriteData(fid,'data',obj.bathymetry,'format','DoubleMat','mattype',1,'enum',BathymetryEnum());
  • issm/trunk-jpl/src/m/classes/geometry.py

    r15132 r15133  
    5050        def marshall(self,md,fid):    # {{{
    5151                WriteData(fid,'data',self.surface,'format','DoubleMat','mattype',1,'enum',SurfaceEnum())
    52                 WriteData(fid,'data',self.thickness,'format','DoubleMat','mattype',1,'enum',ThicknessEnum(),'forcing',1)
     52                WriteData(fid,'data',self.thickness,'format','DoubleMat','mattype',1,'enum',ThicknessEnum(),'forcinglength',md.mesh.numberofvertices+1)
    5353                WriteData(fid,'data',self.bed,'format','DoubleMat','mattype',1,'enum',BedEnum())
    5454                WriteData(fid,'data',self.bathymetry,'format','DoubleMat','mattype',1,'enum',BathymetryEnum())
  • issm/trunk-jpl/src/m/classes/hydrologydc.m

    r15132 r15133  
    147147            end
    148148
    149                         WriteData(fid,'object',obj,'fieldname','spcsediment_head','format','DoubleMat','mattype',1,'forcing',1);
     149                        WriteData(fid,'object',obj,'fieldname','spcsediment_head','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
    150150                        WriteData(fid,'object',obj,'fieldname','sediment_compressibility','format','Double');                   
    151151                        WriteData(fid,'object',obj,'fieldname','sediment_porosity','format','Double');                 
     
    154154
    155155                        if obj.isefficientlayer==1,     
    156                                 WriteData(fid,'object',obj,'fieldname','spcepl_head','format','DoubleMat','mattype',1,'forcing',1);
     156                                WriteData(fid,'object',obj,'fieldname','spcepl_head','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
    157157                                WriteData(fid,'object',obj,'fieldname','epl_compressibility','format','Double');                       
    158158                                WriteData(fid,'object',obj,'fieldname','epl_porosity','format','Double');                       
  • issm/trunk-jpl/src/m/classes/hydrologyshreve.m

    r15132 r15133  
    6161                function marshall(obj,md,fid) % {{{
    6262                        WriteData(fid,'enum',HydrologyModelEnum(),'data',HydrologyshreveEnum(),'format','Integer');
    63                         WriteData(fid,'object',obj,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'forcing',1);
     63                        WriteData(fid,'object',obj,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
    6464                        WriteData(fid,'object',obj,'fieldname','n','format','Double');
    6565                        WriteData(fid,'object',obj,'fieldname','CR','format','Double');
  • issm/trunk-jpl/src/m/classes/hydrologyshreve.py

    r15132 r15133  
    6464        def marshall(self,md,fid):    # {{{
    6565                WriteData(fid,'enum',HydrologyModelEnum(),'data',HydrologyshreveEnum(),'format','Integer');
    66                 WriteData(fid,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'forcing',1)
     66                WriteData(fid,'object',self,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1)
    6767                WriteData(fid,'object',self,'fieldname','n','format','Double')
    6868                WriteData(fid,'object',self,'fieldname','CR','format','Double')
  • issm/trunk-jpl/src/m/classes/prognostic.m

    r15132 r15133  
    6565                end % }}}
    6666                function marshall(obj,md,fid) % {{{
    67                         WriteData(fid,'object',obj,'fieldname','spcthickness','format','DoubleMat','mattype',1,'forcing',1);
     67                        WriteData(fid,'object',obj,'fieldname','spcthickness','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
    6868                        WriteData(fid,'object',obj,'fieldname','min_thickness','format','Double');
    6969                        WriteData(fid,'data',StringToEnum(obj.hydrostatic_adjustment),'format','Integer','enum',PrognosticHydrostaticAdjustmentEnum());
  • issm/trunk-jpl/src/m/classes/prognostic.py

    r15132 r15133  
    6868        # }}}
    6969        def marshall(self,md,fid):    # {{{
    70                 WriteData(fid,'object',self,'fieldname','spcthickness','format','DoubleMat','mattype',1,'forcing',1)
     70                WriteData(fid,'object',self,'fieldname','spcthickness','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1)
    7171                WriteData(fid,'object',self,'fieldname','min_thickness','format','Double')
    7272                WriteData(fid,'data',StringToEnum(self.hydrostatic_adjustment)[0],'format','Integer','enum',PrognosticHydrostaticAdjustmentEnum())
  • issm/trunk-jpl/src/m/classes/surfaceforcings.m

    r15132 r15133  
    104104                        yts=365.0*24.0*3600.0;
    105105
    106                         WriteData(fid,'object',obj,'fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'forcing',1);
    107                         WriteData(fid,'object',obj,'fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'forcing',1);
     106                        WriteData(fid,'object',obj,'fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);
     107                        WriteData(fid,'object',obj,'fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);
    108108                        WriteData(fid,'object',obj,'fieldname','ispdd','format','Boolean');
    109109                        WriteData(fid,'object',obj,'fieldname','isdelta18o','format','Boolean');
     
    118118                                        WriteData(fid,'object',obj,'fieldname','delta18o','format','DoubleMat','mattype',1);
    119119                                else
    120                                         WriteData(fid,'object',obj,'fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'forcing',1);
    121                                         WriteData(fid,'object',obj,'fieldname','precipitation','format','DoubleMat','mattype',1,'forcing',1);
     120                                        WriteData(fid,'object',obj,'fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
    122121                                end
    123122                        end
    124123                        WriteData(fid,'object',obj,'fieldname','issmbgradients','format','Boolean');
    125124                        if obj.issmbgradients,
    126                                 WriteData(fid,'object',obj,'fieldname','href','format','DoubleMat','mattype',1,'forcing',1);
    127                                 WriteData(fid,'object',obj,'fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'forcing',1);
    128                                 WriteData(fid,'object',obj,'fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'forcing',1);
    129                                 WriteData(fid,'object',obj,'fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'forcing',1);
     125                                WriteData(fid,'object',obj,'fieldname','href','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
     126                                WriteData(fid,'object',obj,'fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);
     127                                WriteData(fid,'object',obj,'fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);
     128                                WriteData(fid,'object',obj,'fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);
    130129                        end
    131130
  • issm/trunk-jpl/src/m/classes/surfaceforcings.py

    r15132 r15133  
    104104                yts=365.0*24.0*3600.0
    105105
    106                 WriteData(fid,'object',self,'fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'forcing',1)
    107                 WriteData(fid,'object',self,'fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'forcing',1)
     106                WriteData(fid,'object',self,'fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1)
     107                WriteData(fid,'object',self,'fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1)
    108108                WriteData(fid,'object',self,'fieldname','ispdd','format','Boolean')
    109109                WriteData(fid,'object',self,'fieldname','isdelta18o','format','Boolean')
     
    119119                                WriteData(fid,'object',self,'fieldname','delta18o','format','DoubleMat','mattype',1)
    120120                        else:
    121                                 WriteData(fid,'object',self,'fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'forcing',1)
    122                                 WriteData(fid,'object',self,'fieldname','precipitation','format','DoubleMat','mattype',1,'forcing',1)
     121                                WriteData(fid,'object',self,'fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1)
    123122
    124123                WriteData(fid,'object',self,'fieldname','issmbgradients','format','Boolean')
    125124
    126125                if self.issmbgradients:
    127                         WriteData(fid,'object',self,'fieldname','href','format','DoubleMat','mattype',1,'forcing',1)
    128                         WriteData(fid,'object',self,'fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'forcing',1)
    129                         WriteData(fid,'object',self,'fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'forcing',1)
    130                         WriteData(fid,'object',self,'fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'forcing',1)
     126                        WriteData(fid,'object',self,'fieldname','href','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1)
     127                        WriteData(fid,'object',self,'fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1)
     128                        WriteData(fid,'object',self,'fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1)
     129                        WriteData(fid,'object',self,'fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1)
    131130        # }}}
  • issm/trunk-jpl/src/m/classes/thermal.m

    r15132 r15133  
    6666                end % }}}
    6767                function marshall(obj,md,fid) % {{{
    68                         WriteData(fid,'object',obj,'fieldname','spctemperature','format','DoubleMat','mattype',1,'forcing',1);
     68                        WriteData(fid,'object',obj,'fieldname','spctemperature','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
    6969                        WriteData(fid,'object',obj,'fieldname','penalty_threshold','format','Integer');
    7070                        WriteData(fid,'object',obj,'fieldname','stabilization','format','Integer');
  • issm/trunk-jpl/src/m/classes/thermal.py

    r15132 r15133  
    7272        # }}}
    7373        def marshall(self,md,fid):    # {{{
    74                 WriteData(fid,'object',self,'fieldname','spctemperature','format','DoubleMat','mattype',1,'forcing',1)
     74                WriteData(fid,'object',self,'fieldname','spctemperature','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1)
    7575                WriteData(fid,'object',self,'fieldname','penalty_threshold','format','Integer')
    7676                WriteData(fid,'object',self,'fieldname','stabilization','format','Integer')
  • issm/trunk-jpl/src/m/solve/WriteData.m

    r15132 r15133  
    2424format  = getfieldvalue(options,'format');
    2525mattype = getfieldvalue(options,'mattype',0);    %only required for matrices
    26 forcing = getfieldvalue(options,'forcing',1);
     26forcinglength = getfieldvalue(options,'forcinglength',-1);
    2727
    2828%Process sparse matrices
     
    3434if exist(options,'scale'),
    3535        scale = getfieldvalue(options,'scale');
    36         if forcing,
    37                 data(1:end-1,:) = scale.*data;
     36        if size(data,1)==forcinglength,
     37                data(1:end-1,:) = scale.*data(1:end-1,:);
    3838        else
    3939                data  = scale.*data;
  • issm/trunk-jpl/src/m/solve/WriteData.py

    r15132 r15133  
    3535        format  = options.getfieldvalue('format')
    3636        mattype = options.getfieldvalue('mattype',0)    #only required for matrices
    37         forcing = options.getfieldvalue('forcing',0)
     37        forcinglength = options.getfieldvalue('forcinglength',-1)
    3838
    3939        #Process sparse matrices
     
    4545        if options.exist('scale'):
    4646                scale = options.getfieldvalue('scale')
    47                 if forcing:
    48                         data[0:-1] = scale*data[0:-1]
    49                 else:
    50                         data  = scale*data
     47                if numpy.size(data) > 1 :
     48                        if numpy.size(data,0)==forcinglength:
     49                                data=numpy.array(data)
     50                                data[0:-1,:] = scale*data[0:-1,:]
     51                        else:
     52                                data  = scale*data
    5153
    5254        #Step 1: write the enum to identify this record uniquely
Note: See TracChangeset for help on using the changeset viewer.