Index: trunk/LMDZ.PLUTO/libf/phypluto/ave_stelspec.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/ave_stelspec.F90	(revision 3503)
+++ trunk/LMDZ.PLUTO/libf/phypluto/ave_stelspec.F90	(revision 3504)
@@ -2,12 +2,12 @@
 
 !==================================================================
-!     
+!
 !     Purpose
 !     -------
 !     Average the chosen high resolution stellar spectrum over the
 !     visible bands in the model.
-!     
+!
 !     Authors
-!     ------- 
+!     -------
 !     Robin Wordsworth (2010).
 !     Generalized to very late spectral types (and Brown dwarfs) Jeremy Leconte (2012)
@@ -16,9 +16,9 @@
 !     ---------
 !     setspv.F
-!     
+!
 !     Calls
 !     -----
 !     none
-!     
+!
 !==================================================================
 
@@ -28,9 +28,10 @@
       use callkeys_mod, only: stelbbody,stelTbb,startype
       use ioipsl_getin_p_mod, only: getin_p
+      use mod_phys_lmdz_para, only : is_master
 
       implicit none
 
       real*8 STELLAR(L_NSPECTV)
-!      integer startype 
+!      integer startype
 
       integer Nfine
@@ -48,10 +49,10 @@
       real lam_temp
       double precision stel_temp
-      
+
       integer :: ios ! file opening/reading status
 
       STELLAR(:)=0.0
 
-      print*,'enter ave_stellspec'
+      if (is_master) print*,'enter ave_stellspec'
       if(stelbbody)then
          tstellar=stelTbb
@@ -65,5 +66,5 @@
                call blackl(dble(lam_temp*1e-6),dble(tstellar),stel_temp)
 	       STELLAR(band)=STELLAR(band)+stel_temp*dl
-	    enddo	    
+	    enddo
 	 end do
          STELLAR(1:L_NSPECTV)=STELLAR(1:L_NSPECTV)/sum(STELLAR(1:L_NSPECTV))
@@ -99,25 +100,25 @@
 	   Case(6)
             file_id='/stellar_spectra/BD_Teff-1600K.txt'
-            tstellar=1600. 
+            tstellar=1600.
             file_id_lam='/stellar_spectra/lamBD.txt'
             Nfine=5000
 	   Case(7)
             file_id='/stellar_spectra/BD_Teff-1000K.txt'
-            tstellar=1000. 
+            tstellar=1000.
             file_id_lam='/stellar_spectra/lamBD.txt'
             Nfine=5000
 	   Case(8)
             file_id='/stellar_spectra/Flux_K5_Teff4700_logg4.5_Met-0.5_BTsettle.dat'
-            tstellar=4700. 
+            tstellar=4700.
             file_id_lam='/stellar_spectra/lambda_K5_Teff4700_logg4.5_Met-0.5_BTsettle.dat'
             Nfine=3986
            Case(9)
             file_id='/stellar_spectra/Flux_TRAPPIST1.dat'
-            tstellar=2550. 
+            tstellar=2550.
             file_id_lam='/stellar_spectra/lambda_TRAPPIST1.dat'
             Nfine=5000
            Case(10)
             file_id='/stellar_spectra/Flux_Proxima.dat'
-            tstellar=3050. 
+            tstellar=3050.
             file_id_lam='/stellar_spectra/lambda_Proxima.dat'
             Nfine=5000
@@ -139,10 +140,10 @@
               stop
             end if
-   
+
             ! Opening file
             file_path = trim(datadir)//'/stellar_spectra/'//stelspec_file
             print*, 'stellar flux : ', file_path
             OPEN(UNIT=110,FILE=file_path,STATUS='old',iostat=ios)
-   
+
             if (ios /= 0) THEN
               write(*,*)'Error: cannot open stelspec_file file ', trim(stelspec_file)
@@ -219,5 +220,5 @@
 !$OMP END MASTER
 !$OMP BARRIER
-	 
+
          ! sum data by band
          band=1
@@ -236,6 +237,6 @@
             STELLAR(band)=STELLAR(band)+stel_f(ifine)*dl
          end do
-	       
-	 
+
+
          STELLAR(1:L_NSPECTV)=STELLAR(1:L_NSPECTV)/sum(STELLAR(1:L_NSPECTV))
 !$OMP BARRIER
@@ -244,5 +245,5 @@
 	 if (allocated(stel_f)) deallocate(stel_f)
 !$OMP END MASTER
-!$OMP BARRIER         
+!$OMP BARRIER
       endif
 
Index: trunk/LMDZ.PLUTO/libf/phypluto/callcorrk_pluto_mod.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/callcorrk_pluto_mod.F90	(revision 3503)
+++ trunk/LMDZ.PLUTO/libf/phypluto/callcorrk_pluto_mod.F90	(revision 3504)
@@ -32,4 +32,5 @@
       use sfluxi_pluto_mod, only: sfluxi_pluto
       use sfluxv_pluto_mod, only: sfluxv_pluto
+      use mod_phys_lmdz_para, only : is_master
 
 
@@ -222,5 +223,5 @@
       if(firstcall) then
 
-         print*, "callcorrk: Correlated-k data folder:",trim(datadir)
+         if (is_master) print*, "callcorrk: Correlated-k data folder:",trim(datadir)
          call getin("corrkdir",corrkdir)
          print*, "corrkdir = ",corrkdir
@@ -230,9 +231,9 @@
          banddir=trim(adjustl(corrkdir))//'/'//trim(adjustl(banddir))
 
-         print*,'starting sugas'
+         if (is_master) print*,'starting sugas'
          call sugas_corrk       ! set up gaseous absorption properties
-         print*,'starting setspi'
+         if (is_master) print*,'starting setspi'
          call setspi            ! basic infrared properties
-         print*,'starting setspv'
+         if (is_master) print*,'starting setspv'
          call setspv            ! basic visible properties
 
