Changeset 17963


Ignore:
Timestamp:
05/08/14 11:38:48 (11 years ago)
Author:
Eric.Larour
Message:

CHG: issues with shape of vectors.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/materials/DepthAvgTempCond.py

    r17961 r17963  
    1 def Tbar=DepthAvgTempCond(md)
     1import numpy as npy
     2from TMeltingPoint  import TMeltingPoint
     3
     4def DepthAvgTempCond(md):
    25   ''' compute conduction dependent temperature profile for an ice sheet.
    3 
    46   Usage:
    57   Tbar=DepthAvgTempCond(md)
    68   '''
    79
    8         Tpmp=TMeltingPoint(md.materials.meltingpoint,0); #pressure melting point at 0 pressure.
    9         k=md.materials.thermalconductivity
    10         G=md.basalforcings.geothermalflux
    11         H=md.geometry.thickness
    12         Ts=md.initialization.temperature
    13         alpha=G*H/k
     10   Tpmp=TMeltingPoint(md.materials.meltingpoint,0) #pressure melting point at 0 pressure.
    1411
    15         Tbar=npy.zeros(md.mesh.numberofvertices,)
     12   k=md.materials.thermalconductivity
     13   G=md.basalforcings.geothermalflux
     14   H=md.geometry.thickness[:,0]
     15   Ts=md.initialization.temperature
     16   alpha=G*H/k
    1617
    17         #find temperature average when we are below melting point:
    18         pos=numpy.nonzero( (Ts+alpha) < Tpmp)
    19         Tbar[pos]=Ts[pos]+alpha[pos]/2
     18   Tbar=npy.zeros(md.mesh.numberofvertices,)
    2019
    21         pos=numpy.nonzero( (Ts+alpha) >=Tpmp)
    22         Tbar[pos]=Tpmp+(Tpmp**2-Ts[pos]**2)/2./alpha[pos]+ Tpmp*(Ts[pos]-Tpmp)./alpha[pos]
     20   #find temperature average when we are below melting point:
     21   pos=npy.nonzero( Ts+alpha < Tpmp)
     22   if pos:
     23           Tbar[pos]=Ts[pos]+alpha[pos]/2
    2324
    24         #on ice shelf, easier:
    25         pos=numpy.nonzero(md.mask.groundedice_levelset<=0)
    26         Tbar[pos]=(Ts[pos]+Tpmp)/2;
     25   pos=npy.nonzero( Ts+alpha>= Tpmp)
     26   if pos:
     27           Tbar[pos]=Tpmp+(Tpmp**2-Ts[pos]**2)/2/alpha[pos]+ Tpmp*(Ts[pos]-Tpmp)/alpha[pos]
     28   
     29   #on ice shelf, easier:
     30   pos=npy.nonzero(md.mask.groundedice_levelset[0]<=0)
     31   if pos:
     32           Tbar[pos]=(Ts[pos]+Tpmp)/2
    2733
    28         return Tbar
     34   return Tbar
Note: See TracChangeset for help on using the changeset viewer.