ioapi added

This commit is contained in:
2018-07-11 10:56:06 +02:00
parent 09943de203
commit 2fafd58626
5 changed files with 397 additions and 0 deletions

60
HDF5/ioapi/build Executable file
View File

@@ -0,0 +1,60 @@
#!/usr/bin/env modbuild
pbuild::set_download_url "https://gitlab.psi.ch/Pmodules/download/raw/master/$P-$V.tar.gz"
pbuild::add_to_group 'HDF5'
pbuild::compile_in_sourcetree
pbuild::add_patch 'files/Makefile.pncf.sed.patch'
pbuild::add_docfile README.txt
pbuild::add_docfile V32-CHANGES.txt
pbuild::add_docfile VERSION.txt
pbuild::add_docfile HTML/gpl.txt
echo $SRC_DIR
pbuild::post_prep() {
find "${SRC_DIR}" -name "*.mod" -exec rm {} \;
find "${SRC_DIR}" -name "*.o" -exec rm {} \;
}
pbuild::pre_configure() {
config_args=()
config_args+=( "BASEDIR=${SRC_DIR}" )
config_args+=( "CPLMODE=pncf" )
config_args+=( "INSTALL=${PREFIX}" )
config_args+=( "NCFLIBS=-lpnetcdf -lnetcdf -lnetcdff -lgfortran" )
case "${OS}" in
"Darwin" )
config_args+=( "BIN=OSX_x86_gfortmpi" )
;;
* )
echo "OS not supported!" 1>&2
exit 1
;;
esac
}
pbuild::pre_configure_Darwin() {
cd "${SRC_DIR}"
cp Makefile.template Makefile
cp -av "${BUILDBLOCK_DIR}/files/Makeinclude.OSX_x86_gfortmpi" "ioapi"
}
pbuild::configure() {
cd "${SRC_DIR}"
make "${config_args[@]}" configure
}
pbuild::build() {
make "${config_args[@]}" all
}
pbuild::install() {
mkdir -p "${PREFIX}"
make "${config_args[@]}" install
}
pbuild::make_all

View File

