www.pudn.com > Fortran.zip > JMAXN0.FOR, change:1994-06-10,size:721b


 
 
	EXTERNAL FS 
	DIMENSION X(2) 
	DOUBLE PRECISION X,Z 
	DATA X/2*0.0/ 
	EPS=0.000001 
	CALL JMAXN(X,2,FS,EPS,Z,K,L) 
	WRITE(*,*) 
	WRITE(*,60) L 
	DO 10 I=1,2 
10	WRITE(*,20) I,X(I) 
20	FORMAT(1X,'X(',I2,' )=',D13.6) 
	WRITE(*,*) 
	IF (K.EQ.1) THEN 
	  WRITE(*,30) Z 
	ELSE IF (K.EQ.(-1)) THEN 
	  WRITE(*,40) Z 
	ELSE 
	  WRITE(*,50) Z 
	END IF 
30	FORMAT(1X,'MAX:',5X,'Z=',D13.6) 
40	FORMAT(1X,'MIN:',5X,'Z=',D13.6) 
50	FORMAT(1X,'NOT',5X,'Z=',D13.6) 
60	FORMAT(1X,'L=',I3) 
	END 
 
	SUBROUTINE FS(X,N,J,F) 
	DIMENSION X(N) 
	DOUBLE PRECISION X,F 
	F=(X(1)-1.0)*(X(1)-1.0)+(X(2)+2.0)*(X(2)+2.0)+2.0 
	IF (J.EQ.0) RETURN 
	IF (J.EQ.1) THEN 
	  F=2.0*(X(1)-1.0) 
	ELSE 
	  F=2.0*(X(2)+2.0) 
	END IF 
	RETURN 
	END