Page 1 of 1

Floating point exception in $neb$neb_force_

Posted: Wed Dec 13, 2006 2:46 am
by phydig
Floating point exception was encountered in NEB calculation. Following lines are output information: (where ******* stand for omitting lines)
Sender: LSF System <lsfadmin@sigma-x5>
Subject: Job 37425: <prun /home1/phydig/lsh/vasp/bin/V7> Exited
********
The output (if any) follows:

running on 16 nodes
each image running on 8 nodes
distr: one band on 1 nodes, 8 groups
vasp.4.6.25 17Sep03 complex
01/POSCAR found : 3 types and 18 ions
**********
entering main loop
**********
RMM: 26 -0.103000597335E+03 0.15883E-03 -0.37088E-04 1327 0.597E-02
0.575E-02
RMM: 27 -0.103000601260E+03 -0.39242E-05 -0.15448E-04 1053 0.408E-02
forrtl: error (65): floating invalid
forrtl: error (65): floating invalid
forrtl: error (75): floating point exception
forrtl: error (75): floating point exception
forrtl: error (75): floating point exception
forrtl: error (75): floating point exception
forrtl: error (75): floating point exception
forrtl: error (65): floating invalid
forrtl: error (65): floating invalid
forrtl: error (65): floating invalid
forrtl: error (65): floating invalid
forrtl: error (65): floating invalid
forrtl: error (75): floating point exception
0: __FINI_00_remove_gp_range [0x3ff81a6de38] 3: __FINI_00_remove_gp_range [0x3ff80249ae4]
4: __FINI_00_remove_gp_range [0x3ff80249094]
5: __FINI_00_remove_gp_range [0x3ff8025d838]
6: $neb$neb_force_ forrtl: error (65): floating invalid
0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76cc0]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: __FINI_00_remove_gp_range [0x3ff80249ae4]
4: __FINI_00_remove_gp_range [0x3ff80249094]
5: __FINI_00_remove_gp_range [0x3ff8025d838]
6: $neb$neb_force_ 0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76cc0]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: __FINI_00_remove_gp_range [0x3ff80249ae4]
4: __FINI_00_remove_gp_range [0x3ff80249094]
5: __FINI_00_remove_gp_range [0x3ff8025d838]
6: $neb$neb_force_ forrtl: error (75): floating point exception
forrtl: error (75): floating point exception
0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76e60]
1: __FINI_00_remove_gp_range [0x3ff81a76cc0]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: $neb$neb_force_ 0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76e60]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: $neb$neb_force_ 0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76e60]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: $neb$neb_force_ 0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76e60]
0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76cc0]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: __FINI_00_remove_gp_range [0x3ff80249ae4]
4: __FINI_00_remove_gp_range [0x3ff80249094]
5: __FINI_00_remove_gp_range [0x3ff8025d838]
0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76e60]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: $neb$neb_force_ 2: __FINI_00_remove_gp_range [0x3ff800d5af0]
6: $neb$neb_force_ 0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76cc0]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: __FINI_00_remove_gp_range [0x3ff80249ae4]
4: __FINI_00_remove_gp_range [0x3ff80249094]

5: __FINI_00_remove_gp_range [0x3ff8025d838]
6: $neb$neb_force_ 3: $neb$neb_force_ 0: __FINI_00_remove_gp_range [0x3
ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76cc0]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: __FINI_00_remove_gp_range [0x3ff80249ae4]
4: __FINI_00_remove_gp_range [0x3ff80249094]
5: __FINI_00_remove_gp_range [0x3ff8025d838]
6: $neb$neb_force_ 0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76e60]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: $neb$neb_force_ 0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76cc0]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: __FINI_00_remove_gp_range [0x3ff80249ae4]
4: __FINI_00_remove_gp_range [0x3ff80249094]
5: __FINI_00_remove_gp_range [0x3ff8025d838]
6: $neb$neb_force_ 0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76e60]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: $neb$neb_force_ 0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76cc0] 2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: $neb$neb_force_ 0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76cc0]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: __FINI_00_remove_gp_range [0x3ff80249ae4]
4: __FINI_00_remove_gp_range [0x3ff80249094]
5: __FINI_00_remove_gp_range [0x3ff8025d838]
6: $neb$neb_force_ 0: __FINI_00_remove_gp_range [0x3ff81a6de38]
1: __FINI_00_remove_gp_range [0x3ff81a76e60]
2: __FINI_00_remove_gp_range [0x3ff800d5af0]
3: $neb$neb_force_
Then the program was suspended and no information followed.
Thanks very much for your kind consideration.

Posted: Wed Dec 13, 2006 5:23 am
by phydig
Following are bottom lines of 01/OUTCAR and 02/OUTCAR, respectively.
01/OUTCAR
NEBV Params: ispring,spring,spring2,spower,efirst,elast
NEBV Params: 2 5.00000000000000 7.00000000000000
1.00000000000000 -103.432770000000 -102.294564000000
NEB: DOING NEB!
NEBD: energy_flag_prev,next: F T
NEBD: Only next higher

02/OUTCAR
NEBV Params: ispring,spring,spring2,spower,efirst,elast
NEBV Params: 2 5.00000000000000 7.00000000000000
1.00000000000000 -103.432770000000 -102.294564000000
NEB: DOING NEB!
NEBD: energy_flag_prev,next: F F
NEBD: Both higher or lower
NEBD: min, max energy: 1.10866745908807 1.81470471869397
NEBD: Next gt Prev

It seems that the floating point exception is caused by the following source lines of neb.F, which would be executed once the last line of OUTCAR occurred.
!=====================================================================
! some debugging
!=====================================================================
old_dot=sum(old_tangent*tangent)*norm
prev_dot=sum(distprev*tangent)*norm**2
next_dot=sum(distnext*tangent)*norm**2

if (iu6>0) then
write(iu6,*) 'NEBD: old_dot, prev_dot, next_dot: ',old_dot,prev_dot,next_dot
endif
Since the write statement didn’t take action and the program crashed.