@@ -259,8 +260,8 @@
               call haze_reffrad_fix(ngrid,nlayer,zzlay, &
                   reffrad,nueffrad)
-              print*, 'haze_radproffix=T : fixed profile for haze rad'
+              if (is_master) print*, 'haze_radproffix=T : fixed profile for haze rad'
            else
-              print*,'reffrad haze:',reffrad(1,1,iaero_haze)
-              print*,'nueff haze',nueffrad(1,1,iaero_haze)
+              if (is_master) print*,'reffrad haze:',reffrad(1,1,iaero_haze)
+              if (is_master) print*,'nueff haze',nueffrad(1,1,iaero_haze)
            endif
          endif ! radiative haze
Index: trunk/LMDZ.PLUTO/libf/phypluto/iniorbit.F
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/iniorbit.F	(revision 3503)
+++ trunk/LMDZ.PLUTO/libf/phypluto/iniorbit.F	(revision 3504)
@@ -1,8 +1,9 @@
       SUBROUTINE iniorbit
      $     (papoastr,pperiastr,pyear_day,pperi_day,pobliq)
-      
+
       USE planete_mod, only: apoastr, periastr, year_day, obliquit,
      &                       peri_day, e_elips, p_elips, timeperi
       use comcstfi_mod, only: pi
+      use mod_phys_lmdz_para, only : is_master
       IMPLICIT NONE
 
@@ -32,15 +33,17 @@
       peri_day=pperi_day
 
-      PRINT*,'iniorbit: Periastron in AU  ',periastr
-      PRINT*,'iniorbit: Apoastron in AU  ',apoastr 
-      PRINT*,'iniorbit: Obliquity in degrees  :',obliquit
-
+      if (is_master) then
+            PRINT*,'iniorbit: Periastron in AU  ',periastr
+            PRINT*,'iniorbit: Apoastron in AU  ',apoastr
+            PRINT*,'iniorbit: Obliquity in degrees  :',obliquit
+      endif
 
       e_elips=(apoastr-periastr)/(periastr+apoastr)
       p_elips=0.5*(periastr+apoastr)*(1-e_elips*e_elips)
 
-      print*,'iniorbit: e_elips',e_elips
-      print*,'iniorbit: p_elips',p_elips
-
+      if (is_master) then
+            print*,'iniorbit: e_elips',e_elips
+            print*,'iniorbit: p_elips',p_elips
+      endif
 !-----------------------------------------------------------------------
 ! compute polar angle and distance to the Sun:
Index: trunk/LMDZ.PLUTO/libf/phypluto/phyetat0_mod.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/phyetat0_mod.F90	(revision 3503)
+++ trunk/LMDZ.PLUTO/libf/phypluto/phyetat0_mod.F90	(revision 3504)
@@ -26,4 +26,5 @@
                      inquire_dimension, inquire_dimension_length
   use callkeys_mod, only: surfalbedo,surfemis, callsoil
+  use mod_phys_lmdz_para, only : is_master
   implicit none
 
@@ -100,6 +101,6 @@
 
   ! possibility to modify tab_cntrl in tabfi
-  write(*,*)
-  write(*,*) 'TABFI in phyeta0: Lmodif=',Lmodif," tab0=",tab0
+  if (is_master) write(*,*)
+  if (is_master) write(*,*) 'TABFI in phyeta0: Lmodif=',Lmodif," tab0=",tab0
   call tabfi (ngrid,nid_start,Lmodif,tab0,day_ini,lmax,p_rad, &
                    p_omeg,p_g,p_cpp,p_mugaz,p_daysec,time)
@@ -119,5 +120,5 @@
   phisfi(:)=0.
 endif ! of if (startphy_file)
-write(*,*) "phyetat0: surface geopotential <phisfi> range:", &
+if (is_master) write(*,*) "phyetat0: surface geopotential <phisfi> range:", &
                minval(phisfi), maxval(phisfi)
 
@@ -132,8 +133,8 @@
   surfalbedo=0.5
   call getin_p("surfalbedo",surfalbedo)
-  print*,"surfalbedo",surfalbedo
+  if (is_master) print*,"surfalbedo",surfalbedo
   albedodat(:)=surfalbedo
 endif ! of if (startphy_file)
-write(*,*) "phyetat0: Bare ground albedo <albedodat> range:", &
+if (is_master) write(*,*) "phyetat0: Bare ground albedo <albedodat> range:", &
              minval(albedodat), maxval(albedodat)
 
@@ -147,5 +148,5 @@
   zmea(:)=0.
 endif ! of if (startphy_file)
-write(*,*) "phyetat0: <ZMEA> range:", &
+if (is_master) write(*,*) "phyetat0: <ZMEA> range:", &
              minval(zmea), maxval(zmea)
 
@@ -159,5 +160,5 @@
   zstd(:)=0.
 endif ! of if (startphy_file)
-write(*,*) "phyetat0: <ZSTD> range:", &
+if (is_master) write(*,*) "phyetat0: <ZSTD> range:", &
              minval(zstd), maxval(zstd)
 
@@ -171,5 +172,5 @@
   zsig(:)=0.
 endif ! of if (startphy_file)
-write(*,*) "phyetat0: <ZSIG> range:", &
+if (is_master) write(*,*) "phyetat0: <ZSIG> range:", &
              minval(zsig), maxval(zsig)
 
@@ -183,5 +184,5 @@
   zgam(:)=0.
 endif ! of if (startphy_file)
-write(*,*) "phyetat0: <ZGAM> range:", &
+if (is_master) write(*,*) "phyetat0: <ZGAM> range:", &
              minval(zgam), maxval(zgam)
 
@@ -195,5 +196,5 @@
   zthe(:)=0.
 endif ! of if (startphy_file)
-write(*,*) "phyetat0: <ZTHE> range:", &
+if (is_master) write(*,*) "phyetat0: <ZTHE> range:", &
              minval(zthe), maxval(zthe)
 
