[cig-commits] [commit] master: tidy up output file (71c1966)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Fri Oct 17 05:29:16 PDT 2014


Repository : https://github.com/geodynamics/axisem

On branch  : master
Link       : https://github.com/geodynamics/axisem/compare/607f803cf074063627513d235f9ed0837fc1dd44...b6457db24acdde4a4e1c08935ae1b22adf87f5bf

>---------------------------------------------------------------

commit 71c1966e2403553da0f6098677db135a5ad0f1ea
Author: martinvandriel <martin at vandriel.de>
Date:   Wed Oct 15 15:20:36 2014 +0200

    tidy up output file
    
    for parallel IO, a lot of stuff is now done by all processors, so for the verbosity to be
    usefull, we need to be more selective. Quick fix for now: yet another verbosity level


>---------------------------------------------------------------

71c1966e2403553da0f6098677db135a5ad0f1ea
 SOLVER/inparam_advanced.TEMPLATE |  1 +
 SOLVER/nc_routines.F90           | 67 ++++++++++++++++++++--------------------
 2 files changed, 35 insertions(+), 33 deletions(-)

diff --git a/SOLVER/inparam_advanced.TEMPLATE b/SOLVER/inparam_advanced.TEMPLATE
index 02ee7c5..0b4e696 100644
--- a/SOLVER/inparam_advanced.TEMPLATE
+++ b/SOLVER/inparam_advanced.TEMPLATE
@@ -103,6 +103,7 @@ XDMF_GLL_J       '3 0 2 4'
 # 0: only errors
 # 1: errors plus some information (default)
 # 2: extra stories for spare time
+# 3: every single detail of netcdf IO
 VERBOSITY               1
 
 # Extra diagnostic file output? (default: false)
diff --git a/SOLVER/nc_routines.F90 b/SOLVER/nc_routines.F90
index adc82aa..dca7753 100644
--- a/SOLVER/nc_routines.F90
+++ b/SOLVER/nc_routines.F90
@@ -608,7 +608,7 @@ subroutine nc_dump_rec_to_disk
 #endif
     call cpu_time(tack)
 
-    if (verbose > 1) then
+    if (verbose > 2) then
         write(6,"(I3,': Receiver data, Wrote ', F8.3, ' MB in ', F6.2, 's')") &
             mynum, real(dumpsize) * 4. / 1048576., tack-tick 
     end if
@@ -634,11 +634,11 @@ subroutine nc_rec_checkpoint
         if (iproc == mynum) then
 #endif
             if (num_rec > 0) then 
-                if (verbose > 1) write(6,"('   Proc ', I3, ' will dump receiver seismograms')") mynum
+                if (verbose > 2) write(6,"('   Proc ', I3, ' will dump receiver seismograms')") mynum
                 call nc_dump_rec_to_disk()
                 call flush(6)
             else
-                if (verbose > 1) write(6,"('   Proc ', I3, ' has no receivers and just waits for the others')") mynum
+                if (verbose > 2) write(6,"('   Proc ', I3, ' has no receivers and just waits for the others')") mynum
             end if
 #ifndef upnc
         end if
