Changeset 3504 for trunk/LMDZ.PLUTO/libf


Ignore:
Timestamp:
Nov 8, 2024, 10:57:14 AM (6 weeks ago)
Author:
afalco
Message:

Pluto: print only on master process.
AF

Location:
trunk/LMDZ.PLUTO/libf/phypluto
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO/libf/phypluto/ave_stelspec.F90

    r3184 r3504  
    22
    33!==================================================================
    4 !     
     4!
    55!     Purpose
    66!     -------
    77!     Average the chosen high resolution stellar spectrum over the
    88!     visible bands in the model.
    9 !     
     9!
    1010!     Authors
    11 !     ------- 
     11!     -------
    1212!     Robin Wordsworth (2010).
    1313!     Generalized to very late spectral types (and Brown dwarfs) Jeremy Leconte (2012)
     
    1616!     ---------
    1717!     setspv.F
    18 !     
     18!
    1919!     Calls
    2020!     -----
    2121!     none
    22 !     
     22!
    2323!==================================================================
    2424
     
    2828      use callkeys_mod, only: stelbbody,stelTbb,startype
    2929      use ioipsl_getin_p_mod, only: getin_p
     30      use mod_phys_lmdz_para, only : is_master
    3031
    3132      implicit none
    3233
    3334      real*8 STELLAR(L_NSPECTV)
    34 !      integer startype 
     35!      integer startype
    3536
    3637      integer Nfine
     
    4849      real lam_temp
    4950      double precision stel_temp
    50      
     51
    5152      integer :: ios ! file opening/reading status
    5253
    5354      STELLAR(:)=0.0
    5455
    55       print*,'enter ave_stellspec'
     56      if (is_master) print*,'enter ave_stellspec'
    5657      if(stelbbody)then
    5758         tstellar=stelTbb
     
    6566               call blackl(dble(lam_temp*1e-6),dble(tstellar),stel_temp)
    6667               STELLAR(band)=STELLAR(band)+stel_temp*dl
    67             enddo           
     68            enddo
    6869         end do
    6970         STELLAR(1:L_NSPECTV)=STELLAR(1:L_NSPECTV)/sum(STELLAR(1:L_NSPECTV))
     
    99100           Case(6)
    100101            file_id='/stellar_spectra/BD_Teff-1600K.txt'
    101             tstellar=1600. 
     102            tstellar=1600.
    102103            file_id_lam='/stellar_spectra/lamBD.txt'
    103104            Nfine=5000
    104105           Case(7)
    105106            file_id='/stellar_spectra/BD_Teff-1000K.txt'
    106             tstellar=1000. 
     107            tstellar=1000.
    107108            file_id_lam='/stellar_spectra/lamBD.txt'
    108109            Nfine=5000
    109110           Case(8)
    110111            file_id='/stellar_spectra/Flux_K5_Teff4700_logg4.5_Met-0.5_BTsettle.dat'
    111             tstellar=4700. 
     112            tstellar=4700.
    112113            file_id_lam='/stellar_spectra/lambda_K5_Teff4700_logg4.5_Met-0.5_BTsettle.dat'
    113114            Nfine=3986
    114115           Case(9)
    115116            file_id='/stellar_spectra/Flux_TRAPPIST1.dat'
    116             tstellar=2550. 
     117            tstellar=2550.
    117118            file_id_lam='/stellar_spectra/lambda_TRAPPIST1.dat'
    118119            Nfine=5000
    119120           Case(10)
    120121            file_id='/stellar_spectra/Flux_Proxima.dat'
    121             tstellar=3050. 
     122            tstellar=3050.
    122123            file_id_lam='/stellar_spectra/lambda_Proxima.dat'
    123124            Nfine=5000
     
    139140              stop
    140141            end if
    141    
     142
    142143            ! Opening file
    143144            file_path = trim(datadir)//'/stellar_spectra/'//stelspec_file
    144145            print*, 'stellar flux : ', file_path
    145146            OPEN(UNIT=110,FILE=file_path,STATUS='old',iostat=ios)
    146    
     147
    147148            if (ios /= 0) THEN
    148149              write(*,*)'Error: cannot open stelspec_file file ', trim(stelspec_file)
     
    219220!$OMP END MASTER
    220221!$OMP BARRIER
    221          
     222
    222223         ! sum data by band
    223224         band=1
     
    236237            STELLAR(band)=STELLAR(band)+stel_f(ifine)*dl
    237238         end do
    238                
    239          
     239
     240
    240241         STELLAR(1:L_NSPECTV)=STELLAR(1:L_NSPECTV)/sum(STELLAR(1:L_NSPECTV))
    241242!$OMP BARRIER
     
    244245         if (allocated(stel_f)) deallocate(stel_f)
    245246!$OMP END MASTER
    246 !$OMP BARRIER         
     247!$OMP BARRIER
    247248      endif
    248249
  • trunk/LMDZ.PLUTO/libf/phypluto/callcorrk_pluto_mod.F90

    r3501 r3504  
    3232      use sfluxi_pluto_mod, only: sfluxi_pluto
    3333      use sfluxv_pluto_mod, only: sfluxv_pluto
     34      use mod_phys_lmdz_para, only : is_master
    3435
    3536
     
    222223      if(firstcall) then
    223224
    224          print*, "callcorrk: Correlated-k data folder:",trim(datadir)
     225         if (is_master) print*, "callcorrk: Correlated-k data folder:",trim(datadir)
    225226         call getin("corrkdir",corrkdir)
    226227         print*, "corrkdir = ",corrkdir
     
    230231         banddir=trim(adjustl(corrkdir))//'/'//trim(adjustl(banddir))
    231232
    232          print*,'starting sugas'
     233         if (is_master) print*,'starting sugas'
    233234         call sugas_corrk       ! set up gaseous absorption properties
    234          print*,'starting setspi'
     235         if (is_master) print*,'starting setspi'
    235236         call setspi            ! basic infrared properties
    236          print*,'starting setspv'
     237         if (is_master) print*,'starting setspv'
    237238         call setspv            ! basic visible properties
    238239
     
    259260              call haze_reffrad_fix(ngrid,nlayer,zzlay, &
    260261                  reffrad,nueffrad)
    261               print*, 'haze_radproffix=T : fixed profile for haze rad'
     262              if (is_master) print*, 'haze_radproffix=T : fixed profile for haze rad'
    262263           else
    263               print*,'reffrad haze:',reffrad(1,1,iaero_haze)
    264               print*,'nueff haze',nueffrad(1,1,iaero_haze)
     264              if (is_master) print*,'reffrad haze:',reffrad(1,1,iaero_haze)
     265              if (is_master) print*,'nueff haze',nueffrad(1,1,iaero_haze)
    265266           endif
    266267         endif ! radiative haze
  • trunk/LMDZ.PLUTO/libf/phypluto/iniorbit.F

    r3184 r3504  
    11      SUBROUTINE iniorbit
    22     $     (papoastr,pperiastr,pyear_day,pperi_day,pobliq)
    3      
     3
    44      USE planete_mod, only: apoastr, periastr, year_day, obliquit,
    55     &                       peri_day, e_elips, p_elips, timeperi
    66      use comcstfi_mod, only: pi
     7      use mod_phys_lmdz_para, only : is_master
    78      IMPLICIT NONE
    89
     
    3233      peri_day=pperi_day
    3334
    34       PRINT*,'iniorbit: Periastron in AU  ',periastr
    35       PRINT*,'iniorbit: Apoastron in AU  ',apoastr
    36       PRINT*,'iniorbit: Obliquity in degrees  :',obliquit
    37 
     35      if (is_master) then
     36            PRINT*,'iniorbit: Periastron in AU  ',periastr
     37            PRINT*,'iniorbit: Apoastron in AU  ',apoastr
     38            PRINT*,'iniorbit: Obliquity in degrees  :',obliquit
     39      endif
    3840
    3941      e_elips=(apoastr-periastr)/(periastr+apoastr)
    4042      p_elips=0.5*(periastr+apoastr)*(1-e_elips*e_elips)
    4143
    42       print*,'iniorbit: e_elips',e_elips
    43       print*,'iniorbit: p_elips',p_elips
    44 
     44      if (is_master) then
     45            print*,'iniorbit: e_elips',e_elips
     46            print*,'iniorbit: p_elips',p_elips
     47      endif
    4548!-----------------------------------------------------------------------
    4649! compute polar angle and distance to the Sun:
  • trunk/LMDZ.PLUTO/libf/phypluto/phyetat0_mod.F90

    r3502 r3504  
    2626                     inquire_dimension, inquire_dimension_length
    2727  use callkeys_mod, only: surfalbedo,surfemis, callsoil
     28  use mod_phys_lmdz_para, only : is_master
    2829  implicit none
    2930
     
    100101
    101102  ! possibility to modify tab_cntrl in tabfi
    102   write(*,*)
    103   write(*,*) 'TABFI in phyeta0: Lmodif=',Lmodif," tab0=",tab0
     103  if (is_master) write(*,*)
     104  if (is_master) write(*,*) 'TABFI in phyeta0: Lmodif=',Lmodif," tab0=",tab0
    104105  call tabfi (ngrid,nid_start,Lmodif,tab0,day_ini,lmax,p_rad, &
    105106                   p_omeg,p_g,p_cpp,p_mugaz,p_daysec,time)
     
    119120  phisfi(:)=0.
    120121endif ! of if (startphy_file)
    121 write(*,*) "phyetat0: surface geopotential <phisfi> range:", &
     122if (is_master) write(*,*) "phyetat0: surface geopotential <phisfi> range:", &
    122123               minval(phisfi), maxval(phisfi)
    123124
     
    132133  surfalbedo=0.5
    133134  call getin_p("surfalbedo",surfalbedo)
    134   print*,"surfalbedo",surfalbedo
     135  if (is_master) print*,"surfalbedo",surfalbedo
    135136  albedodat(:)=surfalbedo
    136137endif ! of if (startphy_file)
    137 write(*,*) "phyetat0: Bare ground albedo <albedodat> range:", &
     138if (is_master) write(*,*) "phyetat0: Bare ground albedo <albedodat> range:", &
    138139             minval(albedodat), maxval(albedodat)
    139140
     
    147148  zmea(:)=0.
    148149endif ! of if (startphy_file)
    149 write(*,*) "phyetat0: <ZMEA> range:", &
     150if (is_master) write(*,*) "phyetat0: <ZMEA> range:", &
    150151             minval(zmea), maxval(zmea)
    151152
     
    159160  zstd(:)=0.
    160161endif ! of if (startphy_file)
    161 write(*,*) "phyetat0: <ZSTD> range:", &
     162if (is_master) write(*,*) "phyetat0: <ZSTD> range:", &
    162163             minval(zstd), maxval(zstd)
    163164
     
    171172  zsig(:)=0.
    172173endif ! of if (startphy_file)
    173 write(*,*) "phyetat0: <ZSIG> range:", &
     174if (is_master) write(*,*) "phyetat0: <ZSIG> range:", &
    174175             minval(zsig), maxval(zsig)
    175176
     
    183184  zgam(:)=0.
    184185endif ! of if (startphy_file)
    185 write(*,*) "phyetat0: <ZGAM> range:", &
     186if (is_master) write(*,*) "phyetat0: <ZGAM> range:", &
    186187             minval(zgam), maxval(zgam)
    187188
     
    195196  zthe(:)=0.
    196197endif ! of if (startphy_file)
    197 write(*,*) "phyetat0: <ZTHE> range:", &
     198if (is_master) write(*,*) "phyetat0: <ZTHE> range:", &
    198199             minval(zthe), maxval(zthe)
    199200
     
    207208  tsurf(:)=0. ! will be updated afterwards in physiq !
    208209endif ! of if (startphy_file)
    209 write(*,*) "phyetat0: Surface temperature <tsurf> range:", &
     210if (is_master) write(*,*) "phyetat0: Surface temperature <tsurf> range:", &
    210211             minval(tsurf), maxval(tsurf)
    211212
     
    220221  surfemis=1.0
    221222  call getin_p("surfemis",surfemis)
    222   print*,"surfemis",surfemis
     223  if (is_master) print*,"surfemis",surfemis
    223224  emis(:)=surfemis
    224225endif ! of if (startphy_file)
    225 write(*,*) "phyetat0: Surface emissivity <emis> range:", &
     226if (is_master) write(*,*) "phyetat0: Surface emissivity <emis> range:", &
    226227             minval(emis), maxval(emis)
    227228
     
    237238  q2(:,:)=0.
    238239endif ! of if (startphy_file)
    239 write(*,*) "phyetat0: PBL wind variance <q2> range:", &
     240if (is_master) write(*,*) "phyetat0: PBL wind variance <q2> range:", &
    240241             minval(q2), maxval(q2)
    241242
  • trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90

    r3501 r3504  
    726726            ! at firstcall of callcorrk so we can output XspecIR, XspecVI
    727727            ! when using Dynamico
    728             print*, "physiq_mod: Correlated-k data base folder:",trim(datadir)
     728            if (is_master) print*, "physiq_mod: Correlated-k data base folder:",trim(datadir)
    729729            call getin_p("corrkdir",corrkdir)
    730             print*,"corrkdir = ", corrkdir
     730            if (is_master) print*,"corrkdir = ", corrkdir
    731731            write (tmp1, '(i4)') L_NSPECTI
    732732            write (tmp2, '(i4)') L_NSPECTV
  • trunk/LMDZ.PLUTO/libf/phypluto/setspi.F90

    r3184 r3504  
    22
    33!==================================================================
    4 !     
     4!
    55!     Purpose
    66!     -------
    77!     Set up spectral intervals and Planck function in the longwave.
    8 !     
     8!
    99!     Authors
    10 !     ------- 
     10!     -------
    1111!     Adapted from setspi in the NASA Ames radiative code by
    1212!     Robin Wordsworth (2009).
    13 !     
     13!
    1414!     Called by
    1515!     ---------
    1616!     callcorrk.F
    17 !     
     17!
    1818!     Calls
    1919!     -----
    2020!     none
    21 !     
     21!
    2222!==================================================================
    2323
     
    2626      use datafile_mod, only: datadir
    2727      use comcstfi_mod, only: pi
     28      use mod_phys_lmdz_para, only : is_master
    2829
    2930      implicit none
     
    4243      real*8 :: c1 = 3.741832D-16 ! W m^-2
    4344      real*8 :: c2 = 1.438786D-2  ! m K
    44      
     45
    4546      real*8 :: lastband(2), plancksum
    4647
     
    7576      write(temp1,'(i2.2)') L_NSPECTI
    7677      !file_id='/corrk_data/' // corrkdir(1:LEN_TRIM(corrkdir)) // '/narrowbands_IR.in'
    77       file_id='/corrk_data/'//trim(adjustl(banddir))//'/narrowbands_IR.in' 
     78      file_id='/corrk_data/'//trim(adjustl(banddir))//'/narrowbands_IR.in'
    7879      file_path=TRIM(datadir)//TRIM(file_id)
    7980
     
    8182      inquire(FILE=file_path,EXIST=file_ok)
    8283      if(.not.file_ok) then
    83          write(*,*)'The file ',TRIM(file_path)
    84          write(*,*)'was not found by setspi.F90, exiting.'
    85          write(*,*)'Check that your path to datagcm:',trim(datadir)
    86          write(*,*)' is correct. You can change it in callphys.def with:'
    87          write(*,*)' datadir = /absolute/path/to/datagcm'
    88          write(*,*)'Also check that the corrkdir you chose in callphys.def exists.'
    89          call abort
    90       endif
    91    
    92 !$OMP MASTER   
     84         if (is_master) then
     85            write(*,*)'The file ',TRIM(file_path)
     86            write(*,*)'was not found by setspi.F90, exiting.'
     87            write(*,*)'Check that your path to datagcm:',trim(datadir)
     88            write(*,*)' is correct. You can change it in callphys.def with:'
     89            write(*,*)' datadir = /absolute/path/to/datagcm'
     90            write(*,*)'Also check that the corrkdir you chose in callphys.def exists.'
     91         endif
     92         call abort_physic("setspi", "File not found by setspi", 1)
     93      endif
     94
     95!$OMP MASTER
    9396      nb=0
    9497      ierr=0
    95       ! check that the file contains the right number of bands 
     98      ! check that the file contains the right number of bands
    9699      open(131,file=file_path,form='formatted')
    97100      read(131,*,iostat=ierr) file_entries
     
    103106      close(131)
    104107
    105       write(*,*) 'setspi: L_NSPECTI = ',L_NSPECTI, 'in the model '
    106       write(*,*) '        there are   ',nb, 'entries in ',TRIM(file_path)
     108      if (is_master) then
     109         write(*,*) 'setspi: L_NSPECTI = ',L_NSPECTI, 'in the model '
     110         write(*,*) '        there are   ',nb, 'entries in ',TRIM(file_path)
     111      endif
    107112      if(nb.ne.L_NSPECTI) then
    108          write(*,*) 'MISMATCH !! I stop here'
    109          call abort
     113         call abort_physic("setspi",'MISMATCH !! I stop here',1)
    110114      endif
    111115
    112116      ! load and display the data
    113117      open(111,file=file_path,form='formatted')
    114       read(111,*) 
     118      read(111,*)
    115119      do M=1,L_NSPECTI-1
    116120         read(111,*) BWNI(M)
     
    123127!$OMP BARRIER
    124128
    125       print*,''
    126       print*,'setspi: IR band limits:'
    127       do M=1,L_NSPECTI+1
    128          print*,m,'-->',BWNI(M),' cm^-1'
    129       end do
    130 
    131 !     Set up mean wavenumbers and wavenumber deltas.  Units of
     129      if (is_master)then
     130         print*,''
     131         print*,'setspi: IR band limits:'
     132         do M=1,L_NSPECTI+1
     133            print*,m,'-->',BWNI(M),' cm^-1'
     134         end do
     135      endif
     136
     137!     Set up mean wavenumbers and wavenumber deltas.  Units of
    132138!     wavenumbers is cm^(-1); units of wavelengths is microns.
    133139
     
    136142         DWNI(M)  = BWNI(M+1)-BWNI(M)
    137143         WAVEI(M) = 1.0D+4/WNOI(M)
    138          BLAMI(M) = 0.01D0/BWNI(M)         
     144         BLAMI(M) = 0.01D0/BWNI(M)
    139145      end do
    140146      BLAMI(M) = 0.01D0/BWNI(M)
     
    147153!     original planck.f; W m^-2 wavenumber^-1, where wavenumber is in CM^-1.
    148154
    149       print*,''
    150       print*,'setspi: Current Planck integration range:'
    151       print*,'T = ',dble(NTstart)/NTfac, ' to ',dble(NTstop)/NTfac,' K.'
     155      if (is_master)then
     156         print*,''
     157         print*,'setspi: Current Planck integration range:'
     158         print*,'T = ',dble(NTstart)/NTfac, ' to ',dble(NTstop)/NTfac,' K.'
     159      endif
    152160
    153161      IF(.NOT.ALLOCATED(planckir)) ALLOCATE(planckir(L_NSPECTI,NTstop-NTstart+1))
     
    159167         bma = (b-a)/2.0D0
    160168         ! if (nw .eq. 25) then !LT debug
    161          !    print*, "a = ",a 
    162          !    print*, "b= ",b 
    163          !    print*,"bpa = ",bpa 
     169         !    print*, "a = ",a
     170         !    print*, "b= ",b
     171         !    print*,"bpa = ",bpa
    164172         !    print*, "bma = ",bma
    165173         ! endif
     
    170178               y    = bma*x(mm)+bpa
    171179               !to avoid floating overflow when T is low and optical wavelength
    172                if ((c2/(y*T)) .lt. 700.0D0) then 
     180               if ((c2/(y*T)) .lt. 700.0D0) then
    173181                  ans  = ans + w(mm)*c1/(y**5*(exp(c2/(y*T))-1.0D0))
    174                else 
     182               else
    175183                  ans = ans +0.0D0
    176184               endif
     
    179187         end do
    180188      end do
    181          
     189
    182190      ! force planck=sigma*eps*T^4 for each temperature in array
    183191      if(forceEC)then
    184          print*,'setspi: Force F=sigma*eps*T^4 for all values of T!'
     192         if (is_master) print*,'setspi: Force F=sigma*eps*T^4 for all values of T!'
    185193         do nt=NTstart,NTstop
    186194            plancksum=0.0D0
    187195            T=dble(NT)/NTfac
    188        
     196
    189197            do NW=1,L_NSPECTI
    190198               plancksum=plancksum+  &
     
    207215            plancksum=plancksum+planckir(NW,nt-NTstart+1)*DWNI(NW)*pi
    208216         end do
    209          print*,'setspi: At lower limit:'
    210          print*,'in model sig*T^4 = ',plancksum,' W m^-2'
    211          print*,'actual sig*T^4   = ',sigma*(dble(nt)/NTfac)**4,' W m^-2'
    212          
     217         if (is_master) then
     218            print*,'setspi: At lower limit:'
     219            print*,'in model sig*T^4 = ',plancksum,' W m^-2'
     220            print*,'actual sig*T^4   = ',sigma*(dble(nt)/NTfac)**4,' W m^-2'
     221         endif
    213222         ! check energy conservation at upper temperature boundary
    214223         plancksum=0.0D0
     
    217226            plancksum=plancksum+planckir(NW,nt-NTstart+1)*DWNI(NW)*pi
    218227         end do
    219          print*,'setspi: At upper limit:'
    220          print*,'in model sig*T^4 = ',plancksum,' W m^-2'
    221          print*,'actual sig*T^4   = ',sigma*(dble(nt)/NTfac)**4,' W m^-2'
    222          print*,''
     228         if (is_master) then
     229            print*,'setspi: At upper limit:'
     230            print*,'in model sig*T^4 = ',plancksum,' W m^-2'
     231            print*,'actual sig*T^4   = ',sigma*(dble(nt)/NTfac)**4,' W m^-2'
     232            print*,''
     233         endif
    223234      endif
    224235
  • trunk/LMDZ.PLUTO/libf/phypluto/setspv.F90

    r3184 r3504  
    22
    33!==================================================================
    4 !     
     4!
    55!     Purpose
    66!     -------
    7 !     Set up spectral intervals, stellar spectrum and Rayleigh 
    8 !     opacity in the shortwave. 
    9 !     
     7!     Set up spectral intervals, stellar spectrum and Rayleigh
     8!     opacity in the shortwave.
     9!
    1010!     Authors
    11 !     ------- 
     11!     -------
    1212!     Adapted from setspv in the NASA Ames radiative code by
    1313!     Robin Wordsworth (2009).
     
    1616!     ---------
    1717!     callcorrk.F
    18 !     
     18!
    1919!     Calls
    2020!     -----
    2121!     ave_stelspec.F
    22 !     
     22!
    2323!==================================================================
    2424
     
    2828      use datafile_mod, only: datadir
    2929      use callkeys_mod, only: Fat1AU,rayleigh
     30      use mod_phys_lmdz_para, only : is_master
    3031
    3132      implicit none
     
    5354
    5455      write(temp1,'(i2.2)') L_NSPECTV
    55       file_id='/corrk_data/'//trim(adjustl(banddir))//'/narrowbands_VI.in' 
     56      file_id='/corrk_data/'//trim(adjustl(banddir))//'/narrowbands_VI.in'
    5657      file_path=TRIM(datadir)//TRIM(file_id)
    5758
     
    6566         write(*,*)' datadir = /absolute/path/to/datagcm'
    6667         write(*,*)'Also check that the corrkdir you chose in callphys.def exists.'
    67          call abort
     68         call abort_physic("setspv", "File not found by setspi", 1)
    6869      endif
    69        
    70 !$OMP MASTER       
     70
     71!$OMP MASTER
    7172      nb=0
    7273      ierr=0
    73       ! check that the file contains the right number of bands 
     74      ! check that the file contains the right number of bands
    7475      open(131,file=file_path,form='formatted')
    7576      read(131,*,iostat=ierr) file_entries
     
    8081      close(131)
    8182
    82       write(*,*) 'setspv: L_NSPECTV = ',L_NSPECTV, 'in the model '
    83       write(*,*) '        there are   ',nb, 'entries in ',TRIM(file_path)
     83      if (is_master) then
     84         write(*,*) 'setspv: L_NSPECTV = ',L_NSPECTV, 'in the model '
     85         write(*,*) '        there are   ',nb, 'entries in ',TRIM(file_path)
     86      endif
    8487      if(nb.ne.L_NSPECTV) then
    85          write(*,*) 'MISMATCH !! I stop here'
    86          call abort
     88         call abort_physic("setspv",'MISMATCH !! I stop here',1)
    8789      endif
    8890
    8991      ! load and display the data
    9092      open(111,file=file_path,form='formatted')
    91       read(111,*) 
     93      read(111,*)
    9294       do M=1,L_NSPECTV-1
    9395         read(111,*) BWNV(M)
     
    100102!$OMP BARRIER
    101103
    102       print*,'setspv: VI band limits:'
    103       do M=1,L_NSPECTV+1
    104          print*,m,'-->',BWNV(M),' cm^-1'
    105       end do
    106       print*,' '
     104      if (is_master) then
     105         print*,'setspv: VI band limits:'
     106         do M=1,L_NSPECTV+1
     107            print*,m,'-->',BWNV(M),' cm^-1'
     108         end do
     109         print*,' '
     110      endif
    107111
    108 !     Set up mean wavenumbers and wavenumber deltas.  Units of 
     112!     Set up mean wavenumbers and wavenumber deltas.  Units of
    109113!     wavenumbers is cm^(-1); units of wavelengths is microns.
    110114
     
    121125!     Set up stellar spectrum
    122126
    123       write(*,*)'setspv: Interpolating stellar spectrum from the hires data...'
     127      if (is_master) write(*,*)'setspv: Interpolating stellar spectrum from the hires data...'
    124128      call ave_stelspec(STELLAR)
    125129
    126 !     Sum the stellar flux, and write out the result. 
    127       sum = 0.0 
     130!     Sum the stellar flux, and write out the result.
     131      sum = 0.0
    128132      do N=1,L_NSPECTV
    129133         STELLARF(N) = STELLAR(N) * Fat1AU
    130134         sum         = sum+STELLARF(N)
    131135      end do
    132       write(6,'("setspv: Stellar flux at 1 AU = ",f9.2," W m-2")') sum
    133       print*,' '
     136      if (is_master)then
     137         write(6,'("setspv: Stellar flux at 1 AU = ",f9.2," W m-2")') sum
     138         print*,' '
     139      endif
    134140
    135141
     
    142148         call calc_rayleigh
    143149      else
    144          print*,'setspv: No Rayleigh scattering, check for NaN in output!'
     150         if (is_master) print*,'setspv: No Rayleigh scattering, check for NaN in output!'
    145151         do N=1,L_NSPECTV
    146152            TAURAY(N) = 1E-16
  • trunk/LMDZ.PLUTO/libf/phypluto/suaer_corrk.F90

    r3501 r3504  
    142142
    143143         ! Only one table of optical properties :
    144          write(*,*)'Suaer haze optical properties, using: ', &
     144         if (is_master) write(*,*)'Suaer haze optical properties, using: ', &
    145145                           TRIM(hazeprop_file)
    146146
  • trunk/LMDZ.PLUTO/libf/phypluto/sugas_corrk.F90

    r3184 r3504  
    3838      use recombin_corrk_mod, only: su_recombin,        &
    3939                corrk_recombin, use_premix, nrecomb_tot, rcb2tot_idx
     40      use mod_phys_lmdz_para, only : is_master
    4041      implicit none
    4142
     
    6566
    6667      if (.not. moderntracdef) use_premix=.true. ! Added by JVO for compatibility with 'old' traceur.def
    67      
     68
    6869!$OMP MASTER
    6970      if (use_premix) then ! use_premix flag added by JVO, thus if pure recombining then premix is skipped
     
    9899                  'match that in gases.def (',ngasmx,'), exiting.'
    99100           call abort
    100         endif 
     101        endif
    101102      endif
    102103
     
    111112                '], radiative code cannot handle this.'
    112113         call abort
    113       endif 
     114      endif
    114115
    115116      ! dynamically allocate gastype and read from Q.dat
     
    145146        ! Check that gastype and gnom match
    146147        do igas=1,ngas
    147            print*,'Gas ',igas,' is ',trim(gnom(igas))
     148           if (is_master) print*,'Gas ',igas,' is ',trim(gnom(igas))
    148149           if (trim(gnom(igas)).ne.trim(gastype(igas))) then
    149150              print*,'Name of a gas in radiative transfer data (',trim(gastype(igas)),') does not ', &
    150151                   'match that in gases.def (',trim(gnom(igas)),'), exiting. You should compare ', &
    151                    'gases.def with Q.dat in your radiative transfer directory.' 
     152                   'gases.def with Q.dat in your radiative transfer directory.'
    152153              call abort
    153154           endif
    154155        enddo
    155         print*,'Confirmed gas match in radiative transfer and gases.def!'
     156        if (is_master) print*,'Confirmed gas match in radiative transfer and gases.def!'
    156157      endif
    157158
    158159      ! display the values
    159       print*,'Variable gas volume mixing ratios:'
    160       do n=1,L_REFVAR
    161          !print*,n,'.',wrefvar(n),' kg/kg' ! pay attention!
    162          print*,n,'.',wrefvar(n),' mol/mol'
    163       end do
    164       print*,''
    165      
     160      if (is_master)then
     161         print*,'Variable gas volume mixing ratios:'
     162         do n=1,L_REFVAR
     163            !print*,n,'.',wrefvar(n),' kg/kg' ! pay attention!
     164            print*,n,'.',wrefvar(n),' mol/mol'
     165         end do
     166         print*,''
     167      endif
     168
    166169      else
    167170        L_REFVAR = 1
     
    185188         call abort
    186189      endif
    187      
     190
    188191      ! check the array size is correct, load the coefficients
    189192      open(111,file=TRIM(file_path),form='formatted')
     
    192195      read(111,*) gweight
    193196      close(111)
    194  
     197
    195198      ! display the values
    196       print*,'Correlated-k g-space grid:'
    197       do n=1,L_NGAUSS
    198          print*,n,'.',gweight(n)
    199       end do
    200       print*,''
     199      if (is_master)then
     200         print*,'Correlated-k g-space grid:'
     201         do n=1,L_NGAUSS
     202            print*,n,'.',gweight(n)
     203         end do
     204         print*,''
     205      endif
    201206
    202207!=======================================================================
     
    221226         call abort
    222227      endif
    223      
     228
    224229      ! get array size, load the coefficients
    225230      open(111,file=TRIM(file_path),form='formatted')
     
    232237
    233238      ! display the values
    234       print*,'Correlated-k pressure grid (mBar):'
    235       do n=1,L_NPREF
    236          print*,n,'. 1 x 10^',pgasref(n),' mBar'
    237       end do
    238       print*,''
     239      if (is_master)then
     240         print*,'Correlated-k pressure grid (mBar):'
     241         do n=1,L_NPREF
     242            print*,n,'. 1 x 10^',pgasref(n),' mBar'
     243         end do
     244         print*,''
     245      endif
    239246
    240247      ! save the min / max matrix values
     
    276283
    277284      ! display the values
    278       print*,'Correlated-k temperature grid:'
    279       do n=1,L_NTREF
    280          print*,n,'.',tgasref(n),' K'
    281       end do
     285      if (is_master)then
     286         print*,'Correlated-k temperature grid:'
     287         do n=1,L_NTREF
     288            print*,n,'.',tgasref(n),' K'
     289         end do
     290      endif
    282291
    283292      ! save the min / max matrix values
     
    299308!-----------------------------------------------------------------------
    300309! allocate the multidimensional arrays in radcommon_h
    301      if(corrk_recombin) then
    302         IF(.NOT. ALLOCATED(gasi)) ALLOCATE(gasi(L_NTREF,L_PINT,L_REFVAR+nrecomb_tot,L_NSPECTI,L_NGAUSS))
    303         IF(.NOT. ALLOCATED(gasv)) ALLOCATE(gasv(L_NTREF,L_PINT,L_REFVAR+nrecomb_tot,L_NSPECTV,L_NGAUSS))
    304         ! display the values
    305         print*,''
    306         print*,'Correlated-k matrix size:'
    307         print*,'[',L_NTREF,',',L_NPREF,',',L_REFVAR+nrecomb_tot,' (',L_REFVAR,'+',nrecomb_tot,'),',L_NGAUSS,']'
     310      if(corrk_recombin) then
     311         IF(.NOT. ALLOCATED(gasi)) ALLOCATE(gasi(L_NTREF,L_PINT,L_REFVAR+nrecomb_tot,L_NSPECTI,L_NGAUSS))
     312         IF(.NOT. ALLOCATED(gasv)) ALLOCATE(gasv(L_NTREF,L_PINT,L_REFVAR+nrecomb_tot,L_NSPECTV,L_NGAUSS))
     313         ! display the values
     314         if (is_master)then
     315            print*,''
     316            print*,'Correlated-k matrix size:'
     317            print*,'[',L_NTREF,',',L_NPREF,',',L_REFVAR+nrecomb_tot,' (',L_REFVAR,'+',nrecomb_tot,'),',L_NGAUSS,']'
     318         endif
    308319      else
    309         IF(.NOT. ALLOCATED(gasi)) ALLOCATE(gasi(L_NTREF,L_PINT,L_REFVAR,L_NSPECTI,L_NGAUSS))
    310         IF(.NOT. ALLOCATED(gasv)) ALLOCATE(gasv(L_NTREF,L_PINT,L_REFVAR,L_NSPECTV,L_NGAUSS))
    311         ! display the values
    312         print*,''
    313         print*,'Correlated-k matrix size:'
    314         print*,'[',L_NTREF,',',L_NPREF,',',L_REFVAR,',',L_NGAUSS,']'
     320         IF(.NOT. ALLOCATED(gasi)) ALLOCATE(gasi(L_NTREF,L_PINT,L_REFVAR,L_NSPECTI,L_NGAUSS))
     321         IF(.NOT. ALLOCATED(gasv)) ALLOCATE(gasv(L_NTREF,L_PINT,L_REFVAR,L_NSPECTV,L_NGAUSS))
     322         ! display the values
     323         if (is_master)then
     324            print*,''
     325            print*,'Correlated-k matrix size:'
     326            print*,'[',L_NTREF,',',L_NPREF,',',L_REFVAR,',',L_NGAUSS,']'
     327         endif
    315328      endif
    316329
     
    321334!        wavelength used to separate IR from VI in graybody. We will need that anyway
    322335         IR_VI_wnlimit=3000.
    323          write(*,*)"graybody: Visible / Infrared separation set at",10000./IR_VI_wnlimit,"um"
    324          
     336         if (is_master)write(*,*)"graybody: Visible / Infrared separation set at",10000./IR_VI_wnlimit,"um"
     337
    325338         nVI_limit=0
    326339         Do nw=1,L_NSPECTV
     
    344357         call getin_p("kappa_VI",kappa_VI)
    345358         write(*,*)" kappa_VI = ",kappa_VI
    346          kappa_VI=kappa_VI*1.e4* mugaz * 1.672621e-27    ! conversion from m^2/kg to cm^2/molecule         
    347      
     359         kappa_VI=kappa_VI*1.e4* mugaz * 1.672621e-27    ! conversion from m^2/kg to cm^2/molecule
     360
    348361!        constant absorption coefficient in IR
    349362         write(*,*)"graybody: constant absorption coefficient in InfraRed:"
    350363         kappa_IR=-100000.
    351364         call getin_p("kappa_IR",kappa_IR)
    352          write(*,*)" kappa_IR = ",kappa_IR       
    353          kappa_IR=kappa_IR*1.e4* mugaz * 1.672621e-27    ! conversion from m^2/kg to cm^2/molecule 
     365         write(*,*)" kappa_IR = ",kappa_IR
     366         kappa_IR=kappa_IR*1.e4* mugaz * 1.672621e-27    ! conversion from m^2/kg to cm^2/molecule
    354367
    355368         write(*,*)"graybody: Visible / Infrared separation set at band: IR=",nIR_limit,", VI=",nVI_limit
    356                
     369
    357370      Else
    358          kappa_VI=1.e-30     
    359          kappa_IR=1.e-30       
     371         kappa_VI=1.e-30
     372         kappa_IR=1.e-30
    360373      End if
    361374
    362 !$OMP MASTER         
     375!$OMP MASTER
    363376
    364377      ! VISIBLE
    365378      if (callgasvis) then
    366            
     379
    367380        ! Looking for premixed corrk files corrk_gcm_VI.dat if needed
    368381        if (use_premix) then
     
    373386              print*,'Visible corrk gaseous absorption is set to zero if graybody=F'
    374387           else
    375               file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_VI.dat' 
     388              file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_VI.dat'
    376389              file_path=TRIM(datadir)//TRIM(file_id)
    377              
     390
    378391              ! check that the file exists
    379392              inquire(FILE=file_path,EXIST=file_ok)
     
    384397                 call abort
    385398              endif
    386            
     399
    387400              open(111,file=TRIM(file_path),form='formatted')
    388401              read(111,*) gasv8(:,:,:L_REFVAR,:,:)
     
    392405           gasv8(:,:,1,:,:)=0.0 ! dummy but needs to be initialized
    393406        endif ! use_premix
    394        
     407
    395408        ! Looking for others files corrk_gcm_VI_XXX.dat if needed
    396409        if (corrk_recombin) then
    397410          do igas=1,nrecomb_tot
    398411
    399             file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_VI_'//trim(adjustl(noms(rcb2tot_idx(igas))))//'.dat' 
     412            file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_VI_'//trim(adjustl(noms(rcb2tot_idx(igas))))//'.dat'
    400413            file_path=TRIM(datadir)//TRIM(file_id)
    401              
     414
    402415            ! check that the file exists
    403416            inquire(FILE=file_path,EXIST=file_ok)
     
    408421               call abort
    409422            endif
    410          
     423
    411424            open(111,file=TRIM(file_path),form='formatted')
    412425            read(111,*) gasv8(:,:,L_REFVAR+igas,:,:)
    413426            close(111)
    414           enddo                           
     427          enddo
    415428        endif ! corrk_recombin
    416429
     
    423436         gasv8(:,:,:,nVI_limit+1:L_NSPECTV,:)= gasv8(:,:,:,nVI_limit+1:L_NSPECTV,:)+kappa_VI
    424437      end if
    425            
    426          else 
     438
     439         else
    427440            print*,'Visible corrk gaseous absorption is set to zero.'
    428441            gasv8(:,:,:,:,:)=0.0
    429442         endif ! callgasvis
    430          
     443
    431444!$OMP END MASTER
    432445!$OMP BARRIER
    433446
    434447      ! INFRA-RED
    435      
     448
    436449      ! Looking for premixed corrk files corrk_gcm_IR.dat if needed
    437450      if (use_premix) then
    438451        if ((corrkdir(1:4).eq.'null'))then       !.or.(TRIM(corrkdir).eq.'null_LowTeffStar')) then
    439452           print*,'Infrared corrk gaseous absorption is set to zero if graybody=F'
    440 !$OMP MASTER         
     453!$OMP MASTER
    441454           gasi8(:,:,:,:,:)=0.0
    442455!$OMP END MASTER
    443456!$OMP BARRIER
    444         else 
    445            file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_IR.dat' 
     457        else
     458           file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_IR.dat'
    446459           file_path=TRIM(datadir)//TRIM(file_id)
    447        
     460
    448461           ! check that the file exists
    449462           inquire(FILE=file_path,EXIST=file_ok)
     
    454467              call abort
    455468           endif
    456          
    457 !$OMP MASTER                   
     469
     470!$OMP MASTER
    458471           open(111,file=TRIM(file_path),form='formatted')
    459472           read(111,*) gasi8(:,:,:L_REFVAR,:,:)
     
    461474!$OMP END MASTER
    462475!$OMP BARRIER
    463      
     476
    464477           ! 'fzero' is a currently unused feature that allows optimisation
    465478           ! of the radiative transfer by neglecting bands where absorption
    466            ! is close to zero. As it could be useful in the future, this 
     479           ! is close to zero. As it could be useful in the future, this
    467480           ! section of the code has been kept commented and not erased.
    468481           ! RW 7/3/12.
     
    505518         gasi8(:,:,1,:,:)=0.0 ! dummy but needs to be initialized
    506519      endif ! use_premix
    507    
     520
    508521      ! Looking for others files corrk_gcm_IR_XXX.dat if needed
    509522      if (corrk_recombin) then
    510523        do igas=1,nrecomb_tot
    511524
    512           file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_IR_'//trim(adjustl(noms(rcb2tot_idx(igas))))//'.dat' 
     525          file_id='/corrk_data/'//trim(adjustl(banddir))//'/corrk_gcm_IR_'//trim(adjustl(noms(rcb2tot_idx(igas))))//'.dat'
    513526          file_path=TRIM(datadir)//TRIM(file_id)
    514            
     527
    515528          ! check that the file exists
    516529          inquire(FILE=file_path,EXIST=file_ok)
     
    521534             call abort
    522535          endif
    523 !$OMP MASTER           
     536!$OMP MASTER
    524537          open(111,file=TRIM(file_path),form='formatted')
    525538          read(111,*) gasi8(:,:,L_REFVAR+igas,:,:)
     
    527540!$OMP END MASTER
    528541!$OMP BARRIER
    529         enddo                           
     542        enddo
    530543      endif ! corrk_recombin
    531544
    532 !$OMP MASTER                 
     545!$OMP MASTER
    533546      if(nIR_limit.eq.0) then
    534547         gasi8(:,:,:,:,:)= gasi8(:,:,:,:,:)+kappa_VI
     
    564577                     end if
    565578                  end do
    566                  
     579
    567580               end do
    568581            end do
     
    581594!     First, the initial interval
    582595
    583                   n = 1 
     596                  n = 1
    584597                  do m=1,5
    585598                     x     = pfgasref(m)
     
    594607                     call lagrange(x,xi,yi,ans)
    595608                     gasi(nt,m,nh,nw,ng) = 10.0**ans
    596                   end do 
    597                  
     609                  end do
     610
    598611                  do n=2,L_NPREF-2
    599612                     do m=1,5
     
    610623                        call lagrange(x,xi,yi,ans)
    611624                        gasi(nt,i,nh,nw,ng) = 10.0**ans
    612                      end do 
     625                     end do
    613626                  end do
    614627
    615628!     Now, get the last interval
    616629
    617                   n = L_NPREF-1                 
     630                  n = L_NPREF-1
    618631                  do m=1,5
    619632                     i     = (n-1)*5+m
     
    629642                     call lagrange(x,xi,yi,ans)
    630643                     gasi(nt,i,nh,nw,ng) = 10.0**ans
    631                   end do 
     644                  end do
    632645
    633646!     Fill the last pressure point
     
    650663!     First, the initial interval
    651664
    652                   n = 1 
     665                  n = 1
    653666                  do m=1,5
    654667                     x     = pfgasref(m)
     
    663676                     call lagrange(x,xi,yi,ans)
    664677                     gasv(nt,m,nh,nw,ng) = 10.0**ans
    665                   end do 
    666                  
     678                  end do
     679
    667680                  do n=2,L_NPREF-2
    668681                     do m=1,5
     
    679692                        call lagrange(x,xi,yi,ans)
    680693                        gasv(nt,i,nh,nw,ng) = 10.0**ans
    681                      end do 
     694                     end do
    682695                  end do
    683696
     
    698711                     call lagrange(x,xi,yi,ans)
    699712                     gasv(nt,i,nh,nw,ng) = 10.0**ans
    700                   end do 
     713                  end do
    701714
    702715!     Fill the last pressure point
     
    704717                  gasv(nt,L_PINT,nh,nw,ng) = &
    705718                      10.0**gasv8(nt,L_NPREF,nh,nw,ng)
    706                  
     719
    707720               end do
    708721            end do
     
    743756            !    endif
    744757            ! enddo
    745            
     758
    746759         ! elseif (igas .eq. igas_H2O) then !AF24: removed
    747760
     
    750763      endif
    751764
    752       print*,'----------------------------------------------------'
    753       print*,'And that`s all we have. It`s possible that other'
    754       print*,'continuum absorption may be present, but if it is we'
    755       print*,'don`t yet have data for it...'
    756       print*,''
     765      if (is_master)then
     766         print*,'----------------------------------------------------'
     767         print*,'And that`s all we have. It`s possible that other'
     768         print*,'continuum absorption may be present, but if it is we'
     769         print*,'don`t yet have data for it...'
     770         print*,''
     771      endif
    757772
    758773!     Deallocate local arrays
  • trunk/LMDZ.PLUTO/libf/phypluto/surfini.F90

    r3503 r3504  
    77      use radinc_h, only : L_NSPECTV
    88      use callkeys_mod, only : albedosnow, albedon2ice
     9      use mod_phys_lmdz_para, only : is_master
    910
    1011      IMPLICIT NONE
     
    5152      call planetwide_minval(albedo_bareground,min_albedo)
    5253      call planetwide_maxval(albedo_bareground,max_albedo)
    53       write(*,*) 'surfini: minimum bare ground albedo',min_albedo
    54       write(*,*) 'surfini: maximum bare ground albedo',max_albedo
     54if (is_master)       write(*,*) 'surfini: minimum bare ground albedo',min_albedo
     55      if (is_master) write(*,*) 'surfini: maximum bare ground albedo',max_albedo
    5556
    5657
     
    6566         ENDDO
    6667      else
    67          write(*,*) "surfini: No N2 ice tracer on surface  ..."
    68          write(*,*) "         and therefore no albedo change."
     68         if (is_master) write(*,*) "surfini: No N2 ice tracer on surface  ..."
     69         if (is_master) write(*,*) "         and therefore no albedo change."
    6970      endif
    7071      call planetwide_minval(albedo,min_albedo)
    7172      call planetwide_maxval(albedo,max_albedo)
    72       write(*,*) 'surfini: minimum corrected initial albedo',min_albedo
    73       write(*,*) 'surfini: maximum corrected initial albedo',max_albedo
     73      if (is_master) write(*,*) 'surfini: minimum corrected initial albedo',min_albedo
     74      if (is_master) write(*,*) 'surfini: maximum corrected initial albedo',max_albedo
    7475
    7576
Note: See TracChangeset for help on using the changeset viewer.