The assembly code would seem to indicate that variable "ld10" is an uninitialized integer variable. Do you have IMPLICIT NONE?
IOW this looks like you are not using IMPLICIT NONE and have not declared variable LD10.
Ignore this post, I just got off the Fortran forum
The xorl "%eax, %eax" is used to zero a register (value of variable in register). Look at the code leading into this section and possibly do something with variable ld10 (e.g. copy it) make sure the type (typedef) is correct. What little code you sent implies ld10 is in eax, but for some reason is also being zeroed. Are you zeroing ld10 immediately before or after the if(...)?