you can run the following script (on a single server or notebook)
with the input attached.
You will see that serial run are the same (as it must be)
whereas OMP runs differs (and it cannot be ! )
I can send you my outputs, which is your email ?
#!/bin/bash
cryser="/homex/atom/ATOMSOFT/CRYSTAL/NEWMPI2/bin/Linux-ifort_i64_OMP/dev/crystal"
echo "----------RUN SERIAL----------"
if [ ! -e inputhfser.out.1 ]; then
$cryser < inputhf.d12 | tee inputhfser.out.1
fi
if [ ! -e inputhfser.out.2 ]; then
$cryser < inputhf.d12 | tee inputhfser.out.2
fi
diff inputhfser.out.1 inputhfser.out.2 | grep -v TTT
if [ ! -e inputhfserNC.out.1 ]; then
$cryser < inputhfNC.d12 | tee inputhfserNC.out.1
fi
if [ ! -e inputhfser.out.3 ]; then
$cryser < inputhf.d12 | tee inputhfser.out.3
fi
diff inputhfser.out.3 inputhfser.out.1 | grep -v TTT
cry="/homex/atom/ATOMSOFT/CRYSTAL/OMPH/bin/Linux-ifort_i64_OMP/dev/crystalOMP"
export OMP_NUM_THREADS=16
$cry < inputhfnodiis.d12 | tee inputhf.out.1
$cry < inputhfnodiis.d12 | tee inputhf.out.2
exit
echo "------------RUN DIRECT------------"
if [ ! -e inputhf.out.1 ]; then
$cry < inputhf.d12 | tee inputhf.out.1
fi
if [ ! -e inputhf.out.2 ]; then
$cry < inputhf.d12 | tee inputhf.out.2
fi
echo "THIS MUST BE THE SAME TO ALL DIGITS, BUT IT IS NOT !"
grep DETOT inputhf.out.1 >de1.dat
grep DETOT inputhf.out.2 >de2.dat
diff de1.dat de2.dat
if [ ! -e inputhfNC.out.1 ]; then
$cry < inputhfNC.d12 | tee inputhfNC.out.1
fi
if [ ! -e inputhf.out.3 ]; then
$cry < inputhf.d12 | tee inputhf.out.3
fi
echo "THIS MUST BE THE SAME TO ALL DIGITS, BUT IT IS NOT !"
grep DETOT inputhf.out.3 >de3.dat
diff de1.dat de3.dat
echo "=====================run with script===================="
if [ ! -e inputhf.out.O1 ]; then
runcry23OMP 16 inputhf
mv inputhf.out inputhf.out.O1
fi
if [ ! -e inputhf.out.O2 ]; then
runcry23OMP 16 inputhf
mv inputhf.out inputhf.out.O2
fi
grep DETOT inputhf.out.O1 >deO1.dat
grep DETOT inputhf.out.O2 >deO2.dat
echo "THIS MUST BE THE SAME TO ALL DIGITS, BUT IT IS NOT !"
diff deO1.dat deO2.dat
if [ ! -e inputhfNC.out.O1 ]; then
runcry23OMP 16 inputhfNC
mv inputhfNC.out inputhfNC.out.O1
fi
if [ ! -e inputhf.out.O3 ]; then
runcry23OMP 16 inputhf
mv inputhf.out inputhf.out.O3
fi
grep DETOT inputhf.out.O3 >deO3.dat
echo "THIS MUST BE THE SAME TO ALL DIGITS, BUT IT IS NOT !"
diff deO1.dat deO3.dat
with
inputhf.d12
lithium bcc
CRYSTAL
0 0 0
229
3.25
1
3 0. 0. 0.
LATVEC
20000
END
3 8
0 0 6 2. 1.
6.26926280100E+03 2.05409688260E-04
9.40316124310E+02 1.59165540890E-03
2.14221075280E+02 8.28698297070E-03
6.07598401840E+01 3.38563742490E-02
1.99151520320E+01 1.11032258760E-01
7.31715097970E+00 2.74493833290E-01
0 0 2 1. 1.
2.97246742160E+00 2.37924564110E-01
1.26398523140E+00 3.07654119240E-01
0 0 1 0. 1. *
5E-01 1.0
0 0 1 0. 1. *
2E-01 1.0
0 0 1 0. 1. *
7E-02 1.0
0 2 1 0. 1. *
5E+00 1.0
0 2 1 0. 1. *
5E-01 1.0
0 2 1 0. 1. *
2E-01 1.0
99 0
END
TOLDEE
7
MAXCYCLE
25
SHRINK
24 48
SLOSHING
PRTDIIS
HISTDIIS
15
TOLINTEG
9 9 9 15 45
FMIXING
45
FIXINDEX
END
GEOM
CRYSTAL
0 0 0
229
3.443000000
1
3 0. 0. 0.
LATVEC
20000
END
and
inputhfNC.d12
lithium bcc
CRYSTAL
0 0 0
229
3.25
1
3 0. 0. 0.
LATVEC
20000
END
3 8
0 0 6 2. 1.
6.26926280100E+03 2.05409688260E-04
9.40316124310E+02 1.59165540890E-03
2.14221075280E+02 8.28698297070E-03
6.07598401840E+01 3.38563742490E-02
1.99151520320E+01 1.11032258760E-01
7.31715097970E+00 2.74493833290E-01
0 0 2 1. 1.
2.97246742160E+00 2.37924564110E-01
1.26398523140E+00 3.07654119240E-01
0 0 1 0. 1. *
9E-01 1.0
0 0 1 0. 1. *
2E-01 1.0
0 0 1 0. 1. *
5E-02 1.0
0 2 1 0. 1. *
1E+01 1.0
0 2 1 0. 1. *
7E-01 1.0
0 2 1 0. 1. *
2E-01 1.0
99 0
END
TOLDEE
7
MAXCYCLE
25
SHRINK
24 48
SLOSHING
PRTDIIS
HISTDIIS
15
TOLINTEG
9 9 9 15 45
FMIXING
45
FIXINDEX
END
GEOM
CRYSTAL
0 0 0
229
3.443000000
1
3 0. 0. 0.
LATVEC
20000
END