PCPRB6: PITCON test problem Freudenstein-Roth function Number of equations is 2 Number of variables is 3 This test demonstrates the use of IWORK(1) and RWORK(18) to approximate the jacobian, compare the user jacobian to an approximation, choose forward or centered differences, choose the size of the difference increment, print user, approximate jacobian or difference, print full matrix, or maximum entry. Run 1: standard run for comparison. Don't call jacobian checker. Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7105 -1.94205 0.653814E-01 TRYSTP - DEBUG - about to return. 3 Continuation 14.2846 -1.72915 0.268744 4 Limit point 14.2831 -1.74138 0.258578 TRYSTP - DEBUG - about to return. 5 Continuation 16.9061 -1.20942 0.546844 Run 2: run with bad jacobian. Call jacobian checker at third step. Use check value IWORK(1)=-1. Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7081 -1.94152 0.659666E-01 Turning on jacobian check option! DGE_SLV - Maximum value of FP_Approx(I,J)-FP_User(I,J) -0.50173223232737829 I, J = 2*2 3 Jacobian 14.7081 -1.94152 0.659666E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.4025 -1.84835 0.161890 TRYSTP - DEBUG - about to return. 5 Continuation 14.2910 -1.76904 0.234917 Run 3: run with bad jacobian. Call jacobian checker at third step. Use check value iwork(1)=-2. Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7081 -1.94152 0.659666E-01 Turning on jacobian check option! DGE_SLV - Maximum value of FP_Approx(I,J)-FP_User(I,J) -0.49999987107303934 I, J = 2*2 3 Jacobian 14.7081 -1.94152 0.659666E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.4025 -1.84835 0.161890 TRYSTP - DEBUG - about to return. 5 Continuation 14.2910 -1.76904 0.234917 Run 4: run with bad jacobian. Call jacobian checker at third step. Use check value iwork(1)=-3. Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7081 -1.94152 0.659666E-01 Turning on jacobian check option! DGE_SLV - Maximum value of FP_Approx(I,J)-FP_User(I,J) -0.50173223232737829 I, J = 2*2 DGE_SLV - Entire difference matrix: FP_Approx(I,J)-FP_User(I,J) -0.12499999999800182 i, j = 2*1 -0.24611333601679775 i, j = 1, 2 1.62003743753302842E-11 i, j = 1, 3 1.99817939972035674E-12 i, j = 2, 1 -0.50173223232737829 i, j = 2*2 2.35544916904473212E-12 i, j = 2, 3 0.E+0 i, j = 3, 1 0.E+0 i, j = 3, 2 0.E+0 i, j = 2*3 3 Jacobian 14.7081 -1.94152 0.659666E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.4025 -1.84835 0.161890 TRYSTP - DEBUG - about to return. 5 Continuation 14.2910 -1.76904 0.234917 Run 5: run with bad jacobian. Call jacobian checker at third step. Use check value iwork(1)=-4. Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7081 -1.94152 0.659666E-01 Turning on jacobian check option! DGE_SLV - Maximum value of FP_Approx(I,J)-FP_User(I,J) -0.49999987107303934 I, J = 2*2 DGE_SLV - Entire difference matrix: FP_Approx(I,J)-FP_User(I,J) -0.12499999999985478 i, j = 2*1 -0.25000012892883916 i, j = 1, 2 2.54374299402115867E-12 i, j = 1, 3 1.45217171620970475E-13 i, j = 2, 1 -0.49999987107303934 i, j = 2*2 2.35544916904473212E-12 i, j = 2, 3 0.E+0 i, j = 3, 1 0.E+0 i, j = 3, 2 0.E+0 i, j = 2*3 3 Jacobian 14.7081 -1.94152 0.659666E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.4025 -1.84835 0.161890 TRYSTP - DEBUG - about to return. 5 Continuation 14.2910 -1.76904 0.234917 Run 6: run with good jacobian. Call jacobian checker at third step. Use check value iwork(1)=-4. Use default value of rwork(18) Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7105 -1.94205 0.653814E-01 Turning on jacobian check option! DGE_SLV - Maximum value of FP_Approx(I,J)-FP_User(I,J) 1.28985193192932002E-7 I, J = 2*2 DGE_SLV - Entire difference matrix: FP_Approx(I,J)-FP_User(I,J) 1.33271171876003791E-12 i, j = 2*1 -1.28977831082011107E-7 i, j = 1, 2 2.48689957516035065E-13 i, j = 1, 3 1.33271171876003791E-12 i, j = 2, 1 1.28985193192932002E-7 i, j = 2*2 4.09094980113877682E-12 i, j = 2, 3 0.E+0 i, j = 3, 1 0.E+0 i, j = 3, 2 0.E+0 i, j = 2*3 3 Jacobian 14.7105 -1.94205 0.653814E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.2846 -1.72915 0.268744 5 Limit point 14.2831 -1.74138 0.258578 Run 7: run with good jacobian. Call jacobian checker at third step. Use check value iwork(1)=-4. Use finite difference increment rwork(18)=0.1 Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7105 -1.94205 0.653814E-01 Turning on jacobian check option! DGE_SLV - Maximum value of FP_Approx(I,J)-FP_User(I,J) -8.65568212516407698E-2 I, J = 1, 2 DGE_SLV - Entire difference matrix: FP_Approx(I,J)-FP_User(I,J) -5.5511151231257827E-16 i, j = 2*1 -8.65568212516407698E-2 i, j = 1, 2 -2.13162820728030056E-14 i, j = 1, 3 -5.5511151231257827E-16 i, j = 2, 1 8.6556821251631888E-2 i, j = 2*2 1.77635683940025046E-15 i, j = 2, 3 0.E+0 i, j = 3, 1 0.E+0 i, j = 3, 2 0.E+0 i, j = 2*3 3 Jacobian 14.7105 -1.94205 0.653814E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.2846 -1.72915 0.268744 5 Limit point 14.2831 -1.74138 0.258578 Run 8: run with good jacobian. Call jacobian checker at third step. Use check value iwork(1)=-4. Use finite difference increment rwork(18)=0.01 Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7105 -1.94205 0.653814E-01 Turning on jacobian check option! DGE_SLV - Maximum value of FP_Approx(I,J)-FP_User(I,J) 8.65568147997208825E-4 I, J = 2*2 DGE_SLV - Entire difference matrix: FP_Approx(I,J)-FP_User(I,J) 4.66293670342565747E-15 i, j = 2*1 -8.65568147986550684E-4 i, j = 1, 2 -7.10542735760100186E-14 i, j = 1, 3 4.66293670342565747E-15 i, j = 2, 1 8.65568147997208825E-4 i, j = 2*2 -2.48689957516035065E-14 i, j = 2, 3 0.E+0 i, j = 3, 1 0.E+0 i, j = 3, 2 0.E+0 i, j = 2*3 3 Jacobian 14.7105 -1.94205 0.653814E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.2846 -1.72915 0.268744 5 Limit point 14.2831 -1.74138 0.258578 Run 9: run with good jacobian. Call jacobian checker at third step. Use check value iwork(1)=-4. Finite difference increment rwork(18)=0.0001 Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7105 -1.94205 0.653814E-01 Turning on jacobian check option! DGE_SLV - Maximum value of FP_Approx(I,J)-FP_User(I,J) -8.6559467149527336E-8 I, J = 1, 2 DGE_SLV - Entire difference matrix: FP_Approx(I,J)-FP_User(I,J) 2.5468516184901091E-13 i, j = 2*1 -8.6559467149527336E-8 i, j = 1, 2 8.27782287160516717E-12 i, j = 1, 3 2.5468516184901091E-13 i, j = 2, 1 8.65531575300337863E-8 i, j = 2*2 3.90620868984115077E-12 i, j = 2, 3 0.E+0 i, j = 3, 1 0.E+0 i, j = 3, 2 0.E+0 i, j = 2*3 3 Jacobian 14.7105 -1.94205 0.653814E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.2846 -1.72915 0.268744 5 Limit point 14.2831 -1.74138 0.258578 Run 10: run with good jacobian. Call jacobian checker at third step. Use check value iwork(1)=-5. Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7105 -1.94205 0.653814E-01 Turning on jacobian check option! DGE_SLV - Maximum value of finite difference jacobian: 34.000000000000249 I, J = 1, 3 3 Jacobian 14.7105 -1.94205 0.653814E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.2846 -1.72915 0.268744 5 Limit point 14.2831 -1.74138 0.258578 Run 11: run with good jacobian. Call jacobian checker at third step. Use check value iwork(1)=-6. Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7105 -1.94205 0.653814E-01 Turning on jacobian check option! DGE_SLV - Maximum value of finite difference jacobian: 34.000000000000249 I, J = 1, 3 3 Jacobian 14.7105 -1.94205 0.653814E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.2846 -1.72915 0.268744 5 Limit point 14.2831 -1.74138 0.258578 Run 12: run with good jacobian. Call jacobian checker at third step. Use check value iwork(1)=-7. Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7105 -1.94205 0.653814E-01 Turning on jacobian check option! DGE_SLV - Maximum value of finite difference jacobian: 34.000000000000249 I, J = 1, 3 DGE_SLV - Finite difference jacobian: 1.0000000000031852 i, j = 2*1 -32.731373737499311 i, j = 1, 2 34.000000000000249 i, j = 1, 3 1.0000000000031852 i, j = 2, 1 -6.5711196993741599 i, j = 2*2 10.000000000004091 i, j = 2, 3 1. i, j = 3, 1 0.E+0 i, j = 3, 2 0.E+0 i, j = 2*3 3 Jacobian 14.7105 -1.94205 0.653814E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.2846 -1.72915 0.268744 5 Limit point 14.2831 -1.74138 0.258578 Run 13: run with good jacobian. Call jacobian checker at third step. Use check value iwork(1)=-8. Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7105 -1.94205 0.653814E-01 Turning on jacobian check option! DGE_SLV - Maximum value of finite difference jacobian: 34.000000000000249 I, J = 1, 3 DGE_SLV - Finite difference jacobian: 1.0000000000013327 i, j = 2*1 -32.735261817798573 i, j = 1, 2 34.000000000000249 i, j = 1, 3 1.0000000000013327 i, j = 2, 1 -6.5693864438229266 i, j = 2*2 10.000000000004091 i, j = 2, 3 1. i, j = 3, 1 0.E+0 i, j = 3, 2 0.E+0 i, j = 2*3 3 Jacobian 14.7105 -1.94205 0.653814E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.2846 -1.72915 0.268744 5 Limit point 14.2831 -1.74138 0.258578 Run 14: run with good jacobian. Call jacobian checker at third step. Use check value iwork(1)=-9. Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7105 -1.94205 0.653814E-01 Turning on jacobian check option! DGE_SLV - Maximum value of user supplied jacobian: 34. I, J = 1, 3 3 Jacobian 14.7105 -1.94205 0.653814E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.2846 -1.72915 0.268744 5 Limit point 14.2831 -1.74138 0.258578 Run 15: run with good jacobian. Call jacobian checker at third step. Use check value iwork(1)=-10. Step Type of point X(1) X(2) X(3) 0 Start point 15.0000 -2.00000 0.00000 1 Corrected 15.0000 -2.00000 0.00000 TRYSTP - DEBUG - about to return. 2 Continuation 14.7105 -1.94205 0.653814E-01 Turning on jacobian check option! DGE_SLV - Maximum value of user supplied jacobian: 34. I, J = 1, 3 DGE_SLV - User supplied jacobian: 1. i, j = 2*1 -32.735261688820742 i, j = 1, 2 34. i, j = 1, 3 1. i, j = 2, 1 -6.5693865728081198 i, j = 2*2 10. i, j = 2, 3 1. i, j = 3, 1 0.E+0 i, j = 3, 2 0.E+0 i, j = 2*3 3 Jacobian 14.7105 -1.94205 0.653814E-01 TRYSTP - DEBUG - about to return. 4 Continuation 14.2846 -1.72915 0.268744 5 Limit point 14.2831 -1.74138 0.258578 Normal conclusion of tests.