@@ -207,5 +208,5 @@
   tsurf(:)=0. ! will be updated afterwards in physiq !
 endif ! of if (startphy_file)
-write(*,*) "phyetat0: Surface temperature <tsurf> range:", &
+if (is_master) write(*,*) "phyetat0: Surface temperature <tsurf> range:", &
              minval(tsurf), maxval(tsurf)
 
@@ -220,8 +221,8 @@
   surfemis=1.0
   call getin_p("surfemis",surfemis)
-  print*,"surfemis",surfemis
+  if (is_master) print*,"surfemis",surfemis
   emis(:)=surfemis
 endif ! of if (startphy_file)
-write(*,*) "phyetat0: Surface emissivity <emis> range:", &
+if (is_master) write(*,*) "phyetat0: Surface emissivity <emis> range:", &
              minval(emis), maxval(emis)
 
@@ -237,5 +238,5 @@
   q2(:,:)=0.
 endif ! of if (startphy_file)
-write(*,*) "phyetat0: PBL wind variance <q2> range:", &
+if (is_master) write(*,*) "phyetat0: PBL wind variance <q2> range:", &
              minval(q2), maxval(q2)
 
Index: trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90	(revision 3503)
+++ trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90	(revision 3504)
@@ -726,7 +726,7 @@
             ! at firstcall of callcorrk so we can output XspecIR, XspecVI
             ! when using Dynamico
-            print*, "physiq_mod: Correlated-k data base folder:",trim(datadir)
+            if (is_master) print*, "physiq_mod: Correlated-k data base folder:",trim(datadir)
             call getin_p("corrkdir",corrkdir)
-            print*,"corrkdir = ", corrkdir
+            if (is_master) print*,"corrkdir = ", corrkdir
             write (tmp1, '(i4)') L_NSPECTI
             write (tmp2, '(i4)') L_NSPECTV
Index: trunk/LMDZ.PLUTO/libf/phypluto/setspi.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/setspi.F90	(revision 3503)
+++ trunk/LMDZ.PLUTO/libf/phypluto/setspi.F90	(revision 3504)
@@ -2,22 +2,22 @@
 
 !==================================================================
-!     
+!
 !     Purpose
 !     -------
 !     Set up spectral intervals and Planck function in the longwave.
-!     
+!
 !     Authors
-!     ------- 
+!     -------
 !     Adapted from setspi in the NASA Ames radiative code by
 !     Robin Wordsworth (2009).
-!     
+!
 !     Called by
 !     ---------
 !     callcorrk.F
-!     
+!
 !     Calls
 !     -----
 !     none
-!     
+!
 !==================================================================
 
@@ -26,4 +26,5 @@
       use datafile_mod, only: datadir
       use comcstfi_mod, only: pi
+      use mod_phys_lmdz_para, only : is_master
 
       implicit none
@@ -42,5 +43,5 @@
       real*8 :: c1 = 3.741832D-16 ! W m^-2
       real*8 :: c2 = 1.438786D-2  ! m K
-      
+
       real*8 :: lastband(2), plancksum
 
@@ -75,5 +76,5 @@
       write(temp1,'(i2.2)') L_NSPECTI
       !file_id='/corrk_data/' // corrkdir(1:LEN_TRIM(corrkdir)) // '/narrowbands_IR.in'
-      file_id='/corrk_data/'//trim(adjustl(banddir))//'/narrowbands_IR.in' 
+      file_id='/corrk_data/'//trim(adjustl(banddir))//'/narrowbands_IR.in'
       file_path=TRIM(datadir)//TRIM(file_id)
 
@@ -81,17 +82,19 @@
       inquire(FILE=file_path,EXIST=file_ok)
       if(.not.file_ok) then
-         write(*,*)'The file ',TRIM(file_path)
-         write(*,*)'was not found by setspi.F90, exiting.'
-         write(*,*)'Check that your path to datagcm:',trim(datadir)
-         write(*,*)' is correct. You can change it in callphys.def with:'
-         write(*,*)' datadir = /absolute/path/to/datagcm'
-         write(*,*)'Also check that the corrkdir you chose in callphys.def exists.'
-         call abort
-      endif
-    
-!$OMP MASTER    
+         if (is_master) then
+            write(*,*)'The file ',TRIM(file_path)
+            write(*,*)'was not found by setspi.F90, exiting.'
+            write(*,*)'Check that your path to datagcm:',trim(datadir)
+            write(*,*)' is correct. You can change it in callphys.def with:'
+            write(*,*)' datadir = /absolute/path/to/datagcm'
+            write(*,*)'Also check that the corrkdir you chose in callphys.def exists.'
+         endif
+         call abort_physic("setspi", "File not found by setspi", 1)
+      endif
+
+!$OMP MASTER
       nb=0
       ierr=0
-      ! check that the file contains the right number of bands 
+      ! check that the file contains the right number of bands
       open(131,file=file_path,form='formatted')
       read(131,*,iostat=ierr) file_entries
@@ -103,14 +106,15 @@
       close(131)
 
-      write(*,*) 'setspi: L_NSPECTI = ',L_NSPECTI, 'in the model '
-      write(*,*) '        there are   ',nb, 'entries in ',TRIM(file_path)
+      if (is_master) then
+         write(*,*) 'setspi: L_NSPECTI = ',L_NSPECTI, 'in the model '
+         write(*,*) '        there are   ',nb, 'entries in ',TRIM(file_path)
+      endif
       if(nb.ne.L_NSPECTI) then
-         write(*,*) 'MISMATCH !! I stop here'
-         call abort
+         call abort_physic("setspi",'MISMATCH !! I stop here',1)
       endif
 
       ! load and display the data
       open(111,file=file_path,form='formatted')
-      read(111,*) 
+      read(111,*)
       do M=1,L_NSPECTI-1
          read(111,*) BWNI(M)
