- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I am having problem when using a set functions and I do not know how to proceed to fix the errors. I have attached a bit of the code at the end of this post. My intention is to pass the arguments X to the function NU1, which in turn should call two other functions (M,PX) with the same arguments. The calculated value should thereafter be saved in the variable F1.
I get the following type of errors:
error #6579: A dummy argument of a statement function is invalid in this context. [XIN]
error #6073: The statement function arguments must not be array-valued. [NU1]
Any idea on how to resolve the errors is appreciated.
Thanks in advance!
PROGRAM KINET IMPLICIT REAL*8(A-H,O-Z) REAL P,R,RHOC,DCHAR, XC0, F1 REAL X(7), A(4), K(7), KP(4), KA(4), EA(4) ! Functions PX(XIN) = (XIN(1)+XIN(2)+XIN(3)+XIN(4)+XIN(5)+XIN(6)+XIN(7))* + 1.0/P M(XIN) = (K(2)+1.0/P)*XIN(2)+(K(3)+1.0/P)*XIN(3)+(K(4)+1.0/P)* + XIN(4)+(K(5)+1.0/P)*XIN(5)+(K(6)+1.0/P)*XIN(6)+ + (K(7)+1.0/P)*XIN(7) NU1(XIN) = -KA(1)*((XIN(5)-XIN(3)**2/(PX(XIN)*KP(1)))/M(XIN))* + (XC0/XIN(1))**(1.0/3.0)*XIN(1)/(RHOC*DCHAR) !--------------------------------------------------- P = 1 RHOC = 1300.00 DCHAR = 0.50E-3 EA(1)=77390.00 EA(2)=121620.00 EA(3)=19210.00 EA(4)=36150.00 A(1)= 3.616E1 A(2)= 1.517E4 A(3)= 4.189E-3 A(4)= 7.301E-2 K(1) = 0.0 K(2) = 7.59 K(3) = 2.6E-4 K(4) = 6.5E-5 K(5) = 1.98E-5 K(6) = 0.0 K(7) = 0.0 KP(1) = 205.4924 KP(2) = 162.2103 KP(3) = 0.1125828 KP(4) = 1440.815 KA(1) = 1.2956897E-02 KA(2) = 5.8338180E-02 KA(3) = 5.8452162E-04 KA(4) = 1.7940423E-03 X(1)= 0.427491 X(2)= 0.00 X(3)= 0.00 X(4)= 0.477754 X(5)= 0.365797 X(6)= 0.206712 X(7)= 0.29 XC0 = X(1) F1 = NU1(X) END PROGRAM KINET
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dummy arguments of statement functions must be scalar. Rewrite the statement functions as CONTAINED, EXTERNAL or MODULE procedures, or simply calculate the statement functions in-line, as in:
PROGRAM KINET c IMPLICIT REAL*8(A-H,O-Z) REAL P,R,RHOC,DCHAR, XC0, F1,M,NU1,PX REAL X(7), A(4), K(7), KP(4), KA(4), EA(4) ! Functions !--------------------------------------------------- P = 1 RHOC = 1300.00 DCHAR = 0.50E-3 EA(1)=77390.00 EA(2)=121620.00 EA(3)=19210.00 EA(4)=36150.00 A(1)= 3.616E1 A(2)= 1.517E4 A(3)= 4.189E-3 A(4)= 7.301E-2 K(1) = 0.0 K(2) = 7.59 K(3) = 2.6E-4 K(4) = 6.5E-5 K(5) = 1.98E-5 K(6) = 0.0 K(7) = 0.0 KP(1) = 205.4924 KP(2) = 162.2103 KP(3) = 0.1125828 KP(4) = 1440.815 KA(1) = 1.2956897E-02 KA(2) = 5.8338180E-02 KA(3) = 5.8452162E-04 KA(4) = 1.7940423E-03 X(1)= 0.427491 X(2)= 0.00 X(3)= 0.00 X(4)= 0.477754 X(5)= 0.365797 X(6)= 0.206712 X(7)= 0.29 XC0 = X(1) PX = (X(1)+X(2)+X(3)+X(4)+X(5)+X(6)+X(7))/P M = (K(2)+1.0/P)*X(2)+(K(3)+1.0/P)*X(3)+(K(4)+1.0/P)* + X(4)+(K(5)+1.0/P)*X(5)+(K(6)+1.0/P)*X(6)+ + (K(7)+1.0/P)*X(7) NU1 = -KA(1)*((X(5)-X(3)**2/(PX*KP(1)))/M)* + (XC0/X(1))**(1.0/3.0)*X(1)/(RHOC*DCHAR) F1 = NU1 write(*,*)F1 END PROGRAM KINET
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the help!

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page