Index: codes/icosagcm/devel/Python/test/py/Baroclinic_3D_ullrich.py
===================================================================
--- codes/icosagcm/devel/Python/test/py/Baroclinic_3D_ullrich.py	(revision 801)
+++ codes/icosagcm/devel/Python/test/py/Baroclinic_3D_ullrich.py	(revision 802)
@@ -22,10 +22,11 @@
 getargs.defaults(dt=360., llm=50)
 
-getargs.config_log(filename='out.log',filemode='w') # must be done before calling Logger()
+#getargs.config_log(filename='out.log',filemode='w') # must be done before calling Logger()
 #    getargs.config_log(filename='out.log',filemode='w',
 #                    format='%(processName)s:%(name)s:%(filename)s:%(module)s:%(funcName)s:%(lineno)d:%(levelname)s:%(message)s' )
 
-logging = getargs.Logger('main')
 args = getargs.parse()
+log_master, log_world = getargs.getLogger()
+INFO, DEBUG, DEBUG_ALL, ERROR = log_master.info, log_master.debug, log_world.debug, log_world.error
 
 from dynamico import unstructured as unst
@@ -50,5 +51,5 @@
 def create_pmesh(nx,ny):
     filename = 'cart_%03d_%03d.nc'%(nx,ny)
-    logging.info('Reading Cartesian mesh ...')
+    INFO('Reading Cartesian mesh ...')
     meshfile = meshes.DYNAMICO_Format(filename)
     pmesh = meshes.Unstructured_PMesh(comm,meshfile)
@@ -105,5 +106,5 @@
     y_ek, alpha_ek = np.meshgrid(mesh.lat_e, alpha_k, indexing='ij')
 
-    print(np.shape(alpha_k),np.shape(alpha_l))
+#    print(np.shape(alpha_k),np.shape(alpha_l))
     thermo = dyn.Ideal_perfect(Cpd, Rd, p0, T0)
 
@@ -127,8 +128,8 @@
     u_ek = mesh.ucov3D(ulon(x_ek, y_ek, eta_ek), 0.*eta_ek)
 
-    print('ztop (m) = ', Phi_il[0,-1]/g, ztop)
+    INFO('ztop (m) = %f %f' % (Phi_il[0,-1]/g, ztop) )
     ptop = p(eta(1.))
-    print( 'ptop (Pa) = ', gas.p[0,-1], ptop)
-    print('ztop(ptop) according to Eq. 7:', T0/lap*(1.-(ptop/p0)**(Rd*lap/g))) 
+    INFO( 'ptop (Pa) = %f %f' % (gas.p[0,-1], ptop) )
+    INFO('ztop(ptop) according to Eq. 7: %f' % (T0/lap*(1.-(ptop/p0)**(Rd*lap/g))) ) 
 
     params=dyn.Struct()
@@ -140,5 +141,5 @@
     # define parameters for lower BC
     pbot = p(eta_il[:,0])
-    print( 'min p, T :', pbot.min(), tmean(pbot/p0))
+    INFO( 'min p, T : %f %s' % (pbot.min(), tmean(pbot/p0)) )
     gas_bot = thermo.set_pT(pbot, tmean(pbot/p0))
     params.pbot = gas_bot.p
@@ -167,5 +168,5 @@
 class myDavies(Davies):
     def mask(self,x,y):
-        logging.debug('davies dy = %f'% dx)
+        DEBUG('davies dy = %f'% dx)
         return self.mask0(y,Ly,dx)*self.mask0(-y,0.,dx)
         
@@ -174,6 +175,9 @@
     mpi_rank, mpi_size = comm.Get_rank(), comm.Get_size()
 
-    logging.info('%d/%d starting'%(mpi_rank,mpi_size))
-
+    INFO('%d/%d starting'%(mpi_rank,mpi_size))
+    if mpi_rank>0 : 
+        getargs.not_master()
+        unst.setvar('is_mpi_master', False)
+            
     g, Lx, Ly = 9.80616, 4e7, 6e6
     nx, ny, llm = args.nx, args.ny, args.llm
