diff options
author | Dana Robinson <derobins@hdfgroup.org> | 2016-02-27 01:01:52 (GMT) |
---|---|---|
committer | Dana Robinson <derobins@hdfgroup.org> | 2016-02-27 01:01:52 (GMT) |
commit | 8cd0b0aff8551345c84f75ea3c504a97cd87778b (patch) | |
tree | b2a8b27cab1b4c1c9acf0f3f16e086bb8b702740 /fortran/src/H5fortkit.F90 | |
parent | 0c7eab89e3c92f979e75bca760c6f45600c800b1 (diff) | |
download | hdf5-8cd0b0aff8551345c84f75ea3c504a97cd87778b.zip hdf5-8cd0b0aff8551345c84f75ea3c504a97cd87778b.tar.gz hdf5-8cd0b0aff8551345c84f75ea3c504a97cd87778b.tar.bz2 |
[svn-r29219] Merge of r29062, 29074, 29092
Fortran VDS wrappers and bugfixes.
Tested on: 64-bit Ubuntu 15.10 w/ gcc 5.2.1
autotools serial w/ Fortran
autotools parallel w/ Fortran
Diffstat (limited to 'fortran/src/H5fortkit.F90')
-rw-r--r-- | fortran/src/H5fortkit.F90 | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/fortran/src/H5fortkit.F90 b/fortran/src/H5fortkit.F90 new file mode 100644 index 0000000..9afd890 --- /dev/null +++ b/fortran/src/H5fortkit.F90 @@ -0,0 +1,58 @@ +!****h* H5fortkit/H5fortkit +! PURPOSE +! Routines to deal with C-FORTRAN issues. +! +! COPYRIGHT +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! Copyright by The HDF Group. * +! Copyright by the Board of Trustees of the University of Illinois. * +! All rights reserved. * +! * +! This file is part of HDF5. The full HDF5 copyright notice, including * +! terms governing use, modification, and redistribution, is contained in * +! the files COPYING and Copyright.html. COPYING can be found at the root * +! of the source code distribution tree; Copyright.html can be found at the * +! root level of an installed copy of the electronic HDF5 document set and * +! is linked from the top-level documents page. It can also be found at * +! http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * +! access to either file, you may request a copy from help@hdfgroup.org. * +! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +! +MODULE H5fortkit + +CONTAINS + +!****if* H5fortkit/HD5c2fstring +! NAME +! HD5c2fstring +! INPUTS +! cstring - C string stored as a string array of size 'len' of string size LEN=1 +! len - length of Fortran string +! OUTPUT +! fstring - Fortran string array of LEN=1 +! PURPOSE +! Copies a Fortran array of strings having a length of one to a fortran string and removes the C Null +! terminator. The Null terminator is returned from C when calling the C APIs directly. +! +! The fortran standard does not allow C_LOC to be used on a character string of +! length greater than one, which is why we use the array of characters instead. +! +! SOURCE + SUBROUTINE HD5c2fstring(fstring,cstring,len) +!***** + IMPLICIT NONE + + INTEGER :: i + INTEGER :: len + CHARACTER(LEN=len) :: fstring + CHARACTER(LEN=1), DIMENSION(1:len) :: cstring + + fstring = '' + DO i = 1, len + IF (cstring(i)(1:1)==CHAR(0)) EXIT + fstring(i:i) = cstring(i)(1:1) + END DO + + END SUBROUTINE HD5c2fstring + +END MODULE H5fortkit |