Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge latest PIO2 master #407

Merged
merged 214 commits into from
Aug 16, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
214 commits
Select commit Hold shift + click to select a range
22fdf30
Merge pull request #4 from NCAR/master
Katetc Jan 11, 2016
820aeda
Merge pull request #5 from NCAR/master
Katetc Mar 15, 2016
81ccf39
now duplicate MPI communicators in init_intracomm
edhartnett Mar 18, 2016
238583a
added comments
edhartnett Mar 18, 2016
5712329
free MPI group
edhartnett Mar 29, 2016
a7ce0fa
Merge pull request #61 from NCAR/ejh_24
jedwards4b Mar 29, 2016
c3f5a1d
changes to pioperformance.F90 to support the PIO1 library.
Katetc Mar 29, 2016
d5a24c0
Changes to pioperformance.F90 to get it to build and run with PIO1. A…
Katetc Apr 4, 2016
467cb31
Merge pull request #62 from Katetc/master
jedwards4b Apr 4, 2016
17da322
Added a catch for NC_EINVAL errors on file opening (in this case, try…
Katetc Apr 15, 2016
04db212
added documentation to iosystem_desc_t
edhartnett May 4, 2016
648b350
changed example data size, added valgrind suppression file
edhartnett May 4, 2016
a4cdd06
changing in pio_file.c to support async
edhartnett May 4, 2016
aebdcdd
change in response to review feedback
edhartnett May 4, 2016
4b825ba
Merge pull request #64 from NCAR/ejh_doc
jedwards4b May 5, 2016
32228f5
Merge pull request #65 from NCAR/ejh_example_valgrind
jedwards4b May 5, 2016
0c4cbe6
Merge pull request #66 from NCAR/ejh_pio_file_async
jedwards4b May 5, 2016
c854f34
changes to pioc.c to support async, also some temporary copies of cod…
edhartnett May 5, 2016
458a3fa
removed extra index for async ncids
edhartnett May 5, 2016
3faa0e9
Merge pull request #67 from NCAR/ejh_async_files
jedwards4b May 5, 2016
8e34e30
manually merged async changes from ejh_27
edhartnett May 5, 2016
b16142f
got non-async build working
edhartnett May 5, 2016
d2664af
got async option working
edhartnett May 5, 2016
badb925
got non-async build working again
edhartnett May 5, 2016
3b0ad26
got attribut put working
edhartnett May 6, 2016
aee5878
development of async inq functions
edhartnett May 9, 2016
90c689f
more inq functions working with async
edhartnett May 9, 2016
8600910
removed some unneeded msg constants
edhartnett May 10, 2016
b312291
added logging
edhartnett May 10, 2016
bb17ac4
rearranged order of functions, started to use LOG in pio_msg
edhartnett May 10, 2016
b16d251
cleaning up error handling
edhartnett May 10, 2016
af76675
further async development
edhartnett May 11, 2016
fc48722
better error handling
edhartnett May 11, 2016
90f714e
continued development of async
edhartnett May 11, 2016
fb378ca
added log message
edhartnett May 11, 2016
0783073
further development
edhartnett May 11, 2016
e2504bb
further development of async
edhartnett May 11, 2016
2a77fe1
further development of async
edhartnett May 11, 2016
f028866
further development of async
edhartnett May 11, 2016
891b29c
further development of async
edhartnett May 11, 2016
8b46080
further development of async
edhartnett May 11, 2016
80a361f
further async development
edhartnett May 12, 2016
10b178a
code cleanup
edhartnett May 12, 2016
a0aaea9
further cleanup of async code
edhartnett May 12, 2016
96e7498
further cleanup of async code
edhartnett May 12, 2016
f788f6b
further cleanup of async code
edhartnett May 12, 2016
0a6fb4f
further cleanup of async code
edhartnett May 12, 2016
54c8287
further cleanup of async code
edhartnett May 12, 2016
19ea322
further development of async code
edhartnett May 12, 2016
8938469
further async development
edhartnett May 12, 2016
6e7e780
further async development
edhartnett May 12, 2016
cd4421f
further async development
edhartnett May 12, 2016
ae43f47
added PIOc_inq_type
edhartnett May 13, 2016
5912c2a
added PIOc_inq_type
edhartnett May 13, 2016
fed2d0f
further development of async get_att
edhartnett May 13, 2016
f5b581a
now get_att generalized by type
edhartnett May 13, 2016
1c35182
now get_att generalized by type
edhartnett May 13, 2016
e667561
now get_att generalized by type
edhartnett May 13, 2016
06b279e
got put_att working with async
edhartnett May 13, 2016
99632fd
further development of async code
edhartnett May 13, 2016
4866ec1
further development of async code
edhartnett May 13, 2016
9020e2d
moved logging code to pioc_support
edhartnett May 13, 2016
0337dbe
cleaning up call to netcdf layer in PIOc_nc_async
edhartnett May 14, 2016
ddaa30a
cleaning up call to netcdf layer in PIOc_nc_async
edhartnett May 14, 2016
16e3799
got inq_format working with async
edhartnett May 14, 2016
2a250cf
got inq_attname working with async
edhartnett May 14, 2016
5b14021
got inq_attid working for async
edhartnett May 14, 2016
10ff143
got inq_attid working for async
edhartnett May 14, 2016
6c0ee7b
got rename_dim working
edhartnett May 14, 2016
f446718
got rename_var working with async
edhartnett May 14, 2016
0ce232f
got rename_var working with async
edhartnett May 14, 2016
36c065c
Changed Pnetcdf required version to 1.6.1 in documentation.
Katetc May 16, 2016
bc0d033
Merge pull request #6 from NCAR/master
Katetc May 16, 2016
a055a39
fixed rename_att function for async
edhartnett May 17, 2016
01679e5
more cleanup
edhartnett May 17, 2016
1728b3e
continued async development
edhartnett May 17, 2016
2e17460
continued async development
edhartnett May 17, 2016
f60fe96
continued async development
edhartnett May 17, 2016
149d94e
continued async development
edhartnett May 17, 2016
2810747
continued async development
edhartnett May 17, 2016
d9ef4b9
more async changes
edhartnett May 17, 2016
7417325
more async changes
edhartnett May 17, 2016
b3d7b94
more async changes
edhartnett May 17, 2016
a4be288
more async changes
edhartnett May 17, 2016
b61b5a3
more async changes
edhartnett May 17, 2016
a5d6df3
more async changes
edhartnett May 17, 2016
7ec0477
more async changes
edhartnett May 17, 2016
be7b7b4
more async changes
edhartnett May 17, 2016
cf375e1
more async changes
edhartnett May 17, 2016
7e01a84
got redef function working with async
edhartnett May 17, 2016
68c3068
created internal function because pnetcdf does not have inq_type()
edhartnett May 17, 2016
5f597a8
further development of async code
edhartnett May 17, 2016
46ba2cc
further development of async code
edhartnett May 17, 2016
ce91865
Added documentation for the Unit and Performance tests in PIO2. Fixed…
Katetc May 17, 2016
24a34ff
Merge pull request #68 from Katetc/master
Katetc May 17, 2016
cea8e39
first pass at PIOc_put_vars_tc()
edhartnett May 18, 2016
138876a
Merge branch 'master' into ejh_async2
edhartnett May 18, 2016
58b9466
put_vars with async
edhartnett May 18, 2016
fdd7d8b
more development of async code
edhartnett May 23, 2016
d6bfc03
more development of async changes
edhartnett May 23, 2016
32e3165
further development of async
edhartnett May 23, 2016
4d335b3
added file for varm functions
edhartnett May 23, 2016
7119c0b
return error for async use with varm
edhartnett May 23, 2016
2fe1f56
cleaned up put_var1 functions
edhartnett May 24, 2016
98eed4d
futher cleanup of var1 functions
edhartnett May 24, 2016
de1c4e7
got get_vars working
edhartnett May 26, 2016
e7eced0
got get_var/vara working
edhartnett May 26, 2016
696d403
got get_var1 working
edhartnett May 26, 2016
eecde10
Merge branch 'ejh_async2'
jedwards4b May 27, 2016
1ad2762
response to code review comments
edhartnett May 27, 2016
9ebc917
clean up
edhartnett May 27, 2016
3a205bb
turn on async for yellowstone
jedwards4b May 27, 2016
8a9e0e5
Merge pull request #70 from NCAR/ejh_async3
jedwards4b May 27, 2016
f1f9a06
removed use of MPI_Comm_create_group
edhartnett May 27, 2016
3671790
Merge pull request #71 from NCAR/ejh_async4
jedwards4b May 28, 2016
30e7878
took out log statement that was causing too much output
edhartnett May 29, 2016
a9c9029
took out logging statement
edhartnett May 30, 2016
30be388
trying to fix problem with put on some platforms
edhartnett May 31, 2016
751adee
took out use of log in fortran test
edhartnett May 31, 2016
5d1dba0
fixed error handling of MPI errors on transfer of parameter data to p…
edhartnett Jun 1, 2016
7b92cdb
more log messages to find bug
edhartnett Jun 2, 2016
0cd713c
added temporary mpi_intercomm_merge() function for MPI_SERIAL builds
edhartnett Jun 3, 2016
8585feb
temporarily turned off pnetcdf in test_intercomm.c
edhartnett Jun 3, 2016
b62a9bb
more logging statements
edhartnett Jun 3, 2016
4ff0a36
commented out extra declaration
edhartnett Jun 3, 2016
4e50dd0
changes to fix cdash tests, added logging to fortran
edhartnett Jun 4, 2016
e42ad0b
turned pnetcdf testing back on for test_intercomm.c
edhartnett Jun 4, 2016
2f2bb44
tryhing to isolate put problem
edhartnett Jun 6, 2016
378ac20
tryhing to isolate put problem
edhartnett Jun 6, 2016
b2f19be
tryhing to isolate put problem
edhartnett Jun 6, 2016
8a640f3
no longer run test_intercomm for serial builds
edhartnett Jun 6, 2016
5d0d400
changed type of num_elems from size_t to PIO_Offset
edhartnett Jun 6, 2016
611b76d
more logging to try and get enddef working on caldera
edhartnett Jun 7, 2016
5651c78
now MPI_abort does not overwrite ret_val
edhartnett Jun 7, 2016
c659512
clean up error handling
edhartnett Jun 7, 2016
5c49a3a
cleanup of error handling in file functions
edhartnett Jun 7, 2016
ab93ed0
cleanup of error handling in file functions
edhartnett Jun 7, 2016
e94b1fc
Merge pull request #72 from NCAR/ejh_test_error_handling
jedwards4b Jun 7, 2016
4a391ca
more logging statements to find bug
edhartnett Jun 8, 2016
07bf495
turned pnetcdf back on in test_intercomm
edhartnett Jun 8, 2016
26298e6
more log messages
edhartnett Jun 8, 2016
c871a94
more log messages
edhartnett Jun 8, 2016
7b4f744
more log messages
edhartnett Jun 8, 2016
7f17935
more log messages
edhartnett Jun 8, 2016
887f651
more log messages
edhartnett Jun 8, 2016
fcd502d
more log messages
edhartnett Jun 8, 2016
70238ae
more log messages
edhartnett Jun 8, 2016
f845325
more log messages
edhartnett Jun 8, 2016
abde5d2
more log messages
edhartnett Jun 8, 2016
09d5b65
more log messages
edhartnett Jun 8, 2016
08b7a7e
more log messages
edhartnett Jun 8, 2016
b3a83a3
more log messages
edhartnett Jun 8, 2016
50ab03b
more log messages
edhartnett Jun 8, 2016
386b641
compensate for poor handling of NULL for stride by pnetcdf
edhartnett Jun 8, 2016
612998f
more logging
edhartnett Jun 9, 2016
329777e
more logging
edhartnett Jun 9, 2016
be9af21
stopped faking the stride for puts
edhartnett Jun 9, 2016
985ba72
more log messages
edhartnett Jun 10, 2016
82d9faa
working on put issue
edhartnett Jun 10, 2016
617c65a
cleanup
edhartnett Jun 13, 2016
6c09c56
more cleanup
edhartnett Jun 13, 2016
1d705fc
Merge pull request #74 from NCAR/ejh_cleanup4
Katetc Jun 13, 2016
cadc332
breaking branch to test cdash building of branches
edhartnett Jun 13, 2016
995ebc5
more cleanup
edhartnett Jun 13, 2016
c1df0fb
more cleanup
edhartnett Jun 13, 2016
87e32a2
more cleanup
edhartnett Jun 13, 2016
bf1ed73
more cleanup
edhartnett Jun 13, 2016
cb8f4ee
Merge pull request #75 from NCAR/ejh_cleanup6
Katetc Jun 13, 2016
2559cf4
added logging statement to debug cdash problem
edhartnett Jun 14, 2016
1b7ffb6
Revert "Ejh cleanup6"
edhartnett Jun 14, 2016
046fc26
Merge pull request #76 from NCAR/revert-75-ejh_cleanup6
edhartnett Jun 14, 2016
08dc6ff
documentation and spacing cleanup
edhartnett Jun 15, 2016
ede6182
documentation fix
edhartnett Jun 15, 2016
a28ab94
Merge pull request #77 from NCAR/ejh_darray1
Katetc Jun 15, 2016
bce138f
starting to add darray test
edhartnett Jun 15, 2016
541a070
cleanout of test_darray
edhartnett Jun 15, 2016
0f1fe88
development of darray test
edhartnett Jun 15, 2016
4717e60
more work on darray test
edhartnett Jun 15, 2016
79de1e3
more work on darray test
edhartnett Jun 15, 2016
77152b4
more work on darray test
edhartnett Jun 15, 2016
e7dd43e
fixing problems when built without logging, took out unneeded msgs
edhartnett Jun 16, 2016
58cb4db
put messages back in until async build is the only build
edhartnett Jun 16, 2016
b7db2ac
getting non-async build to work
edhartnett Jun 16, 2016
6c968a0
Merge pull request #78 from NCAR/ejh_darray2
Katetc Jun 16, 2016
d827fa6
documentation and spacing changes
edhartnett Jun 20, 2016
5068c60
cleanup and documentation
edhartnett Jun 20, 2016
c902eb9
Merge pull request #81 from NCAR/ejh_darray3
edhartnett Jun 21, 2016
1e317dc
split off pio_darray_async.c
edhartnett Jun 21, 2016
80dfb55
added test_darray_async.c for async darray testing
edhartnett Jun 21, 2016
7cd49c1
added config.h include
edhartnett Jun 21, 2016
23b06b4
added some comments
edhartnett Jun 21, 2016
ecbc513
more documentation changes
edhartnett Jun 21, 2016
3114702
more comments, some code cleanup
edhartnett Jun 21, 2016
d6bd625
removed some dead code, improved comments
edhartnett Jun 21, 2016
ed31fb0
minor cleanup
edhartnett Jun 21, 2016
5831e9f
more comments
edhartnett Jun 21, 2016
7febfee
Merge pull request #84 from NCAR/ejh_darray4
Katetc Jun 22, 2016
ea39095
Merge pull request #7 from NCAR/master
Katetc Jul 28, 2016
004aeb9
Fixed doc build for async vs. non-async builds
edhartnett Aug 1, 2016
e51cceb
Comment and clean up
edhartnett Aug 1, 2016
469ae01
Merge pull request #87 from NCAR/ejh_docs
jedwards4b Aug 1, 2016
1c5f431
added PIOc_strerror() and test for it
edhartnett Aug 3, 2016
c0dd8dd
changed signature of PIOc_strerror()
edhartnett Aug 3, 2016
7f877f8
adding fortran interface to PIOc_strerror()
edhartnett Aug 3, 2016
86d23b9
added test for fortran pio_strerror
edhartnett Aug 3, 2016
1b6fff6
Merge pull request #88 from NCAR/ejh_strerr
Katetc Aug 4, 2016
65e731c
removed test that depended on changing netCDF error string
Aug 10, 2016
04f17b2
Merge pull request #91 from NCAR/ejh_fix_test_names
Katetc Aug 10, 2016
418c9ad
Merge pull request #8 from NCAR/master
Katetc Aug 12, 2016
941a4b8
Changes required for the new Hobart nag 6.1
Katetc Aug 12, 2016
81f373f
Merge pull request #92 from Katetc/master
Katetc Aug 12, 2016
4d798ad
Changes required for nightly cdash to work with new Hobart and Nag 6.1
Katetc Aug 12, 2016
1fe2631
Merge pull request #93 from Katetc/master
Katetc Aug 12, 2016
abfbee4
Merge branch 'ParallelIO_branch' (PIO2 master)
jayeshkrishna Aug 16, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions externals/pio2/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,34 @@ mark_as_advanced(VERSION_MAJOR VERSION_MINOR VERSION_PATCH)
#===== Library Options =====
option (PIO_ENABLE_FORTRAN "Enable the Fortran library builds" ON)
option (PIO_ENABLE_TIMING "Enable the use of the GPTL timing library" ON)
option (PIO_ENABLE_ASYNC "Enable the use of asychronus IO operations" OFF)
option (PIO_ENABLE_LOGGING "Enable debug logging (large output possible)" OFF)
option (PIO_TEST_BIG_ENDIAN "Enable test to see if machine is big endian" ON)
option (PIO_USE_MPIIO "Enable support for MPI-IO auto detect" ON)
option (PIO_USE_MPISERIAL "Enable mpi-serial support (instead of MPI)" OFF)
option (PIO_USE_MALLOC "Use native malloc (instead of bget package)" OFF)
option (WITH_PNETCDF "Require the use of PnetCDF" ON)

# Set a variable that appears in the config.h.in file.
if(PIO_USE_MALLOC)
set(USE_MALLOC 1)
else()
set(USE_MALLOC 0)
endif()

# Set a variable that appears in the config.h.in file.
if(PIO_ENABLE_LOGGING)
set(ENABLE_LOGGING 1)
else()
set(ENABLE_LOGGING 0)
endif()

if(PIO_USE_MPISERIAL)
set(USE_MPI_SERIAL 1)
else()
set(USE_MPI_SERIAL 0)
endif()

#===== Library Variables =====
set (PIO_FILESYSTEM_HINTS IGNORE CACHE STRING "Filesystem hints (lustre or gpfs)")

Expand Down
2 changes: 1 addition & 1 deletion externals/pio2/ctest/CTestEnvironment-nwsc.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
# set with existing environment variables: NETCDF, PNETCDF, HDF5, etc.

# Define the extra CMake configure options
set (CTEST_CONFIGURE_OPTIONS "-DCMAKE_VERBOSE_MAKEFILE=TRUE")
set (CTEST_CONFIGURE_OPTIONS "-DCMAKE_VERBOSE_MAKEFILE=TRUE -DPIO_ENABLE_ASYNC=TRUE")

# If MPISERIAL environment variable is set, then enable MPISERIAL
if (DEFINED ENV{MPISERIAL})
Expand Down
6 changes: 3 additions & 3 deletions externals/pio2/ctest/runcdash-cgd-nag.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@ else
fi

module purge
module load compiler/nag/6.0
module load tool/parallel-netcdf/1.6.1/nag/openmpi
module load compiler/nag/6.1
module load tool/parallel-netcdf/1.7.0/nag/mvapich2

export CC=mpicc
export FC=mpif90
export PIO_DASHBOARD_SITE="cgd"
export PIO_DASHBOARD_ROOT=/scratch/cluster/katec/dashboard
export CTEST_SCRIPT_DIRECTORY=${PIO_DASHBOARD_ROOT}/src
export PIO_DASHBOARD_SOURCE_DIR=${CTEST_SCRIPT_DIRECTORY}
export PIO_COMPILER_ID=Nag-6.0-gcc-`gcc --version | head -n 1 | cut -d' ' -f3`
export PIO_COMPILER_ID=Nag-6.1-gcc-`gcc --version | head -n 1 | cut -d' ' -f3`

if [ ! -d "$PIO_DASHBOARD_ROOT" ]; then
mkdir "$PIO_DASHBOARD_ROOT"
Expand Down
2 changes: 1 addition & 1 deletion externals/pio2/ctest/runctest-cgd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ echo "\$CTESTCMD -S ${scrdir}/CTestScript-Test.cmake,${model} -V" >> runctest.sh
chmod +x runctest.sh

# Submit the job to the queue
jobid=`/usr/local/bin/qsub -l nodes=1:ppn=4 runctest.sh`
jobid=`/usr/local/bin/qsub -l nodes=1:ppn=4 runctest.sh -q short`

# Wait for the job to complete before exiting
while true; do
Expand Down
37 changes: 25 additions & 12 deletions externals/pio2/doc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,30 @@
#==============================================================================

find_package(Doxygen)

# This supports the build with/witout async code. Once async code is
# fully merged, remove the definition of C_SRC_FILES and its mention
# in Doxyfile.in for simplicity.
if (PIO_ENABLE_ASYNC)
SET(C_SRC_FILES "@CMAKE_CURRENT_SOURCE_DIR@/../src/clib/bget.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pioc.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pioc_sc.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_darray_async.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_get_nc_async.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_internal.h @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_nc4.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_put_nc_async.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_spmd.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/bget.h @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pioc_support.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_lists.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_nc_async.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_varm.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/dtypes.h @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_file.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio.h @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_msg.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_rearrange.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/topology.c")
else ()
SET(C_SRC_FILES "@CMAKE_CURRENT_SOURCE_DIR@/../src/clib/bget.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pioc.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pioc_sc.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_internal.h @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_nc4.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_spmd.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/bget.h @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pioc_support.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_darray.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_get_nc.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_lists.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_put_nc.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_varm.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/dtypes.h @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_file.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio.h @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_msg.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_nc.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/pio_rearrange.c @CMAKE_CURRENT_SOURCE_DIR@/../src/clib/topology.c")
endif ()

if(DOXYGEN_FOUND)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
add_custom_target(doc
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/customdoxygen.css
${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/DoxygenLayout.xml
${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doxygen.sty
${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen" VERBATIM)
# Process the Doxyfile using options set during configure.
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)

# Copy necessary files.
add_custom_target(doc
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/customdoxygen.css
${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/DoxygenLayout.xml
${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doxygen.sty
${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen" VERBATIM)
endif(DOXYGEN_FOUND)
10 changes: 7 additions & 3 deletions externals/pio2/doc/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ OPTIMIZE_OUTPUT_VHDL = NO
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
# the files are not read by doxygen.

EXTENSION_MAPPING = F90=FortranFree
EXTENSION_MAPPING = F90=FortranFree

# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable
Expand Down Expand Up @@ -769,11 +769,15 @@ WARN_LOGFILE =
# Note: If this tag is empty the current directory is searched.

INPUT = @CMAKE_CURRENT_SOURCE_DIR@/source \
@CMAKE_CURRENT_SOURCE_DIR@/../src/clib \
@CMAKE_CURRENT_SOURCE_DIR@/../src/flib \
@CMAKE_CURRENT_SOURCE_DIR@/../examples/c \
@CMAKE_CURRENT_SOURCE_DIR@/../examples/f03 \
@CMAKE_BINARY_DIR@/src/flib
@CMAKE_BINARY_DIR@/src/clib \
@CMAKE_BINARY_DIR@/src/flib \
@C_SRC_FILES@

# Uncomment this after the async code is fully merged into PIO.
# @CMAKE_CURRENT_SOURCE_DIR@/../src/clib

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down
13 changes: 5 additions & 8 deletions externals/pio2/doc/source/Error.txt
Original file line number Diff line number Diff line change
@@ -1,29 +1,26 @@
/******************************************************************************
*
*
*
*
* Copyright (C) 2009
* Copyright (C) 2009
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/ /*!
*/ /*!
\page error Error Handling

By default, PIO handles errors internally by printing a string
describing the error and then calling mpi_abort. Application
developers can change this behaivior with a call to
\ref PIO_seterrorhandling

For example, if a developer wanted
to see if an input netcdf file contained the variable 'U' they might do the following:

\verbinclude errorhandle

\copydoc PIO_error_method
Expand Down
20 changes: 11 additions & 9 deletions externals/pio2/doc/source/Examples.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
/******************************************************************************
*
*
*
*
* Copyright (C) 2009
* Copyright (C) 2009
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
Expand Down Expand Up @@ -41,11 +41,13 @@ The Fortran examples are in the examples/f03 subdirectory.

- examplePio.f90 A simple example showing a write, then read, of a 1D variable.

PIO has been implemented in several geophysical component models, including the
Community Atmosphere Model (CAM), the Community Land Model (CLM), the Parallel Ocean Program
(POP), the Community Ice CodE (CICE), and coupler for used by CCSM4.0 (CPL7). We also provide
several simpler example code as well as a test code that is suitable for regression testing and
benchmarking.
### Other Examples

PIO has been implemented in several geophysical component models, including the
Community Atmosphere Model (CAM), the Community Land Model (CLM), the Parallel Ocean Program
(POP), the Community Ice CodE (CICE), and coupler for used by CCSM4.0 (CPL7). We also provide
several simpler example code as well as a test code that is suitable for regression testing and
benchmarking.

- \subpage CAMexample
- \subpage testpio_example
Expand Down
26 changes: 13 additions & 13 deletions externals/pio2/doc/source/Installing.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
/******************************************************************************
*
*
*
*
* Copyright (C) 2013
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
Expand All @@ -20,9 +20,9 @@ The PIO code is currently stored on github at <https://github.com/PARALLELIO/Par

### Dependencies ###

PIO can use NetCDF (version 4.3.3+) and/or PnetCDF (version 1.6.0+) for I/O.
PIO can use NetCDF (version 4.3.3+) and/or PnetCDF (version 1.6.1+) for I/O.
Ideally, the NetCDF version should be built with MPI, which requires that it
be linked with an MPI-enabled version of HDF5. Optionally, NetCDF can be
be linked with an MPI-enabled version of HDF5. Optionally, NetCDF can be
built with DAP support, which introduces a dependency on CURL. Additionally,
HDF5, itself, introduces dependencies on LIBZ and (optionally) SZIP.

Expand All @@ -39,10 +39,10 @@ where `mpicc` and `mpif90` are the appropriate MPI-enabled compiler wrappers
for your system.

The `OPTIONS` section typically should consist of pointers to the install
locations for various dependencies, assuming these dependencies are not
located in *canonical* search locations.
locations for various dependencies, assuming these dependencies are not
located in *canonical* search locations.

For each dependency `XXX`, one can specify the location of its
For each dependency `XXX`, one can specify the location of its
installation path with the CMake variable `XXX_PATH`. If the `C` and
`Fortran` libraries for the dependency are installed in different locations
(such as can be done with NetCDF), then you can specify individually
Expand All @@ -59,7 +59,7 @@ CMake configuration line:

This works for the dependencies: `NetCDF`, `PnetCDF`, `HDF5`, `LIBZ`, `SZIP`.

For specific instructions to install on various commonly used super computers, please read the [walk-through guide to PIO Installation](@ref mach_walkthrough).
For specific instructions to install on various commonly used super computers, please read the [walk-through guide to PIO Installation](@ref mach_walkthrough).

### Additional CMake Options ###

Expand All @@ -73,14 +73,14 @@ libraries are already installed on the system, the user can point PIO to the
location of these libraries with the `GPTL_PATH` variable (or, individually,
`GPTL_C_PATH` and `GPTL_Fortran_Perf_PATH` variables). However, if these
GPTL libraries are not installed on the system, and GPTL cannot be found,
then PIO will build its own internal version of GPTL.
then PIO will build its own internal version of GPTL.

If PnetCDF is not installed on the system, the user can disable its use by
setting `-DWITH_PNETCDF=OFF`. This will disable the search for PnetCDF on the
system and disable the use of PnetCDF from within PIO.

If the user wishes to disable the PIO tests, then the user can set the
variable `-DPIO_ENABLE_TESTS=OFF`. This will entirely disable the CTest
variable `-DPIO_ENABLE_TESTS=OFF`. This will entirely disable the CTest
testing suite, as well as remove all of the test build targets.

If you wish to install PIO in a safe location for use later with other
Expand Down Expand Up @@ -116,7 +116,7 @@ Once the tests have been built, you may run tests with:
_Note: If you have not run `make tests` before you run `ctest`, then you will see
all of the tests fail._

Alternatively, you may build the test executables and then run tests
Alternatively, you may build the test executables and then run tests
immediately with:


Expand All @@ -126,7 +126,7 @@ immediately with:
(similar to the typical `make check` Autotools target).

*ANOTHER NOTE:* These tests are designed to run in parallel.
If you are on one of the supported supercomputing platforms (i.e., NERSC, NWSC, ALCF,
If you are on one of the supported supercomputing platforms (i.e., NERSC, NWSC, ALCF,
etc.), then the `ctest` command will assume that the tests will be run in an appropriately configured and scheduled parallel job. This can be done by requesting an interactive session from the login nodes and then running `ctest` from within the interactive terminal. Alternatively, this can be done by running the `ctest` command from a job submission script. It is important to understand, however, that `ctest` itself will preface all of the test executable commands with the appropriate `mpirun`/`mpiexec`/`runjob`/etc. Hence, you should not further preface the `ctest` command with these MPI launchers.

### Installing ###
Expand Down
Loading