@@ -123,11 +127,13 @@
 !$OMP BARRIER
 
-      print*,''
-      print*,'setspi: IR band limits:'
-      do M=1,L_NSPECTI+1
-         print*,m,'-->',BWNI(M),' cm^-1'
-      end do
-
-!     Set up mean wavenumbers and wavenumber deltas.  Units of 
+      if (is_master)then
+         print*,''
+         print*,'setspi: IR band limits:'
+         do M=1,L_NSPECTI+1
+            print*,m,'-->',BWNI(M),' cm^-1'
+         end do
+      endif
+
+!     Set up mean wavenumbers and wavenumber deltas.  Units of
 !     wavenumbers is cm^(-1); units of wavelengths is microns.
 
@@ -136,5 +142,5 @@
          DWNI(M)  = BWNI(M+1)-BWNI(M)
          WAVEI(M) = 1.0D+4/WNOI(M)
-         BLAMI(M) = 0.01D0/BWNI(M)         
+         BLAMI(M) = 0.01D0/BWNI(M)
       end do
       BLAMI(M) = 0.01D0/BWNI(M)
@@ -147,7 +153,9 @@
 !     original planck.f; W m^-2 wavenumber^-1, where wavenumber is in CM^-1.
 
-      print*,''
-      print*,'setspi: Current Planck integration range:'
-      print*,'T = ',dble(NTstart)/NTfac, ' to ',dble(NTstop)/NTfac,' K.'
+      if (is_master)then
+         print*,''
+         print*,'setspi: Current Planck integration range:'
+         print*,'T = ',dble(NTstart)/NTfac, ' to ',dble(NTstop)/NTfac,' K.'
+      endif
 
       IF(.NOT.ALLOCATED(planckir)) ALLOCATE(planckir(L_NSPECTI,NTstop-NTstart+1))
@@ -159,7 +167,7 @@
          bma = (b-a)/2.0D0
          ! if (nw .eq. 25) then !LT debug
-         !    print*, "a = ",a 
-         !    print*, "b= ",b 
-         !    print*,"bpa = ",bpa 
+         !    print*, "a = ",a
+         !    print*, "b= ",b
+         !    print*,"bpa = ",bpa
          !    print*, "bma = ",bma
          ! endif
@@ -170,7 +178,7 @@
                y    = bma*x(mm)+bpa
                !to avoid floating overflow when T is low and optical wavelength
-               if ((c2/(y*T)) .lt. 700.0D0) then 
+               if ((c2/(y*T)) .lt. 700.0D0) then
                   ans  = ans + w(mm)*c1/(y**5*(exp(c2/(y*T))-1.0D0))
-               else 
+               else
                   ans = ans +0.0D0
                endif
@@ -179,12 +187,12 @@
          end do
       end do
-         
+
       ! force planck=sigma*eps*T^4 for each temperature in array
       if(forceEC)then
-         print*,'setspi: Force F=sigma*eps*T^4 for all values of T!'
+         if (is_master) print*,'setspi: Force F=sigma*eps*T^4 for all values of T!'
          do nt=NTstart,NTstop
             plancksum=0.0D0
             T=dble(NT)/NTfac
-       
+
             do NW=1,L_NSPECTI
                plancksum=plancksum+  &
@@ -207,8 +215,9 @@
             plancksum=plancksum+planckir(NW,nt-NTstart+1)*DWNI(NW)*pi
          end do
-         print*,'setspi: At lower limit:'
-         print*,'in model sig*T^4 = ',plancksum,' W m^-2'
-         print*,'actual sig*T^4   = ',sigma*(dble(nt)/NTfac)**4,' W m^-2'
-         
+         if (is_master) then
+            print*,'setspi: At lower limit:'
+            print*,'in model sig*T^4 = ',plancksum,' W m^-2'
+            print*,'actual sig*T^4   = ',sigma*(dble(nt)/NTfac)**4,' W m^-2'
+         endif
          ! check energy conservation at upper temperature boundary
          plancksum=0.0D0
@@ -217,8 +226,10 @@
             plancksum=plancksum+planckir(NW,nt-NTstart+1)*DWNI(NW)*pi
          end do
-         print*,'setspi: At upper limit:'
-         print*,'in model sig*T^4 = ',plancksum,' W m^-2'
-         print*,'actual sig*T^4   = ',sigma*(dble(nt)/NTfac)**4,' W m^-2'
-         print*,''
+         if (is_master) then
+            print*,'setspi: At upper limit:'
+            print*,'in model sig*T^4 = ',plancksum,' W m^-2'
+            print*,'actual sig*T^4   = ',sigma*(dble(nt)/NTfac)**4,' W m^-2'
+            print*,''
+         endif
       endif
 
Index: trunk/LMDZ.PLUTO/libf/phypluto/setspv.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/setspv.F90	(revision 3503)
+++ trunk/LMDZ.PLUTO/libf/phypluto/setspv.F90	(revision 3504)
@@ -2,12 +2,12 @@
 
 !==================================================================
-!     
+!
 !     Purpose
 !     -------
-!     Set up spectral intervals, stellar spectrum and Rayleigh 
-!     opacity in the shortwave. 
-!     
+!     Set up spectral intervals, stellar spectrum and Rayleigh
+!     opacity in the shortwave.
+!
 !     Authors
-!     ------- 
+!     -------
 !     Adapted from setspv in the NASA Ames radiative code by
 !     Robin Wordsworth (2009).
@@ -16,9 +16,9 @@
 !     ---------
 !     callcorrk.F
-!     
+!
 !     Calls
 !     -----
 !     ave_stelspec.F
-!     
+!
 !==================================================================
 
@@ -28,4 +28,5 @@
       use datafile_mod, only: datadir
       use callkeys_mod, only: Fat1AU,rayleigh
+      use mod_phys_lmdz_para, only : is_master
 
       implicit none
@@ -53,5 +54,5 @@
 
       write(temp1,'(i2.2)') L_NSPECTV