@@ -1007,12 +1007,12 @@ subroutine nc_define_outputfile(nrec, rec_names, rec_th, rec_th_req, rec_ph, rec
         if (verbose > 1) write(6,*) ' Netcdf file with ID ', ncid_out, ' produced.'
     end if
 #else
-    if (verbose > 1) write (6,*) ' Preparing netcdf file for parallel IO'
+    if (verbose > 1 .and. mynum == 0) write (6,*) ' Preparing netcdf file for parallel IO'
     nmode = ior(NF90_CLOBBER, NF90_NETCDF4)
     nmode = ior(nmode, NF90_MPIIO)
     call check( nf90_create(path=nc_fnam, cmode=nmode, ncid=ncid_out, &
                             comm=MPI_COMM_WORLD, info=MPI_INFO_NULL) )
-    if (verbose > 1) write(6,*) ' Netcdf file with ID ', ncid_out, ' produced.'
+    if (verbose > 1 .and. mynum == 0) write(6,*) ' Netcdf file with ID ', ncid_out, ' produced.'
 #endif
 
     if (dump_wavefields) then
@@ -1195,39 +1195,39 @@ subroutine nc_define_outputfile(nrec, rec_names, rec_th, rec_th_req, rec_ph, rec
 #ifndef upnc
     if (mynum == 0) then    
 #endif
-        if (verbose > 1) write(6,*) '  Producing groups for Seismograms and Snapshots'
+        if (verbose > 2) write(6,*) '  Producing groups for Seismograms and Snapshots'
 
         call check( nf90_def_grp(ncid_out, "Seismograms", ncid_recout) )
         call check( nf90_def_grp(ncid_out, "Snapshots", ncid_snapout) )
         call check( nf90_def_grp(ncid_out, "Surface", ncid_surfout) )
         call check( nf90_def_grp(ncid_out, "Mesh", ncid_meshout) )
-        if (verbose > 1) write(6,*) '  Seismograms group has ID', ncid_recout
-        if (verbose > 1) write(6,*) '  Snapshots group has ID', ncid_snapout
-        if (verbose > 1) write(6,*) '  Surface group has ID', ncid_surfout
-        if (verbose > 1) write(6,*) '  Mesh group has ID', ncid_meshout
+        if (verbose > 2) write(6,*) '  Seismograms group has ID', ncid_recout
+        if (verbose > 2) write(6,*) '  Snapshots group has ID', ncid_snapout
+        if (verbose > 2) write(6,*) '  Surface group has ID', ncid_surfout
+        if (verbose > 2) write(6,*) '  Mesh group has ID', ncid_meshout
         
-        if (verbose > 1) write(6,*) 'Define dimensions in ''Seismograms'' group of NetCDF output file'
+        if (verbose > 2) write(6,*) 'Define dimensions in ''Seismograms'' group of NetCDF output file'
 
-        if (verbose > 1) write(6,*) '  ''Seismograms'' group has ID ', ncid_recout
+        if (verbose > 2) write(6,*) '  ''Seismograms'' group has ID ', ncid_recout
 110     format(' Dimension ', A20, ' with length ', I8, ' and ID', I6, ' created.') 
         call check( nf90_def_dim(ncid_out, "seis_timesteps", nseismo, nc_times_dimid) )
-        if (verbose > 1) write(6,110) "seis_timesteps", nseismo, nc_times_dimid 
+        if (verbose > 2) write(6,110) "seis_timesteps", nseismo, nc_times_dimid 
 
         call check( nf90_def_dim(ncid_out, "sim_timesteps", niter, nc_iter_dimid) )
-        if (verbose > 1) write(6,110) "sim_timesteps", niter, nc_iter_dimid 
+        if (verbose > 2) write(6,110) "sim_timesteps", niter, nc_iter_dimid 
 
         call check( nf90_def_dim(ncid_recout, "receivers", nrec, nc_rec_dimid) )
-        if (verbose > 1) write(6,110) "receivers", nrec, nc_rec_dimid
+        if (verbose > 2) write(6,110) "receivers", nrec, nc_rec_dimid
 
         call check( nf90_def_dim(ncid_out, "components", 3, nc_comp_dimid) )
-        if (verbose > 1) write(6,110) "components", 3, nc_comp_dimid
+        if (verbose > 2) write(6,110) "components", 3, nc_comp_dimid
 
         call check( nf90_def_dim(ncid_recout, "recnamlength", 40, nc_recnam_dimid) ) 
-        if (verbose > 1) write(6,110) "recnamlength", 40, nc_recnam_dimid
+        if (verbose > 2) write(6,110) "recnamlength", 40, nc_recnam_dimid
 
-        if (verbose > 1) write(6,*) 'NetCDF dimensions defined'
+        if (verbose > 2) write(6,*) 'NetCDF dimensions defined'
 
-        if (verbose > 1) write(6,*) 'Define variables in ''Seismograms'' group of NetCDF output file'
+        if (verbose > 2) write(6,*) 'Define variables in ''Seismograms'' group of NetCDF output file'
         call flush(6)
 
         call check( nf90_def_var(ncid=ncid_recout, name="displacement", xtype=NF90_FLOAT,&
@@ -1274,7 +1274,7 @@ subroutine nc_define_outputfile(nrec, rec_names, rec_th, rec_th_req, rec_ph, rec
         
         if (dump_wavefields) then
             ! Wavefields group of output file N.B: Snapshots for kernel calculation
-            if (verbose > 1) write(6,*) 'Define variables in ''Snapshots'' group of NetCDF output file', &
+            if (verbose > 2) write(6,*) 'Define variables in ''Snapshots'' group of NetCDF output file', &
                                         '  awaiting', nstrain, ' snapshots'
 
             call check( nf90_def_dim( ncid   = ncid_out, &
@@ -1470,27 +1470,27 @@ subroutine nc_define_outputfile(nrec, rec_names, rec_th, rec_th_req, rec_ph, rec
                                          chunksizes = [npoints_global, 1] ))
                 call check( nf90_def_var_fill(ncid=ncid_snapout, varid=nc_field_varid(ivar), &
                                               no_fill=1, fill=0) )
-                if (verbose > 1) write(6,"(' Netcdf variable ', A16,' with ID ', I3, ' and length', &
+                if (verbose > 2) write(6,"(' Netcdf variable ', A16,' with ID ', I3, ' and length', &
                         & I8, ' created.')") &
                           trim(nc_varnamelist(ivar)), nc_field_varid(ivar), npoints_global
             end do
 
             ! Surface group in output file
-            if (verbose > 1) write(6,*) 'Define variables in ''Surface'' group of NetCDF output file'
+            if (verbose > 2) write(6,*) 'Define variables in ''Surface'' group of NetCDF output file'
             call check( nf90_put_att( ncid   = ncid_surfout, &
                                       name   = 'nstrain', &
                                       varid  = NF90_GLOBAL, &
                                       values = nstrain) )
             call check( nf90_def_dim( ncid_surfout, "straincomponents", len=6, &
                                       dimid=nc_strcomp_dimid) )
-            if (verbose > 1) write(6,110) "straincomponents", 6, nc_strcomp_dimid
+            if (verbose > 2) write(6,110) "straincomponents", 6, nc_strcomp_dimid
             
             call check( nf90_def_dim( ncid_surfout, "surf_elems", maxind_glob, nc_surf_dimid) )     
             call check( nf90_put_att( ncid   = ncid_surfout, &
                                       name   = 'nsurfelem', &
                                       varid  = NF90_GLOBAL, &
                                       values = maxind_glob) )
-            if (verbose > 1) write(6,110) "surf_elems", maxind_glob, nc_surf_dimid
+            if (verbose > 2) write(6,110) "surf_elems", maxind_glob, nc_surf_dimid
 
             call check( nf90_def_var( ncid_surfout, "elem_theta", NF90_FLOAT, &
                                       [nc_surf_dimid ], &
@@ -1530,7 +1530,7 @@ subroutine nc_define_outputfile(nrec, rec_names, rec_th, rec_th_req, rec_ph, rec
         end if
 
         
-        if (verbose > 1) write(6,'(a/)') 'NetCDF variables defined'
+        if (verbose > 2) write(6,'(a/)') 'NetCDF variables defined'
         ! Leave definition mode
         call check( nf90_enddef(ncid_out))
 
@@ -1616,7 +1616,7 @@ subroutine nc_define_outputfile(nrec, rec_names, rec_th, rec_th_req, rec_ph, rec
         surfdumpvar_strain = 0.0
         surfdumpvar_srcdisp = 0.0
 
-        if (mynum == 0 .and. verbose > 1) then
+        if (mynum == 0 .and. verbose > 2) then
             write(6,*)  'Allocating NetCDF buffer variables'
             write(6,90) 'recdumpvar', real(size(recdumpvar))/262144.
             write(6,90) 'surfdumpvar_disp', real(size(surfdumpvar_disp))/262144.
@@ -1731,7 +1731,7 @@ subroutine nc_finish_prepare
     do iproc = 0, nproc
         call barrier
         if (iproc == mynum .and. (npoints > 0 .or. maxind > 0 .or. num_rec > 0)) then
-            if (verbose>1) then
+            if (verbose > 1) then
                write(6,*) '  Processor ', iproc, ' opened the output file and will dump '
                write(6,*) '  his part of the mesh.'
             end if
@@ -2059,6 +2059,7 @@ subroutine nc_end_output
     use data_io,   only: dump_xdmf
     integer           :: iproc
 
+    call flush(6)
 #ifndef upnc
     call barrier
     do iproc=0, nproc-1
@@ -2074,7 +2075,7 @@ subroutine nc_end_output
     end do
 #else
     if (num_rec > 0) then 
-        if (verbose > 1) write(6,"('   Proc ', I3, ' will dump receiver seismograms')") mynum
+        if (verbose > 2) write(6,"('   Proc ', I3, ' will dump receiver seismograms')") mynum
         call nc_dump_rec_to_disk()
     endif
 #endif
@@ -2297,7 +2298,7 @@ subroutine getvarid(ncid, name, varid)
     if (status.ne.NF90_NOERR) then
         write(6,100) mynum, trim(name), ncid
         stop
-    elseif (verbose > 1) then
+    elseif (verbose > 2) then
         write(6,101) trim(name), ncid, varid
         call flush(6)
     end if
@@ -2323,7 +2324,7 @@ subroutine getgrpid(ncid, name, grpid)
     if (status.ne.NF90_NOERR) then
         write(6,100) mynum, trim(name), ncid
         stop
-    elseif (verbose>1) then
+    elseif (verbose > 2) then
         write(6,101) trim(name), ncid, grpid
         call flush(6)
     end if
@@ -2400,7 +2401,7 @@ subroutine putvar_real1d(ncid, varid, values, start, count)
        print *, trim(nf90_strerror(status))
        stop
    
-   elseif (verbose>1) then
+   elseif (verbose > 2) then
        write(*,200) mynum, real(count) * 4. / 1048576., ncid, varid
        call flush(6)
    end if
@@ -2504,7 +2505,7 @@ subroutine putvar_real2d(ncid, varid, values, start, count)
 
        stop
    
-   elseif (verbose>1) then
+   elseif (verbose > 2) then
        ! Everything okay
        write(*,200) mynum, real(product(count)) * 4. / 1048576., ncid, varid
        call flush(6)
@@ -2609,7 +2610,7 @@ subroutine putvar_real3d(ncid, varid, values, start, count)
 
        stop
    
-   elseif (verbose>1) then
+   elseif (verbose > 2) then
        ! Everything okay
        write(6,200) mynum, real(product(count)) * 4. / 1048576., ncid, varid
        call flush(6)



More information about the CIG-COMMITS mailing list