mirror of
https://github.com/TREX-CoE/fparser.git
synced 2024-12-23 04:44:04 +01:00
commiting output files also
This commit is contained in:
parent
21d0f0459c
commit
86c224105b
@ -4,6 +4,7 @@
|
||||
PROGRAM iochamp
|
||||
USE fdf
|
||||
USE prec
|
||||
USE parse
|
||||
implicit none
|
||||
!--------------------------------------------------------------- Local Variables
|
||||
integer, parameter :: maxa = 100
|
||||
@ -13,8 +14,8 @@ PROGRAM iochamp
|
||||
character(len=72) :: molecule_name, key, comment
|
||||
character(2) :: symbol(maxa)
|
||||
character(len=20) :: chunks(10), subblock(10)
|
||||
character(len=30) :: keyword(5), argument(5)
|
||||
integer(sp) :: i, j, ia, na, external_entry, number_of_atoms
|
||||
character(len=30) :: keyword(5)
|
||||
integer(sp) :: i, j, ia, na, external_entry, number_of_atoms, ind
|
||||
integer(sp) :: isa(maxa)
|
||||
real(dp) :: coeff(maxa)
|
||||
real(sp) :: wmix
|
||||
@ -24,7 +25,7 @@ PROGRAM iochamp
|
||||
type(block_fdf) :: bfdf, bfdf2
|
||||
type(parsed_line), pointer :: pline, pline2
|
||||
!type(fdf_file) :: fdffile
|
||||
integer :: nextorb, nblk_max, nopt_iter, max_iteration, max_iter, linecount
|
||||
integer :: nextorb, nblk_max, nopt_iter, max_iteration, max_iter, linecount, argument(5)
|
||||
real(dp) :: energy_tol, float_value
|
||||
real(dp) :: sr_tau, sr_eps, sr_adiag
|
||||
character(len=20) :: real_format = '(A, T20, F14.5)'
|
||||
@ -42,7 +43,7 @@ PROGRAM iochamp
|
||||
fname = fdf_string('title', 'Default title')
|
||||
write(6,'(A)') 'title of the calculation :: ', fname
|
||||
|
||||
! Integer numbers (keyword, default_value). The variable is assigned default_value when keyword is not present
|
||||
!Integer numbers (keyword, default_value). The variable is assigned default_value when keyword is not present
|
||||
nextorb = fdf_integer('nextorb', 0)
|
||||
write(6,fmt=int_format) 'Next Orb =', nextorb
|
||||
|
||||
@ -66,7 +67,15 @@ PROGRAM iochamp
|
||||
energy_tol = fdf_get('energy_tol', 0.00001d0)
|
||||
write(6,fmt=real_format) 'energy_tol:', energy_tol
|
||||
|
||||
! logical :: true, .true., yes, T, and TRUE are equivalent
|
||||
nopt_iter = fdf_integer('a', 0)
|
||||
write(6,fmt=int_format) 'a =', nopt_iter
|
||||
|
||||
nopt_iter = fdf_integer('b', 0)
|
||||
write(6,fmt=int_format) 'b =', nopt_iter
|
||||
|
||||
|
||||
|
||||
! logical :: true, .true., yes, T, and TRUE are equivalent
|
||||
debug = fdf_boolean('Debug', .TRUE.)
|
||||
write(6,'(A, L2)') 'Debug:', debug
|
||||
|
||||
@ -92,22 +101,19 @@ PROGRAM iochamp
|
||||
write(6,*) '------------------------------------------------------'
|
||||
|
||||
|
||||
! block containing other key-value pairs :: A temporary workaround
|
||||
if (fdf_block('optimization_flags', bfdf)) then
|
||||
write(*,*) "inside optimization_flags block"
|
||||
linecount = fdf_block_linecount("optimization_flags")
|
||||
i = 1
|
||||
do while(fdf_bline(bfdf, pline))
|
||||
! write(*,*) "some debug info pline" , pline%ntokens, pline%line
|
||||
keyword(i) = fdf_bnames(pline, 1)
|
||||
argument(i) = fdf_bnames(pline, 2)
|
||||
i = i + 1
|
||||
enddo
|
||||
endif
|
||||
! block containing logical key-value pairs
|
||||
doit = fdf_boolean("optimize_wavefunction", .True.)
|
||||
write(6,*) ' optimize_wavefunction = ', doit
|
||||
|
||||
doit = fdf_boolean('optimize_ci', .True.)
|
||||
write(6,*) ' optimize_ci = ', doit
|
||||
|
||||
doit = fdf_boolean('optimize_jastrow', .True.)
|
||||
write(6,*) ' optimize_jastrow = ', doit
|
||||
|
||||
doit = fdf_boolean('optimize_orbitals', .True.)
|
||||
write(6,*) ' optimize_orbitals = ', doit
|
||||
|
||||
do i = 1, linecount
|
||||
write(6,'(*(A,4X,A))') keyword(i), argument(i)
|
||||
enddo
|
||||
|
||||
|
||||
write(6,'(A)')
|
||||
@ -131,26 +137,6 @@ PROGRAM iochamp
|
||||
write(6,*) '------------------------------------------------------'
|
||||
|
||||
|
||||
! This block currently fails as it is not possible to parse within the scope of a block
|
||||
doit = fdf_get("optimize_wavefunction", .false.)
|
||||
write(6,*) 'outside optimize_wavefunction', doit
|
||||
|
||||
doit = fdf_get('opt.optimize_ci', .false.)
|
||||
write(6,*) 'outside optimize_ci', doit
|
||||
|
||||
doit = fdf_get('opt.optimize_jastrow', .false.)
|
||||
write(6,*) 'outside optimize_jastrow:', doit
|
||||
|
||||
doit = fdf_get('opt.optimize_orbitals', .false.)
|
||||
write(6,*) 'outside optimize_orbitals:', doit
|
||||
|
||||
|
||||
|
||||
|
||||
write(6,'(A)')
|
||||
|
||||
write(6,*) '------------------------------------------------------'
|
||||
|
||||
|
||||
|
||||
if (fdf_block('molecule', bfdf)) then
|
||||
|
@ -1,22 +1,24 @@
|
||||
title "A Sample QMC input file parsed by libfdf interfaced to CHAMP"
|
||||
|
||||
nextorb 280
|
||||
nblk_max 200
|
||||
nopt_iter 2
|
||||
|
||||
sr_tau 1.023
|
||||
sr_eps 0.001
|
||||
sr_adiag 0.05
|
||||
energy_tol 0.004
|
||||
|
||||
a = 20
|
||||
b = 30
|
||||
|
||||
|
||||
%block optimization_flags
|
||||
optimize_wavefunction no
|
||||
optimize_ci No
|
||||
optimize_jastrow yes
|
||||
optimize_orbitals False
|
||||
%endblock
|
||||
optimize_wavefunction no
|
||||
optimize_ci no
|
||||
optimize_jastrow yes
|
||||
optimize_orbitals false
|
||||
|
||||
|
||||
nextorb 280
|
||||
nblk_max 200
|
||||
nopt_iter 20
|
||||
|
||||
|
||||
|
||||
|
||||
@ -58,7 +60,7 @@ energy_tol 0.004
|
||||
|
||||
%block inline_xyz
|
||||
3
|
||||
|
||||
sample comment
|
||||
O 4.013 0.831 -9.083
|
||||
H 4.941 0.844 -8.837
|
||||
H 3.750 -0.068 -9.293
|
||||
|
94
src/test-champ.out
Normal file
94
src/test-champ.out
Normal file
@ -0,0 +1,94 @@
|
||||
#:block? new-style F
|
||||
#:defined? new-style F
|
||||
title A Sample QMC input file parsed by libfdf interfaced to CHAMP
|
||||
nextorb 280
|
||||
nblk_max 200
|
||||
nopt_iter 20
|
||||
sr_tau 1.023000000
|
||||
sr_eps 0.1000000000E-02
|
||||
sr_adiag 0.5000000000E-01
|
||||
energy_tol 0.4000000000E-02
|
||||
a 20
|
||||
b 30
|
||||
Debug T # default value
|
||||
max_iteration 2147483647
|
||||
float_value 0.3140000000E+11
|
||||
Energy_Cutoff 36.74899422 Ry
|
||||
# above item originally: Energy_Cutoff 500.0000000 eV
|
||||
phonon-energy 0.4264063563E-01 eV
|
||||
# above item originally: phonon-energy 344.0000000 cm**-1
|
||||
optimize_wavefunction F
|
||||
optimize_ci F
|
||||
optimize_jastrow T
|
||||
optimize_orbitals F
|
||||
%block general
|
||||
pool_directory pool
|
||||
pseudopotential BFD
|
||||
basis BFD-T-normf0
|
||||
%endblock general
|
||||
%block molecule
|
||||
24
|
||||
molecule 1,3,7-Trimethylpurine-2,6-dione
|
||||
N 1.5808 0.7027 -0.2279
|
||||
C 1.7062 -0.7374 -0.2126
|
||||
N 0.5340 -1.5671 -0.3503
|
||||
C 0.3231 1.3600 0.0274
|
||||
C -0.8123 0.4553 0.0817
|
||||
C -0.6967 -0.9322 -0.0662
|
||||
N -2.1886 0.6990 0.2783
|
||||
C -2.8512 -0.5205 0.2532
|
||||
N -1.9537 -1.5188 0.0426
|
||||
C 0.6568 -3.0274 -0.1675
|
||||
O 2.8136 -1.2558 -0.1693
|
||||
O 0.2849 2.5744 0.1591
|
||||
C -2.8096 2.0031 0.5032
|
||||
C 2.8301 1.5004 -0.1968
|
||||
H -3.9271 -0.6787 0.3762
|
||||
H 1.4823 -3.4046 -0.7865
|
||||
H -0.2708 -3.5204 -0.4868
|
||||
H 0.8567 -3.2990 0.8788
|
||||
H -2.4123 2.7478 -0.2017
|
||||
H -2.6042 2.3621 1.5221
|
||||
H -3.8973 1.9344 0.3695
|
||||
H 3.5959 1.0333 -0.8314
|
||||
H 3.2249 1.5791 0.8255
|
||||
H 2.6431 2.5130 -0.5793
|
||||
%endblock molecule
|
||||
%block Coordinates
|
||||
C 0.00000 1.40272 0 # can have comments in between or after the data
|
||||
H 0.00000 2.49029 0
|
||||
C -1.21479 0.70136 0
|
||||
H -2.15666 1.24515 0
|
||||
C -1.21479 -0.70136 0
|
||||
H -2.15666 -1.24515 0
|
||||
C 0.00000 -1.40272 0
|
||||
H 0.00000 -2.49029 0
|
||||
C 1.21479 -0.70136 0
|
||||
H 2.15666 -1.24515 0
|
||||
C 1.21479 0.70136 0
|
||||
H 2.15666 1.24515 0
|
||||
%endblock Coordinates
|
||||
%block inline_xyz
|
||||
3
|
||||
sample comment
|
||||
O 4.013 0.831 -9.083
|
||||
H 4.941 0.844 -8.837
|
||||
H 3.750 -0.068 -9.293
|
||||
%endblock inline_xyz
|
||||
%block inline_xyz2
|
||||
6
|
||||
C 3.402 0.773 -9.252
|
||||
C 4.697 0.791 -8.909
|
||||
H 2.933 -0.150 -9.521
|
||||
H 2.837 1.682 -9.258
|
||||
H 5.262 -0.118 -8.904
|
||||
H 5.167 1.714 -8.641
|
||||
%endblock inline_xyz2
|
||||
%block ListBlock
|
||||
list_integers [1 to 6 7 9 10 ] [ 1 to 7 8 9 11 12 ]
|
||||
%endblock ListBlock
|
||||
#:lreal? list_floats T
|
||||
#:list? list_floats T
|
||||
#:linteger? list_floats F
|
||||
list_floats 17
|
||||
list_floats 17
|
Loading…
Reference in New Issue
Block a user