-      file_id='/corrk_data/'//trim(adjustl(banddir))//'/narrowbands_VI.in' 
+      file_id='/corrk_data/'//trim(adjustl(banddir))//'/narrowbands_VI.in'
       file_path=TRIM(datadir)//TRIM(file_id)
 
@@ -65,11 +66,11 @@
          write(*,*)' datadir = /absolute/path/to/datagcm'
          write(*,*)'Also check that the corrkdir you chose in callphys.def exists.'
-         call abort
+         call abort_physic("setspv", "File not found by setspi", 1)
       endif
-	
-!$OMP MASTER        
+
+!$OMP MASTER
       nb=0
       ierr=0
-      ! check that the file contains the right number of bands 
+      ! check that the file contains the right number of bands
       open(131,file=file_path,form='formatted')
       read(131,*,iostat=ierr) file_entries
@@ -80,14 +81,15 @@
       close(131)
 
-      write(*,*) 'setspv: L_NSPECTV = ',L_NSPECTV, 'in the model '
-      write(*,*) '        there are   ',nb, 'entries in ',TRIM(file_path)
+      if (is_master) then
+         write(*,*) 'setspv: L_NSPECTV = ',L_NSPECTV, 'in the model '
+         write(*,*) '        there are   ',nb, 'entries in ',TRIM(file_path)
+      endif
       if(nb.ne.L_NSPECTV) then
-         write(*,*) 'MISMATCH !! I stop here'
-         call abort
+         call abort_physic("setspv",'MISMATCH !! I stop here',1)
       endif
 
       ! load and display the data
       open(111,file=file_path,form='formatted')
-      read(111,*) 
+      read(111,*)
        do M=1,L_NSPECTV-1
          read(111,*) BWNV(M)
@@ -100,11 +102,13 @@
 !$OMP BARRIER
 
-      print*,'setspv: VI band limits:'
-      do M=1,L_NSPECTV+1
-         print*,m,'-->',BWNV(M),' cm^-1'
-      end do
-      print*,' '
+      if (is_master) then
+         print*,'setspv: VI band limits:'
+         do M=1,L_NSPECTV+1
+            print*,m,'-->',BWNV(M),' cm^-1'
+         end do
+         print*,' '
+      endif
 
-!     Set up mean wavenumbers and wavenumber deltas.  Units of 
+!     Set up mean wavenumbers and wavenumber deltas.  Units of
 !     wavenumbers is cm^(-1); units of wavelengths is microns.
 
@@ -121,15 +125,17 @@
 !     Set up stellar spectrum
 
-      write(*,*)'setspv: Interpolating stellar spectrum from the hires data...'
+      if (is_master) write(*,*)'setspv: Interpolating stellar spectrum from the hires data...'
       call ave_stelspec(STELLAR)
 
-!     Sum the stellar flux, and write out the result.  
-      sum = 0.0  
+!     Sum the stellar flux, and write out the result.
+      sum = 0.0
       do N=1,L_NSPECTV
          STELLARF(N) = STELLAR(N) * Fat1AU
          sum         = sum+STELLARF(N)
       end do
-      write(6,'("setspv: Stellar flux at 1 AU = ",f9.2," W m-2")') sum
-      print*,' '
+      if (is_master)then
+         write(6,'("setspv: Stellar flux at 1 AU = ",f9.2," W m-2")') sum
+         print*,' '
+      endif
 
 
@@ -142,5 +148,5 @@
          call calc_rayleigh
       else
-         print*,'setspv: No Rayleigh scattering, check for NaN in output!'
+         if (is_master) print*,'setspv: No Rayleigh scattering, check for NaN in output!'
          do N=1,L_NSPECTV
             TAURAY(N) = 1E-16
Index: trunk/LMDZ.PLUTO/libf/phypluto/suaer_corrk.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/suaer_corrk.F90	(revision 3503)
+++ trunk/LMDZ.PLUTO/libf/phypluto/suaer_corrk.F90	(revision 3504)
@@ -142,5 +142,5 @@
 
          ! Only one table of optical properties :
-         write(*,*)'Suaer haze optical properties, using: ', &
+         if (is_master) write(*,*)'Suaer haze optical properties, using: ', &
                            TRIM(hazeprop_file)
 
Index: trunk/LMDZ.PLUTO/libf/phypluto/sugas_corrk.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/sugas_corrk.F90	(revision 3503)
+++ trunk/LMDZ.PLUTO/libf/phypluto/sugas_corrk.F90	(revision 3504)
@@ -38,4 +38,5 @@
       use recombin_corrk_mod, only: su_recombin,        &
                 corrk_recombin, use_premix, nrecomb_tot, rcb2tot_idx
+      use mod_phys_lmdz_para, only : is_master
       implicit none
 
@@ -65,5 +66,5 @@
 
       if (.not. moderntracdef) use_premix=.true. ! Added by JVO for compatibility with 'old' traceur.def
-      
+
 !$OMP MASTER
       if (use_premix) then ! use_premix flag added by JVO, thus if pure recombining then premix is skipped
@@ -98,5 +99,5 @@
                   'match that in gases.def (',ngasmx,'), exiting.'
            call abort
-        endif 
+        endif
       endif
 
@@ -111,5 +112,5 @@
                 '], radiative code cannot handle this.'
          call abort
-      endif 
+      endif
 
       ! dynamically allocate gastype and read from Q.dat
@@ -145,23 +146,25 @@
         ! Check that gastype and gnom match
         do igas=1,ngas
-           print*,'Gas ',igas,' is ',trim(gnom(igas))
+           if (is_master) print*,'Gas ',igas,' is ',trim(gnom(igas))
            if (trim(gnom(igas)).ne.trim(gastype(igas))) then
               print*,'Name of a gas in radiative transfer data (',trim(gastype(igas)),') does not ', &
                    'match that in gases.def (',trim(gnom(igas)),'), exiting. You should compare ', &