@@ -0,0 +1,271 @@
Only in src/: .configure
Only in src/: .prep
Only in src/: Linux2_x86_64
Only in src/: Makefile
Only in src/: OSX_x86_gfortmpi
Only in src/ioapi: Makefile
Only in src/ioapi: Makeinclude.OSX_x86_gfortmpi
Only in ioapi-3.2/ioapi: bilin.o
Only in ioapi-3.2/ioapi: bmatvec.o
Only in ioapi-3.2/ioapi: bufint3.o
Only in ioapi-3.2/ioapi: cbarnes1.o
Only in ioapi-3.2/ioapi: cbarnesN.o
Only in ioapi-3.2/ioapi: check3.o
Only in ioapi-3.2/ioapi: check3c.o
Only in ioapi-3.2/ioapi: chkbuf3.o
Only in ioapi-3.2/ioapi: chkfil3.o
Only in ioapi-3.2/ioapi: ckdesc3.o
Only in ioapi-3.2/ioapi: ckfile3.o
Only in ioapi-3.2/ioapi: ckgeom.o
Only in ioapi-3.2/ioapi: ckname.o
Only in ioapi-3.2/ioapi: cktflag3.o
Only in ioapi-3.2/ioapi: close3.o
Only in ioapi-3.2/ioapi: close3c.o
Only in ioapi-3.2/ioapi: crdict3.o
Only in ioapi-3.2/ioapi: crlf.o
Only in ioapi-3.2/ioapi: crtbuf3.o
Only in ioapi-3.2/ioapi: crtfil3.o
Only in ioapi-3.2/ioapi: crtkf.o
Only in ioapi-3.2/ioapi: currec.o
Only in ioapi-3.2/ioapi: currstep.o
Only in ioapi-3.2/ioapi: currstepc.o
Only in ioapi-3.2/ioapi: daymon.o
Only in ioapi-3.2/ioapi: daymonc.o
Only in ioapi-3.2/ioapi: dble2real.o
Only in ioapi-3.2/ioapi: dbllist.o
Only in ioapi-3.2/ioapi: ddtvar3.o
Only in ioapi-3.2/ioapi: ddtvar3c.o
Only in ioapi-3.2/ioapi: ddtvar3v.o
Only in ioapi-3.2/ioapi: desc3.o
Only in ioapi-3.2/ioapi: desc3c.o
Only in ioapi-3.2/ioapi: dmatvec.o
Only in ioapi-3.2/ioapi: dscgrid.o
Only in ioapi-3.2/ioapi: dscgridc.o
Only in ioapi-3.2/ioapi: dt2str.o
Only in ioapi-3.2/ioapi: dt2strc.o
Only in ioapi-3.2/ioapi: envgets.o
Only in ioapi-3.2/ioapi: filchk3.o
Only in ioapi-3.2/ioapi: filchk3c.o
Only in ioapi-3.2/ioapi: find1.o
Only in ioapi-3.2/ioapi: find2.o
Only in ioapi-3.2/ioapi: find3.o
Only in ioapi-3.2/ioapi: find4.o
Only in ioapi-3.2/ioapi: findc.o
Only in ioapi-3.2/ioapi: findr1.o
Only in ioapi-3.2/ioapi: findr2.o
Only in ioapi-3.2/ioapi: findr3.o
Only in ioapi-3.2/ioapi: findr4.o
Only in ioapi-3.2/ioapi: findsc.o
diff -ur ioapi-3.2/ioapi/fixed_src/STATE3.EXT src/ioapi/fixed_src/STATE3.EXT
--- ioapi-3.2/ioapi/fixed_src/STATE3.EXT 2017-06-20 20:00:05.000000000 +0200
+++ src/ioapi/fixed_src/STATE3.EXT 2018-07-09 16:29:26.000000000 +0200
@@ -11,8 +11,11 @@
!....................................................................
! INCLUDE FILE STATE3.EXT
!
+! PRIVATE!
+! For internal I/O API use only.
+! Do not use in model or other application code.
!
-! DO NOT EDIT !!
+! DO NOT EDIT !!
!
! The EDSS/Models-3 I/O API depends in an essential manner
! upon the contents of this INCLUDE file. ANY CHANGES are
Only in ioapi-3.2/ioapi: flush3.o
Only in ioapi-3.2/ioapi: gcd.o
Only in ioapi-3.2/ioapi: gctp.o
Only in ioapi-3.2/ioapi: get_endian.o
Only in ioapi-3.2/ioapi: getdate.o
Only in ioapi-3.2/ioapi: getdble.o
Only in ioapi-3.2/ioapi: getdfile.o
Only in ioapi-3.2/ioapi: getdfilec.o
Only in ioapi-3.2/ioapi: getdttime.o
Only in ioapi-3.2/ioapi: getefile.o
Only in ioapi-3.2/ioapi: getefilec.o
Only in ioapi-3.2/ioapi: getffile.o
Only in ioapi-3.2/ioapi: getmenu.o
Only in ioapi-3.2/ioapi: getnum.o
Only in ioapi-3.2/ioapi: getreal.o
Only in ioapi-3.2/ioapi: getstr.o
Only in ioapi-3.2/ioapi: getyn.o
Only in ioapi-3.2/ioapi: grdchk3.o
Only in ioapi-3.2/ioapi: gridops.o
Only in ioapi-3.2/ioapi: hhmmss.o
Only in ioapi-3.2/ioapi: hhmmssc.o
Only in ioapi-3.2/ioapi: index1.o
Only in ioapi-3.2/ioapi: init3.o
Only in ioapi-3.2/ioapi: init3c.o
Only in ioapi-3.2/ioapi: initblk3.o
Only in ioapi-3.2/ioapi: initlog3.o
Only in ioapi-3.2/ioapi: inqatt3.o
Only in ioapi-3.2/ioapi: inqatt3c.o
Only in ioapi-3.2/ioapi: interp3.o
Only in ioapi-3.2/ioapi: interp3c.o
Only in ioapi-3.2/ioapi: intg2real.o
Only in ioapi-3.2/ioapi: intlist.o
Only in ioapi-3.2/ioapi: iobin3.o
Only in ioapi-3.2/ioapi: iocpl.o
Only in ioapi-3.2/ioapi: iocplf2c.o
Only in ioapi-3.2/ioapi: ioparms3.o
Only in ioapi-3.2/ioapi: isdstime.o
Only in ioapi-3.2/ioapi: jstep3.o
Only in ioapi-3.2/ioapi: julian.o
Only in ioapi-3.2/ioapi: julianc.o
Only in ioapi-3.2/ioapi: junit.o
Only in ioapi-3.2/ioapi: kfindx.o
Only in ioapi-3.2/ioapi: kfopen.o
Only in ioapi-3.2/ioapi: kfread.o
Only in ioapi-3.2/ioapi: kfwrite.o
Only in ioapi-3.2/ioapi: lambert.o
Only in ioapi-3.2/ioapi: lblank.o
Only in ioapi-3.2/ioapi: len2.o
Only in ioapi-3.2/ioapi: ll2utm.o
Only in ioapi-3.2/ioapi: locat1.o
Only in ioapi-3.2/ioapi: locat2.o
Only in ioapi-3.2/ioapi: locat3.o
Only in ioapi-3.2/ioapi: locat4.o
Only in ioapi-3.2/ioapi: locatc.o
Only in ioapi-3.2/ioapi: locatr1.o
Only in ioapi-3.2/ioapi: locatr2.o
Only in ioapi-3.2/ioapi: locatr3.o
Only in ioapi-3.2/ioapi: locatr4.o
Only in ioapi-3.2/ioapi: locatsc.o
Only in ioapi-3.2/ioapi: lustr.o
Only in ioapi-3.2/ioapi: m3abort.o
Only in ioapi-3.2/ioapi: m3err.o
Only in ioapi-3.2/ioapi: m3errc.o
Only in ioapi-3.2/ioapi: m3exit.o
Only in ioapi-3.2/ioapi: m3exitc.o
Only in ioapi-3.2/ioapi: m3mesgc.o
Only in ioapi-3.2/ioapi: m3msg2.o
Only in ioapi-3.2/ioapi: m3utilio.mod
Only in ioapi-3.2/ioapi: m3utilio.o
Only in ioapi-3.2/ioapi: m3warn.o
Only in ioapi-3.2/ioapi: m3warnc.o
Only in ioapi-3.2/ioapi: mmddyy.o
Only in ioapi-3.2/ioapi: mmddyyc.o
Only in ioapi-3.2/ioapi: modatts3.mod
Only in ioapi-3.2/ioapi: modatts3.o
Only in ioapi-3.2/ioapi: modgctp.mod
Only in ioapi-3.2/ioapi: modgctp.o
Only in ioapi-3.2/ioapi: modmpasfio.mod
Only in ioapi-3.2/ioapi: modmpasfio.o
Only in ioapi-3.2/ioapi: modncfio.mod
Only in ioapi-3.2/ioapi: modncfio.o
Only in ioapi-3.2/ioapi: modpdata.mod
Only in ioapi-3.2/ioapi: modpdata.o
Only in ioapi-3.2/ioapi: modwrfio.mod
Only in ioapi-3.2/ioapi: modwrfio.o
Only in ioapi-3.2/ioapi: name2fid.o
Only in ioapi-3.2/ioapi: nameval.o
Only in ioapi-3.2/ioapi: nextime.o
Only in ioapi-3.2/ioapi: nextimec.o
Only in ioapi-3.2/ioapi: open3.o
Only in ioapi-3.2/ioapi: open3c.o
Only in ioapi-3.2/ioapi: opnfil3.o
Only in ioapi-3.2/ioapi: opnkf.o
Only in ioapi-3.2/ioapi: opnlist3.o
Only in ioapi-3.2/ioapi: opnlog3.o
Only in ioapi-3.2/ioapi: pcoef.o
Only in ioapi-3.2/ioapi: pgrdsum.o
Only in ioapi-3.2/ioapi: pmatvec.o
Only in ioapi-3.2/ioapi: pn_crtfil3.o
Only in ioapi-3.2/ioapi: pn_opnfil3.o
Only in ioapi-3.2/ioapi: pn_wrvars.o
Only in ioapi-3.2/ioapi: poly.o
Only in ioapi-3.2/ioapi: promptdfile.o
Only in ioapi-3.2/ioapi: promptffile.o
Only in ioapi-3.2/ioapi: promptgrid.o
Only in ioapi-3.2/ioapi: promptmfile.o
Only in ioapi-3.2/ioapi: rdatt3.o
Only in ioapi-3.2/ioapi: rdatt3c.o
Only in ioapi-3.2/ioapi: rdbndary.o
Only in ioapi-3.2/ioapi: rdbuf3.o
Only in ioapi-3.2/ioapi: rdcustom.o
Only in ioapi-3.2/ioapi: rddict3.o
Only in ioapi-3.2/ioapi: rdgrdded.o
Only in ioapi-3.2/ioapi: rdgrnest.o
Only in ioapi-3.2/ioapi: rdiddata.o
Only in ioapi-3.2/ioapi: rdprofil.o
Only in ioapi-3.2/ioapi: rdsmatrx.o
Only in ioapi-3.2/ioapi: rdtflag.o
Only in ioapi-3.2/ioapi: rdvars.o
Only in ioapi-3.2/ioapi: read3.o
Only in ioapi-3.2/ioapi: read3c.o
Only in ioapi-3.2/ioapi: read4d.o
Only in ioapi-3.2/ioapi: read4dc.o
Only in ioapi-3.2/ioapi: readsmet.o
Only in ioapi-3.2/ioapi: realist.o
Only in ioapi-3.2/ioapi: rmfile.o
Only in ioapi-3.2/ioapi: runspec.o
Only in ioapi-3.2/ioapi: scanint.o
Only in ioapi-3.2/ioapi: sec2time.o
Only in ioapi-3.2/ioapi: sec2timec.o
Only in ioapi-3.2/ioapi: secsdiff.o
Only in ioapi-3.2/ioapi: secsdiffc.o
Only in ioapi-3.2/ioapi: setsphere.o
Only in ioapi-3.2/ioapi: shut3.o
Only in ioapi-3.2/ioapi: shut3c.o
Only in ioapi-3.2/ioapi: skipl.o
Only in ioapi-3.2/ioapi: sleep3.o
Only in ioapi-3.2/ioapi: smatvec.o
Only in ioapi-3.2/ioapi: sortic.o
Only in ioapi-3.2/ioapi: sortir.o
Only in ioapi-3.2/ioapi: sortis.o
Only in ioapi-3.2/ioapi: splitline.o
Only in ioapi-3.2/ioapi: str2dble.o
Only in ioapi-3.2/ioapi: str2int.o
Only in ioapi-3.2/ioapi: str2real.o
Only in ioapi-3.2/ioapi: strlist.o
Only in ioapi-3.2/ioapi: sync3.o
Only in ioapi-3.2/ioapi: sync3c.o
Only in ioapi-3.2/ioapi: syncfid.o
Only in ioapi-3.2/ioapi: synchtao.o
Only in ioapi-3.2/ioapi: systemf.o
Only in ioapi-3.2/ioapi: time2sec.o
Only in ioapi-3.2/ioapi: time2secc.o
Only in ioapi-3.2/ioapi: trimlen.o
Only in ioapi-3.2/ioapi: ungridb.o
Only in ioapi-3.2/ioapi: ungridi.o
Only in ioapi-3.2/ioapi: upcase.o
Only in ioapi-3.2/ioapi: utm2ll.o
Only in ioapi-3.2/ioapi: wkday.o
Only in ioapi-3.2/ioapi: wkdayc.o
Only in ioapi-3.2/ioapi: wratt3.o
Only in ioapi-3.2/ioapi: wratt3c.o
Only in ioapi-3.2/ioapi: wrbndary.o
Only in ioapi-3.2/ioapi: wrbuf3.o
Only in ioapi-3.2/ioapi: wrcustom.o
Only in ioapi-3.2/ioapi: wrdict3.o
Only in ioapi-3.2/ioapi: wrgrdded.o
Only in ioapi-3.2/ioapi: wrgrnest.o
Only in ioapi-3.2/ioapi: wriddata.o
Only in ioapi-3.2/ioapi: write3.o
Only in ioapi-3.2/ioapi: write3c.o
Only in ioapi-3.2/ioapi: write4d.o
Only in ioapi-3.2/ioapi: write4dc.o
Only in ioapi-3.2/ioapi: wrmpigrd.o
Only in ioapi-3.2/ioapi: wrpatch.o
Only in ioapi-3.2/ioapi: wrprofil.o
Only in ioapi-3.2/ioapi: wrsmatrx.o
Only in ioapi-3.2/ioapi: wrtflag.o
Only in ioapi-3.2/ioapi: wrvars.o
Only in ioapi-3.2/ioapi: xtbuf3.o
Only in ioapi-3.2/ioapi: xtract3.o
Only in ioapi-3.2/ioapi: xtract3c.o
Only in ioapi-3.2/ioapi: year4.o
Only in ioapi-3.2/ioapi: yr2day.o
Only in src/m3tools: Makefile
diff -ur ioapi-3.2/m3tools/Makefile.pncf.sed src/m3tools/Makefile.pncf.sed
--- ioapi-3.2/m3tools/Makefile.pncf.sed 2017-10-21 03:37:21.000000000 +0200
+++ src/m3tools/Makefile.pncf.sed 2018-07-09 18:01:58.000000000 +0200
@@ -99,7 +99,7 @@
insertgrid jul2greg juldate juldiff julshift \
kfxtract latlon m3agmax m3agmask m3cple \
m3combo m3diff m3edhdr m3fake m3hdr \
-m3interp m3mask m3merge m3pair m3probe \
+m3interp m3merge m3pair m3probe \
m3stat m3totxt m3tproc m3tshift m3wndw \
m3xtract mtxblend mtxbuild mtxcalc mtxcple \
presterp presz projtool selmrg2d timeshift \

