## run time error M6201:MATH-log domain error

hi all,
i am getting the above problem while executing my fortran program. please help me how to fix it.

thank
MNM
 PhysOrg.com science news on PhysOrg.com >> King Richard III found in 'untidy lozenge-shaped grave'>> Google Drive sports new view and scan enhancements>> Researcher admits mistakes in stem cell study

Mentor
 Quote by MANJUNATH N M hi all, i am getting the above problem while executing my fortran program. please help me how to fix it.
It would appear that your program is attempting to take the log of a number that is negative or zero.

Thank you mark44.
But in the program i am taking log of T. see the program attached below.
Attached Files
 fort.txt (611 Bytes, 13 views)

Mentor

## run time error M6201:MATH-log domain error

For the convenience of other readers, here's your code. As I already said, your program is attempting to take the log of a number that is not positive. There needs to be some code in this function to guard against an attempt to take the log of the parameter T when it is zero or negative.
Code:
C**********************************************************************************
FUNCTION HP(T)
C**********************************************************************************
#	MC,MH,MO,R,RLITAT,RMIX,Y,YCC,YMIN,PMOLWT
COMMON/CPCOEF/CV,ACPF,BCPF,ACPA,BCPA,AL(5),AH(5),
#	BL(5),BH(5),CL(5),CH(5)
HP=0.
IF(T.GT.1600.0) GO TO 20
DO 1 I=1,5
1	HP=HP+N(I)*(AL(I)+BL(I)*T+CL(I)*ALOG(T))
RETURN
20	DO 3 I=1,5
3	HP=HP+N(I)*(AH(I)+BH(I)*T+CH(I)*ALOG(T))
RETURN
END
 Mentor Somewhat off topic... I look at a lot of code samples in many different languages, but the ones in Fortran are usually the worst. They are typically nearly impossible to read with their terse variable names that convey almost no indication of what they're being used for, no or little whitespace, and no indentation to help the reader grasp the extent of loops.
 THANK YOU MARK44, I eliminated log error. but now i am facing one more problem that is "array bound exceeded"
 Mentor You haven't declared the variables in your two common blocks. See http://www.obliquity.com/computer/fortran/common.html.