-                   'gases.def with Q.dat in your radiative transfer directory.' 
+                   'gases.def with Q.dat in your radiative transfer directory.'
               call abort
            endif
         enddo
-        print*,'Confirmed gas match in radiative transfer and gases.def!'
+        if (is_master) print*,'Confirmed gas match in radiative transfer and gases.def!'
       endif
 
       ! display the values
-      print*,'Variable gas volume mixing ratios:'
-      do n=1,L_REFVAR
-         !print*,n,'.',wrefvar(n),' kg/kg' ! pay attention!
-         print*,n,'.',wrefvar(n),' mol/mol'
-      end do
-      print*,''
-      
+      if (is_master)then
+         print*,'Variable gas volume mixing ratios:'
+         do n=1,L_REFVAR
+            !print*,n,'.',wrefvar(n),' kg/kg' ! pay attention!
+            print*,n,'.',wrefvar(n),' mol/mol'
+         end do
+         print*,''
+      endif
+
       else
         L_REFVAR = 1
@@ -185,5 +188,5 @@
          call abort
       endif
-      
+
       ! check the array size is correct, load the coefficients
       open(111,file=TRIM(file_path),form='formatted')
@@ -192,11 +195,13 @@
       read(111,*) gweight
       close(111)
- 
+
       ! display the values
-      print*,'Correlated-k g-space grid:'
-      do n=1,L_NGAUSS
-         print*,n,'.',gweight(n)
-      end do
-      print*,''
+      if (is_master)then
+         print*,'Correlated-k g-space grid:'
+         do n=1,L_NGAUSS
+            print*,n,'.',gweight(n)
+         end do
+         print*,''
+      endif
 
 !=======================================================================
@@ -221,5 +226,5 @@
          call abort
       endif
-     
+
       ! get array size, load the coefficients
       open(111,file=TRIM(file_path),form='formatted')
@@ -232,9 +237,11 @@
 
       ! display the values
-      print*,'Correlated-k pressure grid (mBar):'
-      do n=1,L_NPREF
-         print*,n,'. 1 x 10^',pgasref(n),' mBar'
-      end do
-      print*,''
+      if (is_master)then
+         print*,'Correlated-k pressure grid (mBar):'
+         do n=1,L_NPREF
+            print*,n,'. 1 x 10^',pgasref(n),' mBar'
+         end do
+         print*,''
+      endif
 
       ! save the min / max matrix values
@@ -276,8 +283,10 @@
 
       ! display the values
-      print*,'Correlated-k temperature grid:'
-      do n=1,L_NTREF
-         print*,n,'.',tgasref(n),' K'
-      end do
+      if (is_master)then
+         print*,'Correlated-k temperature grid:'
+         do n=1,L_NTREF
+            print*,n,'.',tgasref(n),' K'
+         end do
+      endif
 
       ! save the min / max matrix values
@@ -299,18 +308,22 @@
 !-----------------------------------------------------------------------
 ! allocate the multidimensional arrays in radcommon_h
-     if(corrk_recombin) then
-        IF(.NOT. ALLOCATED(gasi)) ALLOCATE(gasi(L_NTREF,L_PINT,L_REFVAR+nrecomb_tot,L_NSPECTI,L_NGAUSS))
-        IF(.NOT. ALLOCATED(gasv)) ALLOCATE(gasv(L_NTREF,L_PINT,L_REFVAR+nrecomb_tot,L_NSPECTV,L_NGAUSS))
-        ! display the values
-        print*,''
-        print*,'Correlated-k matrix size:'
-        print*,'[',L_NTREF,',',L_NPREF,',',L_REFVAR+nrecomb_tot,' (',L_REFVAR,'+',nrecomb_tot,'),',L_NGAUSS,']' 
+      if(corrk_recombin) then
+         IF(.NOT. ALLOCATED(gasi)) ALLOCATE(gasi(L_NTREF,L_PINT,L_REFVAR+nrecomb_tot,L_NSPECTI,L_NGAUSS))
+         IF(.NOT. ALLOCATED(gasv)) ALLOCATE(gasv(L_NTREF,L_PINT,L_REFVAR+nrecomb_tot,L_NSPECTV,L_NGAUSS))
+         ! display the values
+         if (is_master)then
+            print*,''
+            print*,'Correlated-k matrix size:'
+            print*,'[',L_NTREF,',',L_NPREF,',',L_REFVAR+nrecomb_tot,' (',L_REFVAR,'+',nrecomb_tot,'),',L_NGAUSS,']'
+         endif
       else
-        IF(.NOT. ALLOCATED(gasi)) ALLOCATE(gasi(L_NTREF,L_PINT,L_REFVAR,L_NSPECTI,L_NGAUSS))
-        IF(.NOT. ALLOCATED(gasv)) ALLOCATE(gasv(L_NTREF,L_PINT,L_REFVAR,L_NSPECTV,L_NGAUSS))
-        ! display the values
-        print*,''
-        print*,'Correlated-k matrix size:' 
-        print*,'[',L_NTREF,',',L_NPREF,',',L_REFVAR,',',L_NGAUSS,']' 
+         IF(.NOT. ALLOCATED(gasi)) ALLOCATE(gasi(L_NTREF,L_PINT,L_REFVAR,L_NSPECTI,L_NGAUSS))
+         IF(.NOT. ALLOCATED(gasv)) ALLOCATE(gasv(L_NTREF,L_PINT,L_REFVAR,L_NSPECTV,L_NGAUSS))
+         ! display the values
+         if (is_master)then
+            print*,''
+            print*,'Correlated-k matrix size:'
+            print*,'[',L_NTREF,',',L_NPREF,',',L_REFVAR,',',L_NGAUSS,']'
+         endif
       endif
 
@@ -321,6 +334,6 @@
 !        wavelength used to separate IR from VI in graybody. We will need that anyway
          IR_VI_wnlimit=3000.