View File

@@ -0,0 +1,46 @@
# Version "$Id: Makeinclude.Linux2_x86_64gfortmpi 1 2017-06-10 18:05:20Z coats $"
#
# Build MPI/PnetCDF distributed-file support using "mpif90" and "mpcc",
# where compilers are built "on top of" Gnu compilers
#
# 12/2013 by CJC: Conditional preprocessor-code "-DNEED_ARGS=1"
# to implement IARGC() and GETARG() for compilers
# ("gfortran" version 4.8 or later to be exact) that insist on
# enforcing F2003-only with no backwards nor industry-standards compatibility.
#
# Remove "-DNEED_ARGS=1" from ARCHFLAGS for version 4.7.x and earlier
#
# Use "-march=native -mtune=native" if compile-platform and compute-platform
# are the same.
# Use "-Wall -Wsurprising" for full diagnostics.
AR = ar
CC = mpicc
CXX = mpiCC
FC = mpif90
M4 = m4
LINK = $(CC)
## Module-include-directory command
MODI = -I
E132 = -ffixed-line-length-132
MFLAGS = -ffast-math -funroll-loops -m64 # -Wall -Wsurprising -march=native -mtune=native
OMPFLAGS = -fopenmp
OMPLIBS = -fopenmp
COPTFLAGS = -O3 ${MFLAGS}
FOPTFLAGS = -O3 ${MFLAGS}
FPPFLAGS = -DF90=1 -DIOAPI_PNCF=1
FSFLAGS = -fno-automatic
ARCHFLAGS = \
-DAUTO_ARRAYS=1 \
-DF90=1 -DFLDMN=1 \
-DFSTR_L=int \
-DIOAPI_NO_STDOUT=1 \
-DNEED_ARGS=1
PARFLAGS =
ARCHLIB = -dynamic -lm -lpthread -lc
M4DEFFILE = $(PVM_ROOT)/conf/$(PVM_ARCH).m4
PVMLIBS = -lpvm3

View File

@@ -0,0 +1 @@
ioapi/3.2 unstable gcc/7.3.0 openmpi/1.10.7 hdf5/1.10.1 netcdf/4.6.1 parallel-netcdf/1.9.0

19
HDF5/ioapi/modulefile Normal file
View File

@@ -0,0 +1,19 @@
#%Module1.0
module-whatis "Models-3 Input/Output Applications Programming Interface"
module-url "https://www.cmascenter.org/ioapi/"
module-license "GNU GPLv2"
module-maintainer "Achim Gsell <achim.gsell@psi.ch>"
module-help "
The Models-3 Input/Output Applications Programming Interface (I/O API) is
a selective and direct-access programming interface to the data: you tell
the system what variables and dates and times you're talking about and it
figures all the stuff about record numbers, etc., for itself. Also, you
don't have to read the data in consecutive order, or to write it in order,
either -- you just ask for what you want, and the I/O API finds it for you
(although there are moderate performance penalties for writing data out-of-
order). The files are self-describing files -- that is, the file headers
have all the dimensioning and descriptive information needed about the data
in them.
"