New Reply

problem with a fortran program

 
Share Thread Thread Tools
Nov23-12, 08:55 AM   #1
 

problem with a fortran program


Hi;
I am trying to run a program which includes;

call AB
write(6,*) 'finished AB'
c---------
call ABp(Vup,gup)
call ABp(Vdn,gdn)
write(6,*) 'finished ABp'
c------------------------------------------------------------------
c do warmup sweeps
c-----

accept = 1
reject = 0

do 410 i = 1, iwarm
call sweep(i)
if (mod(i,10).eq.0) then
write(6,*) 'warmup sweep = ',i
endif
410 continue
write(6, *) 'after warmups, accept ratio = ',
1 float( accept ) / (accept+reject)
write(46,*)
write(46,*) 'after warmups, accept ratio = ',
1 float(accept)/(accept+reject)
c--------------------------------------------------------------------------

but I see an error message ;
multi0.f: In program `multi':
multi0.f:97:
write(6,*) 'accept ratio ='
1
multi0.f:98: (continued):
1 float(accept) / (accept+reject)
2
Invalid radix specifier `float' at (2) for typeless constant at (1)
multi0.f:98:
1 float(accept) / (accept+reject)
1 2
Concatenation operator at (1) must operate on two subexpressions of character type, but the subexpression at (2) is not of character type
mv: cannot stat `a.out': No such file or directory
c----------------------------------------------------------------------

what is the meaning of this message?

thanks.
PhysOrg.com
PhysOrg
science news on PhysOrg.com

>> Galaxies fed by funnels of fuel
>> The better to see you with: Scientists build record-setting metamaterial flat lens
>> Google eyes emerging markets networks
Nov23-12, 11:24 AM   #2
 
Recognitions:
Homework Helper Homework Help
It would be helpful to see the entire program.
Nov23-12, 02:21 PM   #3
 
You may want to make your calculation of float(accept)/(accept+reject) previous to the write statement, assign the results to a single variable and print out such variable without any typecasting or anything.
Nov23-12, 06:59 PM   #4
 
Mentor

problem with a fortran program


I'm reasoably sure that the errors are cause by these lines of code:
Code:
write(6, *) 'after warmups, accept ratio = ',
1 float( accept ) / (accept+reject)
write(46,*)
write(46,*) 'after warmups, accept ratio = ',
1 float(accept)/(accept+reject)
Fortran is very picky about splitting lines of code. Either put each write statement on its own line for the entire statement, or use the continuation character, & or +.
New Reply
Thread Tools


Similar Threads for: problem with a fortran program
Thread Forum Replies
help with a FORTRAN program Programming & Comp Sci 0
need help about FORTRAN program Mechanical Engineering 7
help with fortran program Programming & Comp Sci 6
running a Fortran 77 program in a C++ enviorment/program Programming & Comp Sci 2
problem in fortran program Programming & Comp Sci 0