-         write(*,*)"graybody: Visible / Infrared separation set at",10000./IR_VI_wnlimit,"um"
-	 
+         if (is_master)write(*,*)"graybody: Visible / Infrared separation set at",10000./IR_VI_wnlimit,"um"
+
 	 nVI_limit=0
 	 Do nw=1,L_NSPECTV
@@ -344,25 +357,25 @@
          call getin_p("kappa_VI",kappa_VI)
          write(*,*)" kappa_VI = ",kappa_VI
-	 kappa_VI=kappa_VI*1.e4* mugaz * 1.672621e-27	 ! conversion from m^2/kg to cm^2/molecule         
-      
+	 kappa_VI=kappa_VI*1.e4* mugaz * 1.672621e-27	 ! conversion from m^2/kg to cm^2/molecule
+
 !        constant absorption coefficient in IR
          write(*,*)"graybody: constant absorption coefficient in InfraRed:"
          kappa_IR=-100000.
          call getin_p("kappa_IR",kappa_IR)
-         write(*,*)" kappa_IR = ",kappa_IR	 
-         kappa_IR=kappa_IR*1.e4* mugaz * 1.672621e-27	 ! conversion from m^2/kg to cm^2/molecule 
+         write(*,*)" kappa_IR = ",kappa_IR
+         kappa_IR=kappa_IR*1.e4* mugaz * 1.672621e-27	 ! conversion from m^2/kg to cm^2/molecule
 
          write(*,*)"graybody: Visible / Infrared separation set at band: IR=",nIR_limit,", VI=",nVI_limit
-	       
+
       Else
-         kappa_VI=1.e-30      
-         kappa_IR=1.e-30        
+         kappa_VI=1.e-30
+         kappa_IR=1.e-30
       End if
 
-!$OMP MASTER         
+!$OMP MASTER
 
       ! VISIBLE
       if (callgasvis) then
-            
+
         ! Looking for premixed corrk files corrk_gcm_VI.dat if needed
         if (use_premix) then
@@ -373,7 +386,7 @@
               print*,'Visible corrk gaseous absorption is set to zero if graybody=F'
            else
-              file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_VI.dat' 
+              file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_VI.dat'
               file_path=TRIM(datadir)//TRIM(file_id)
-              
+
               ! check that the file exists
               inquire(FILE=file_path,EXIST=file_ok)
@@ -384,5 +397,5 @@
                  call abort
               endif
-           
+
               open(111,file=TRIM(file_path),form='formatted')
               read(111,*) gasv8(:,:,:L_REFVAR,:,:)
@@ -392,12 +405,12 @@
            gasv8(:,:,1,:,:)=0.0 ! dummy but needs to be initialized
         endif ! use_premix
-        
+
         ! Looking for others files corrk_gcm_VI_XXX.dat if needed
         if (corrk_recombin) then
           do igas=1,nrecomb_tot
 
-            file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_VI_'//trim(adjustl(noms(rcb2tot_idx(igas))))//'.dat' 
+            file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_VI_'//trim(adjustl(noms(rcb2tot_idx(igas))))//'.dat'
             file_path=TRIM(datadir)//TRIM(file_id)
-             
+
             ! check that the file exists
             inquire(FILE=file_path,EXIST=file_ok)
@@ -408,9 +421,9 @@
                call abort
             endif
-         
+
             open(111,file=TRIM(file_path),form='formatted')
             read(111,*) gasv8(:,:,L_REFVAR+igas,:,:)
             close(111)
-          enddo                           
+          enddo
         endif ! corrk_recombin
 
@@ -423,27 +436,27 @@
          gasv8(:,:,:,nVI_limit+1:L_NSPECTV,:)= gasv8(:,:,:,nVI_limit+1:L_NSPECTV,:)+kappa_VI
       end if
-           
-         else 
+
+         else
             print*,'Visible corrk gaseous absorption is set to zero.'
             gasv8(:,:,:,:,:)=0.0
          endif ! callgasvis
-         
+
 !$OMP END MASTER
 !$OMP BARRIER
 
       ! INFRA-RED
-      
+
       ! Looking for premixed corrk files corrk_gcm_IR.dat if needed
       if (use_premix) then
         if ((corrkdir(1:4).eq.'null'))then       !.or.(TRIM(corrkdir).eq.'null_LowTeffStar')) then
            print*,'Infrared corrk gaseous absorption is set to zero if graybody=F'
-!$OMP MASTER         
+!$OMP MASTER
            gasi8(:,:,:,:,:)=0.0
 !$OMP END MASTER
 !$OMP BARRIER
-        else 
-           file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_IR.dat' 
+        else
+           file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_IR.dat'
            file_path=TRIM(datadir)//TRIM(file_id)
-        
+
            ! check that the file exists
            inquire(FILE=file_path,EXIST=file_ok)
@@ -454,6 +467,6 @@
               call abort
            endif
-         
-!$OMP MASTER          	        
+
+!$OMP MASTER
            open(111,file=TRIM(file_path),form='formatted')
            read(111,*) gasi8(:,:,:L_REFVAR,:,:)
@@ -461,8 +474,8 @@
 !$OMP END MASTER
 !$OMP BARRIER
-     
+
            ! 'fzero' is a currently unused feature that allows optimisation
            ! of the radiative transfer by neglecting bands where absorption
-           ! is close to zero. As it could be useful in the future, this 
+           ! is close to zero. As it could be useful in the future, this
            ! section of the code has been kept commented and not erased.
            ! RW 7/3/12.
@@ -505,12 +518,12 @@
          gasi8(:,:,1,:,:)=0.0 ! dummy but needs to be initialized
       endif ! use_premix
-    
+
       ! Looking for others files corrk_gcm_IR_XXX.dat if needed
       if (corrk_recombin) then
         do igas=1,nrecomb_tot
 