@@ -181,5 +185,6 @@
     
     unst.setvar('g',g)
-    
+    unst.setvar('debug_hevi_solver', False)
+
     pmesh = create_pmesh(nx,ny)
     thermo, mesh, params, flow0, gas0 = baroclinic_3D(pmesh, dx,Lx,Ly,llm, args.ztop)
@@ -193,5 +198,5 @@
     nt = int(math.ceil(T/dt))
     dt = T/nt
-    logging.info( 'Time step : %d x %g = %g s' % (nt,dt,nt*dt))
+    INFO( 'Time step : %d x %g = %g s' % (nt,dt,nt*dt))
 
     
@@ -215,7 +220,7 @@
                           mesh.lon_i, mesh.lat_i, mesh.lon_e,mesh.lat_e)
 #        print('mask min/max :', davies.beta_i.min(), davies.beta_i.max() )
-        logging.debug('mask min/max :')
-        logging.debug('%f'% davies.beta_i.min())
-        logging.debug('%f'% davies.beta_i.max())
+        DEBUG('mask min/max :')
+        DEBUG('%f'% davies.beta_i.min())
+        DEBUG('%f'% davies.beta_i.max())
 
         def next_flow(m,S,u,Phi,W):
@@ -285,5 +290,5 @@
             context.send_field_dual('curl_abs', zeta_abs_vk)
 
-            print( 'ptop, model top (m) :', unst.getvar('ptop'), Phi.max()/unst.getvar('g'))
+            INFO( 'ptop, model top (m) : %f %f' % (unst.getvar('ptop'), Phi.max()/unst.getvar('g')) )
 
             time1, elapsed1 =time.time(), unst.getvar('elapsed')
@@ -291,7 +296,8 @@
             time2, elapsed2 =time.time(), unst.getvar('elapsed')
             factor = 1000./nt
-            print( 'ms per full time step : ', factor*(time2-time1), factor*(elapsed2-elapsed1))
+            INFO( 'ms per full time step : %f %f' %(factor*(time2-time1), factor*(elapsed2-elapsed1)) )
             factor = 1e9/(4*nt*nx*ny*llm)
-            print( 'nanosec per gridpoint per full time step : ', factor*(time2-time1), factor*(elapsed2-elapsed1))
-
-logging.info('************DONE************')
+            INFO( 'nanosec per gridpoint per full time step : %f %f' %
+                  (factor*(time2-time1), factor*(elapsed2-elapsed1)) )
+
+INFO('************DONE************')
Index: codes/icosagcm/devel/Python/test/py/RSW2_MPAS_W02.py
===================================================================
--- codes/icosagcm/devel/Python/test/py/RSW2_MPAS_W02.py	(revision 801)
+++ codes/icosagcm/devel/Python/test/py/RSW2_MPAS_W02.py	(revision 802)
@@ -1,11 +1,15 @@
-print 'Starting'
+from dynamico import getargs
+log_master, log_world = getargs.getLogger()
+INFO, DEBUG, ERROR = log_master.info, log_master.debug, log_world.error
+
+INFO('Starting')
 
 from mpi4py import MPI
 comm = MPI.COMM_WORLD
 mpi_rank, mpi_size = comm.Get_rank(), comm.Get_size()
-print '%d/%d starting'%(mpi_rank,mpi_size)
+INFO('%d/%d starting'%(mpi_rank,mpi_size))
 prefix='fig_RSW2_MPAS_W02/%02d'%mpi_rank
 
-print 'Loading DYNAMICO modules ...'
+INFO('Loading DYNAMICO modules ...')
 from dynamico import unstructured as unst
 from dynamico.meshes import MPAS_Format, Unstructured_PMesh as PMesh, Local_Mesh as Mesh
