libfdf:master

Last commit made on 2019-03-14
Get this branch:
git clone -b master https://git.launchpad.net/libfdf
Members of FDF Maintainers can upload to this branch. Log in for directions.

Branch merges

Branch information

Name:
master
Repository:
lp:libfdf

Recent commits

1823caa... by Alberto Garcia

Merge decoupling of MPI functionality

fdf is now a "single node" library. To enable MPI operation,
serialization routines for the fdf database are provided for clients.

TODO:

A template for broadcasting of the serialized fdf database can be
provided, but it is not clear where.

Remove MPI-related variables and options from the build system

9999b3b... by Alberto Garcia

Use len=1 in character buffer declaration. 0.2.1

365bf0a... by Alberto Garcia

Change names of serialization-related routines to start with fdf_

ddb8ce8... by Alberto Garcia

Make fdf_printfdf public

7005788... by Alberto Garcia

Refine serialization. Remove FDF_DEBUG

Remove also mentions to MPI in fdf.Standard.

e09d7f2... by Alberto Garcia

Decouple from MPI

2b7ec59... by Alberto Garcia

Merge branch 'fix-log-output' into ag

Merge Nick's fixes.

10ffa50... by Nick Papior

fdf-updates, allow fixing block-log output, added block-line-count and is-block

The fdf-infrastructure is default to create log-output files. However, these
log-files are not directly usable as input for subsequent siesta runs.
The reason was that blocks *only* wrote out %endblock to the log if
fdf_bline was called until it failed, i.e. to the end of the block.
And currently many places in siesta was reading based on another integer
input. Secondly, the fdf_defined opened a block which isn't necessary.

The solution is divided into a few things, parenthesis is the interface:

fdf_isblock: (label)
Added this routine to check whether a label is defined as a block.
Currently there may be inconsistencies if the label is used both as
block and label, however one can then programatically decide.
This routine is now used in fdf_defined because it removes the call
to fdf_block (which opens the block).

Writes

  #:block? <label> T/F

to log.

fdf_bclose: (block_fdf)
Added routine to loop the remaining lines in the block. This is never necessary
unless one wants the log-file to be complete in terms of re-use.
I.e. if one reads all lines in the block via:
   do while ( fdf_bline(bfdf, pline) )
     ...
   end do
there is no need for fdf_bclose. However, with

   n = fdf_get('LabelSize', 0)
   if ( n > 0 .and. fdf_block('Label', bfdf) ) then
     do i = 1, n
        if ( fdf_bline(bfdf, pline) ) then
   ...
 end if
     end do
   end if
   call fdf_bclose(bfdf)

it is required to use fdf_bclose to close the block in the log.

fdf_block_linecount: (label, morph?)
Added routine to count the number of lines in a block.
If morph is not specified, any line counts as a valid line.
If morph is present a match will be done for each line, and if
accepted it counts as a line.
For instance in AtomicCoordinatesAndAtomicSpecies one would do:

  na = fdf_block_linecount('AtomicCoordinatesAndAtomicSpecies', 'vvvi')

Note that this routine will suppress writing to the log file. The only thing
that is written to the log-file is:

  #:block-line-count? <label> (morph?) N

Secondly, all log-output that does not result in a valid input line is
prefixed with '#:'
This was the case for fdf_bbackspace which simply wrote out "(Backspace to..."
Now it writes: "#:(Backspace to..."
Also fixed in fdf_defined.

Signed-off-by: Nick Papior <email address hidden>

08dbff6... by Nick Papior

enh: added real-lists

I have added tests for reading real lists with great success.
These work exactly the same as integer lists.

I have added tests in the sample.f90 file and enabled
stop <> calls such that the test case actually fails
in case there are errors.

Signed-off-by: Nick Papior <email address hidden>

c85a530... by Nick Papior

test: added test for 1-entry lists

Signed-off-by: Nick Papior <email address hidden>