-          file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_IR_'//trim(adjustl(noms(rcb2tot_idx(igas))))//'.dat' 
+          file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_IR_'//trim(adjustl(noms(rcb2tot_idx(igas))))//'.dat'
           file_path=TRIM(datadir)//TRIM(file_id)
-           
+
           ! check that the file exists
           inquire(FILE=file_path,EXIST=file_ok)
@@ -521,5 +534,5 @@
              call abort
           endif
-!$OMP MASTER           
+!$OMP MASTER
           open(111,file=TRIM(file_path),form='formatted')
           read(111,*) gasi8(:,:,L_REFVAR+igas,:,:)
@@ -527,8 +540,8 @@
 !$OMP END MASTER
 !$OMP BARRIER
-        enddo                           
+        enddo
       endif ! corrk_recombin
 
-!$OMP MASTER         	     
+!$OMP MASTER
       if(nIR_limit.eq.0) then
          gasi8(:,:,:,:,:)= gasi8(:,:,:,:,:)+kappa_VI
@@ -564,5 +577,5 @@
                      end if
                   end do
-                  
+
                end do
             end do
@@ -581,5 +594,5 @@
 !     First, the initial interval
 
-                  n = 1 
+                  n = 1
                   do m=1,5
                      x     = pfgasref(m)
@@ -594,6 +607,6 @@
                      call lagrange(x,xi,yi,ans)
                      gasi(nt,m,nh,nw,ng) = 10.0**ans
-                  end do 
-                  
+                  end do
+
                   do n=2,L_NPREF-2
                      do m=1,5
@@ -610,10 +623,10 @@
                         call lagrange(x,xi,yi,ans)
                         gasi(nt,i,nh,nw,ng) = 10.0**ans
-                     end do 
+                     end do
                   end do
 
 !     Now, get the last interval
 
-                  n = L_NPREF-1                 
+                  n = L_NPREF-1
                   do m=1,5
                      i     = (n-1)*5+m
@@ -629,5 +642,5 @@
                      call lagrange(x,xi,yi,ans)
                      gasi(nt,i,nh,nw,ng) = 10.0**ans
-                  end do  
+                  end do
 
 !     Fill the last pressure point
@@ -650,5 +663,5 @@
 !     First, the initial interval
 
-                  n = 1 
+                  n = 1
                   do m=1,5
                      x     = pfgasref(m)
@@ -663,6 +676,6 @@
                      call lagrange(x,xi,yi,ans)
                      gasv(nt,m,nh,nw,ng) = 10.0**ans
-                  end do 
-                  
+                  end do
+
                   do n=2,L_NPREF-2
                      do m=1,5
@@ -679,5 +692,5 @@
                         call lagrange(x,xi,yi,ans)
                         gasv(nt,i,nh,nw,ng) = 10.0**ans
-                     end do 
+                     end do
                   end do
 
@@ -698,5 +711,5 @@
                      call lagrange(x,xi,yi,ans)
                      gasv(nt,i,nh,nw,ng) = 10.0**ans
-                  end do  
+                  end do
 
 !     Fill the last pressure point
@@ -704,5 +717,5 @@
                   gasv(nt,L_PINT,nh,nw,ng) = &
                       10.0**gasv8(nt,L_NPREF,nh,nw,ng)
-                  
+
                end do
             end do
@@ -743,5 +756,5 @@
             !    endif
             ! enddo
-	    
+
          ! elseif (igas .eq. igas_H2O) then !AF24: removed
 
@@ -750,9 +763,11 @@
       endif
 
-      print*,'----------------------------------------------------'
-      print*,'And that`s all we have. It`s possible that other'
-      print*,'continuum absorption may be present, but if it is we'
-      print*,'don`t yet have data for it...'
-      print*,''
+      if (is_master)then
+         print*,'----------------------------------------------------'
+         print*,'And that`s all we have. It`s possible that other'
+         print*,'continuum absorption may be present, but if it is we'
+         print*,'don`t yet have data for it...'
+         print*,''
+      endif
 
 !     Deallocate local arrays
Index: trunk/LMDZ.PLUTO/libf/phypluto/surfini.F90
===================================================================
--- trunk/LMDZ.PLUTO/libf/phypluto/surfini.F90	(revision 3503)
+++ trunk/LMDZ.PLUTO/libf/phypluto/surfini.F90	(revision 3504)
@@ -7,4 +7,5 @@
       use radinc_h, only : L_NSPECTV
       use callkeys_mod, only : albedosnow, albedon2ice
+      use mod_phys_lmdz_para, only : is_master
 
       IMPLICIT NONE
@@ -51,6 +52,6 @@
       call planetwide_minval(albedo_bareground,min_albedo)
       call planetwide_maxval(albedo_bareground,max_albedo)
-      write(*,*) 'surfini: minimum bare ground albedo',min_albedo
-      write(*,*) 'surfini: maximum bare ground albedo',max_albedo
+if (is_master)       write(*,*) 'surfini: minimum bare ground albedo',min_albedo
+      if (is_master) write(*,*) 'surfini: maximum bare ground albedo',max_albedo
 
 
@@ -65,11 +66,11 @@
          ENDDO
       else
-         write(*,*) "surfini: No N2 ice tracer on surface  ..."
-         write(*,*) "         and therefore no albedo change."
+         if (is_master) write(*,*) "surfini: No N2 ice tracer on surface  ..."
+         if (is_master) write(*,*) "         and therefore no albedo change."
       endif
       call planetwide_minval(albedo,min_albedo)
       call planetwide_maxval(albedo,max_albedo)
-      write(*,*) 'surfini: minimum corrected initial albedo',min_albedo
-      write(*,*) 'surfini: maximum corrected initial albedo',max_albedo
+      if (is_master) write(*,*) 'surfini: minimum corrected initial albedo',min_albedo
+      if (is_master) write(*,*) 'surfini: maximum corrected initial albedo',max_albedo
 
 
