anchor.diff:      !   3) Read each file again, this time concatenating everything
       !      as we go.
       
  +    call cpu_time(start_time)
       call nc_diag_cat_metadata_pass
  +    call cpu_time(stop_time)
  +    
  +    write (info_str, "(A, F, A)") "Metadata read took ", stop_time - start_time, " seconds!"
  +    call info(trim(info_str))
       call nc_diag_cat_metadata_define
       
   #ifdef DEBUG
       print *, "MAIN: trigger data pass!"
   #endif
       
  +    call cpu_time(start_time)
       call nc_diag_cat_metadata_alloc
  +    call cpu_time(stop_time)
  +    
  +    write (info_str, "(A, F, A)") "Data preallocation took ", stop_time - start_time, " seconds!"
  +    call info(trim(info_str))
  +    call cpu_time(start_time)
       call nc_diag_cat_data_pass
  +    call cpu_time(stop_time)
  +    
  +    write (info_str, "(A, F, A)") "Data read took ", stop_time - start_time, " seconds!"
  +    call info(trim(info_str))
  +    
  +    call cpu_time(start_time)
       call nc_diag_cat_data_commit
  +    call cpu_time(stop_time)
  +    
  +    write (info_str, "(A, F, A)") "Data commit took ", stop_time - start_time, " seconds!"
  +    call info(trim(info_str))
           
   #ifdef DEBUG
       print *, "ALL DONE!"
  
positive.code:     integer, parameter                 :: NC_DIAG_CAT_GZIP_COMPRESS = 6
      integer, parameter                 :: NC_DIAG_CAT_CHUNK_SIZE = 16384
      
      call nc_diag_cat_process_args
      
  #ifndef NO_NETCDF
      write (*,"(A, A, A)") 'Initializing netcdf layer library, version ', trim(nf90_inq_libvers()), '...'
  
negative.code:     
      call info("All data queued, letting NetCDF take over (and actually write)!")
      
      call cpu_time(start_time)
      call check(nf90_close(ncid_output))
      call cpu_time(stop_time)
      
      write (info_str, "(A, F, A)") "Final data write took ", stop_time - start_time, " seconds!"
      call info(trim(info_str))
      call info("All done!")
      
      contains
  