Fortran - problem with double precision?

Do you mean the "write (13, *) statement. This is "list directed" output. It is a convenience I/O with few rules -- what you get will depend upon the compiler -- it is best used for debugging and "quick and dirty" programs.To reliably get all the digits of double precision, change to a formatted output statement, specifying the number of digits that you need.

(It is probably best to switch to gfortran anyway, as g77 is no longer under development. ).

Your numbers are double precision but you are printing them in free format. You have to specify an explicit format.

I would be tempted to set the format on your write statement to something explicit, rather than use * in write(13,*)P,Q,R,S,val. Regards Mark.

If you want to keep your code F77, try something like write(13,1000) P,Q,R,S,val 1000 format(1X,4I7,1X,1E14.10) The "1X"s mean one space, "4I7" means four seven-width integers, and 1E14.10 means one fourteen-charater width scientific-notation real number with 10 significant digits. Feel free to mess around with the numbers to get it to look right. This is a pretty good tutorial on the topic.

When I compile it using gfortran I obtain double precision in output file but with g77 I get only single precision. What it wrong and how to change it?

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions