Index: /issm/trunk-jpl/src/m/classes/lovenumbers.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/lovenumbers.m	(revision 26827)
+++ /issm/trunk-jpl/src/m/classes/lovenumbers.m	(revision 26828)
@@ -16,10 +16,10 @@
 		
 		%tidal love numbers for computing rotational feedback:
-		th          	= [];
-		tk          	= [];
-		tl          	= [];
-		tk2secular	= 0; %deg 2 secular number.
-		pmtf_colinear	= [];
-		pmtf_ortho    	= [];
+		th            = [];
+		tk            = [];
+		tl            = [];
+		tk2secular    = 0; %deg 2 secular number.
+		pmtf_colinear = [];
+		pmtf_ortho    = [];
 
 		%time/frequency for visco-elastic love numbers
Index: /issm/trunk-jpl/src/m/classes/lovenumbers.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/lovenumbers.py	(revision 26827)
+++ /issm/trunk-jpl/src/m/classes/lovenumbers.py	(revision 26828)
@@ -6,6 +6,5 @@
 from WriteData import WriteData
 
-
-class lovenumbers(object):  #{{{
+class lovenumbers(object):
     """LOVENUMBERS class definition
 
@@ -29,4 +28,6 @@
         self.tl = []
         self.tk2secular = 0  # deg 2 secular number
+        pmtf_colinear   = []
+        pmtf_ortho      = []
 
         # Time/frequency for visco-elastic love numbers
@@ -39,5 +40,4 @@
         self.setdefaultparameters(maxdeg, referenceframe)
     #}}}
-
     def __repr__(self):  #{{{
         s = '   lovenumbers parameters:\n'
@@ -49,9 +49,10 @@
         s += '{}\n'.format(fielddisplay(self, 'tl', 'tidal load Love number (deg 2)'))
         s += '{}\n'.format(fielddisplay(self, 'tk2secular', 'secular fluid Love number'))
+        s += '{}\n'.format(fielddisplay(self, 'pmtf_colinear', 'Colinear component of the Polar Motion Transfer Function (e.g. x-motion due to x-component perturbation of the inertia tensor)'))
+        s += '{}\n'.format(fielddisplay(self, 'pmtf_ortho', 'Orthogonal component of the Polar Motion Transfer Function (couples x and y components, only used for Chandler Wobble)'))
         s += '{}\n'.format(fielddisplay(self, 'istime', 'time (default: 1) or frequency love numbers (0)'))
         s += '{}\n'.format(fielddisplay(self, 'timefreq', 'time/frequency vector (yr or 1/yr)'))
         return s
     #}}}
-
     def setdefaultparameters(self, maxdeg, referenceframe):  #{{{
         # Initialize love numbers
@@ -65,4 +66,9 @@
         # Secular fluid love number
         self.tk2secular = 0.942
+        self.pmtf_colinear=0.0
+        self.pmtf_ortho=0.0
+        if maxdeg>=2:
+            self.pmtf_colinear= (1.0+self.k[3-1,:])/(1.0-self.tk[3-1,:]/self.tk2secular) #valid only for elastic regime, not viscous. Also neglects chandler wobble
+            self.pmtf_ortho= 0.0
 
         # Time
@@ -71,5 +77,4 @@
         return self
     #}}}
-
     def checkconsistency(self, md, solution, analyses):  #{{{
         if ('SealevelchangeAnalysis' not in analyses) or (solution == 'TransientSolution' and not md.transient.isslc):
@@ -83,4 +88,6 @@
         md = checkfield(md, 'fieldname', 'solidearth.lovenumbers.tl', 'NaN', 1, 'Inf', 1)
         md = checkfield(md, 'fieldname', 'solidearth.lovenumbers.tk2secular', 'NaN', 1, 'Inf', 1)
+        md = checkfield(md, 'fieldname', 'solidearth.lovenumbers.pmtf_colinear', 'NaN', 1, 'Inf', 1)
+        md = checkfield(md, 'fieldname', 'solidearth.lovenumbers.pmtf_ortho', 'NaN', 1, 'Inf', 1)
         md = checkfield(md, 'fieldname', 'solidearth.lovenumbers.timefreq', 'NaN', 1, 'Inf', 1)
         md = checkfield(md, 'fieldname', 'solidearth.lovenumbers.istime', 'NaN', 1, 'Inf', 1, 'values', [0, 1])
@@ -96,9 +103,7 @@
         return md
     #}}}
-
     def defaultoutputs(self, md):  #{{{
         return[]
     #}}}
-
     def marshall(self, prefix, md, fid):  #{{{
         WriteData(fid, prefix, 'object', self, 'fieldname', 'h', 'name', 'md.solidearth.lovenumbers.h', 'format', 'DoubleMat', 'mattype', 1)
@@ -110,4 +115,6 @@
         WriteData(fid, prefix, 'object', self, 'fieldname', 'tl', 'name', 'md.solidearth.lovenumbers.tl', 'format', 'DoubleMat', 'mattype', 1)
         WriteData(fid, prefix, 'object', self, 'data', self.tk2secular, 'fieldname', 'lovenumbers.tk2secular', 'format', 'Double')
+        WriteData(fid, prefix, 'object', self, 'fieldname', 'pmtf_colinear','name','md.solidearth.lovenumbers.pmtf_colinear','format','DoubleMat','mattype',1);
+        WriteData(fid, prefix, 'object', self, 'fieldname', 'pmtf_ortho','name','md.solidearth.lovenumbers.pmtf_ortho','format','DoubleMat','mattype',1);
 
         if (self.istime):
@@ -118,5 +125,4 @@
         WriteData(fid, prefix, 'object', self, 'fieldname', 'timefreq', 'name', 'md.solidearth.lovenumbers.timefreq', 'format', 'DoubleMat', 'mattype', 1, 'scale', scale);
     #}}}
-
     def extrude(self, md):  #{{{
         return
