Ignore:
Timestamp:
04/01/20 21:54:40 (5 years ago)
Author:
Mathieu Morlighem
Message:

merged trunk-jpl and trunk for revision 24684

Location:
issm/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk

  • issm/trunk/src

  • issm/trunk/src/m/classes/linearbasalforcings.py

    r24313 r24686  
    1717        if not len(args):
    1818            print('empty init')
    19             self.groundedice_melting_rate = float('NaN')
    2019            self.deepwater_melting_rate = 0.
    2120            self.deepwater_elevation = 0.
    2221            self.upperwater_melting_rate = 0.
    2322            self.upperwater_elevation = 0.
     23            self.groundedice_melting_rate = float('NaN')
     24            self.perturbation_melting_rate = float('NaN')
    2425            self.geothermalflux = float('NaN')
    2526
     
    3031            inv = args[0]
    3132            self.groundedice_melting_rate = inv.groundedice_melting_rate
     33            self.perturbation_melting_rate = float('NaN')
    3234            self.geothermalflux = inv.geothermalflux
    3335            self.deepwater_melting_rate = 0.
     
    4143            raise Exception('constructor not supported')
    4244    #}}}
    43 
    4445    def __repr__(self):  # {{{
    4546        string = "   linear basal forcings parameters:"
     
    4950        string = "%s\n%s" % (string, fielddisplay(self, "upperwater_elevation", "elevation of ocean upper water [m]"))
    5051        string = "%s\n%s" % (string, fielddisplay(self, "groundedice_melting_rate", "basal melting rate (positive if melting) [m/yr]"))
     52        string = "%s\n%s" % (string, fielddisplay(self, "perturbation_melting_rate", "perturbation applied to computed melting rate (positive if melting) [m/yr]"))
    5153        string = "%s\n%s" % (string, fielddisplay(self, "geothermalflux", "geothermal heat flux [W/m^2]"))
    5254        return string
    5355    #}}}
    54 
    5556    def initialize(self, md):  # {{{
    5657        if np.all(np.isnan(self.groundedice_melting_rate)):
     
    5960        return self
    6061    #}}}
    61 
    6262    def setdefaultparameters(self):  # {{{
    6363        self.deepwater_melting_rate = 50.0
     
    6868        return self
    6969    #}}}
     70    def checkconsistency(self, md, solution, analyses):  # {{{
    7071
    71     def checkconsistency(self, md, solution, analyses):  # {{{
     72        if not np.all(np.isnan(self.perturbation_melting_rate)):
     73            md = checkfield(md, 'fieldname', 'basalforcings.perturbation_melting_rate', 'NaN', 1, 'Inf', 1, 'timeseries', 1)
     74
    7275        if 'MasstransportAnalysis' in analyses and not (solution == 'TransientSolution' and not md.transient.ismasstransport):
    7376            md = checkfield(md, 'fieldname', 'basalforcings.groundedice_melting_rate', 'NaN', 1, 'Inf', 1, 'timeseries', 1)
     
    9497        return md
    9598    # }}}
    96 
    9799    def marshall(self, prefix, md, fid):  # {{{
    98100        yts = md.constants.yts
    99101
    100102        WriteData(fid, prefix, 'name', 'md.basalforcings.model', 'data', 2, 'format', 'Integer')
     103        WriteData(fid, prefix, 'object', self, 'fieldname', 'perturbation_melting_rate', 'name', 'md.basalforcings.perturbation_melting_rate', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts)
    101104        WriteData(fid, prefix, 'object', self, 'fieldname', 'groundedice_melting_rate', 'name', 'md.basalforcings.groundedice_melting_rate', 'format', 'DoubleMat', 'mattype', 1, 'scale', 1. / yts, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts)
    102105        WriteData(fid, prefix, 'object', self, 'fieldname', 'geothermalflux', 'name', 'md.basalforcings.geothermalflux', 'format', 'DoubleMat', 'mattype', 1, 'timeserieslength', md.mesh.numberofvertices + 1, 'yts', yts)
Note: See TracChangeset for help on using the changeset viewer.