C ALGORITHM 392, COLLECTED ALGORITHMS FROM ACM. C THIS WORK PUBLISHED IN COMMUNICATIONS OF THE ACM C VOL. 13, NO. 9, September, 1970, PP.567--570. #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # Fortran/ # Fortran/Sp/ # Fortran/Sp/Drivers/ # Fortran/Sp/Drivers/Makefile # Fortran/Sp/Drivers/driver.f # Fortran/Sp/Drivers/res # Fortran/Sp/Src/ # Fortran/Sp/Src/src.f # This archive created: Wed Jan 18 20:30:11 2006 export PATH; PATH=/bin:$PATH if test ! -d 'Fortran' then mkdir 'Fortran' fi cd 'Fortran' if test ! -d 'Sp' then mkdir 'Sp' fi cd 'Sp' if test ! -d 'Drivers' then mkdir 'Drivers' fi cd 'Drivers' if test -f 'Makefile' then echo shar: will not over-write existing file "'Makefile'" else cat << "SHAR_EOF" > 'Makefile' all: Res src.o: src.f $(F77) $(F77OPTS) -c src.f driver.o: driver.f $(F77) $(F77OPTS) -c driver.f DRIVERS= driver RESULTS= Res Objs1= driver.o src.o driver: $(Objs1) $(F77) $(F77OPTS) -o driver $(Objs1) $(SRCLIBS) Res: driver ./driver >Res diffres:Res res echo "Differences in results from driver" $(DIFF) Res res clean: rm -rf *.o $(DRIVERS) $(CLEANUP) $(RESULTS) SHAR_EOF fi # end of overwriting check if test -f 'driver.f' then echo shar: will not over-write existing file "'driver.f'" else cat << "SHAR_EOF" > 'driver.f' program main c*********************************************************************** c cc TOMS392_PRB tests TOMS392. c c Modified: c c 11 January 2006 c c Author: c c John Burkardt c implicit none write ( *, '(a)' ) ' ' write ( *, '(a)' ) 'TOMS392_PRB' write ( *, '(a)' ) ' Test TOMS algorithm 392, which approximates' write ( *, '(a)' ) ' the time evolution of a system governed' write ( *, '(a)' ) ' by hyperpolic PDE''s.' call testch write ( *, '(a)' ) ' ' write ( *, '(a)' ) 'TOMS392_PRB' write ( *, '(a)' ) ' Normal end of execution.' write ( *, '(a)' ) ' ' stop end SUBROUTINE TESTCH IMPLICIT NONE REAL DATA(4,81) REAL FM INTEGER I INTEGER IFAIL INTEGER M INTEGER N N = 20 C C GENERATE INITIAL DATA. C M = 4 * N + 1 FM = 4.0E+00 * FLOAT ( N ) DO 100 I = 1, M DATA(1,I) = FLOAT ( I - 1 ) / FM DATA(2,I) = 0.0E+00 DATA(3,I) = 0.0E+00 DATA(4,I) = 2.0E+00 * EXP ( DATA(1,I) ) 100 CONTINUE IFAIL = 0 WRITE ( *, 900 ) 900 FORMAT ( " " ) WRITE ( *, '(A)' ) ' ' WRITE ( *, '(A)' ) & ' X Y U V' WRITE ( *, '(A)' ) ' ' 200 DO 250 I = 1, M WRITE ( *, 910 ) DATA(1,I), DATA(2,I), DATA(3,I), DATA(4,I) 250 CONTINUE 910 FORMAT ( 2X,G14.6,2X,G14.6,2X,G14.6,2X,G14.6 ) IF ( M .LE. 1 ) GO TO 300 IF ( IFAIL .NE. 0 ) GO TO 300 CALL CHARAC ( DATA, M, IFAIL ) WRITE ( *, 900 ) GO TO 200 300 CONTINUE WRITE ( *, 920 ) M, IFAIL 920 FORMAT ( 1X, "M =",I2," IFAIL =",I2 ) RETURN END SUBROUTINE CHCOEF ( COEFF, XYUV ) C C COMPUTES COEFFICIENTS A1, A2, A3, A4, H1, B1, B2, B3, B4, H2, C AND STORES THEM SEQUENTIALLY IN COEFF. C IMPLICIT NONE REAL COEFF(10) REAL XYUV(4) COEFF(1) = 1.0E+00 - XYUV(3)**2 COEFF(2) = -XYUV(3) * XYUV(4) COEFF(3) = -XYUV(3) * XYUV(4) COEFF(4) = 1.0E+00 - XYUV(4)**2 COEFF(5) = -4.0E+00 * XYUV(3) * EXP ( XYUV(1) )**2 COEFF(6) = 0.0E+00 COEFF(7) = 1.0E+00 COEFF(8) = -1.0E+00 COEFF(9) = 0.0E+00 COEFF(10) = 0.0E+00 RETURN END SHAR_EOF fi # end of overwriting check if test -f 'res' then echo shar: will not over-write existing file "'res'" else cat << "SHAR_EOF" > 'res' TOMS392_PRB Test TOMS algorithm 392, which approximates the time evolution of a system governed by hyperpolic PDE's. X Y U V 0.00000 0.00000 0.00000 2.00000 0.125000E-01 0.00000 0.00000 2.02516 0.250000E-01 0.00000 0.00000 2.05063 0.375000E-01 0.00000 0.00000 2.07642 0.500000E-01 0.00000 0.00000 2.10254 0.625000E-01 0.00000 0.00000 2.12899 0.750000E-01 0.00000 0.00000 2.15577 0.875000E-01 0.00000 0.00000 2.18288 0.100000 0.00000 0.00000 2.21034 0.112500 0.00000 0.00000 2.23814 0.125000 0.00000 0.00000 2.26630 0.137500 0.00000 0.00000 2.29480 0.150000 0.00000 0.00000 2.32367 0.162500 0.00000 0.00000 2.35290 0.175000 0.00000 0.00000 2.38249 0.187500 0.00000 0.00000 2.41246 0.200000 0.00000 0.00000 2.44281 0.212500 0.00000 0.00000 2.47353 0.225000 0.00000 0.00000 2.50465 0.237500 0.00000 0.00000 2.53615 0.250000 0.00000 0.00000 2.56805 0.262500 0.00000 0.00000 2.60035 0.275000 0.00000 0.00000 2.63306 0.287500 0.00000 0.00000 2.66618 0.300000 0.00000 0.00000 2.69972 0.312500 0.00000 0.00000 2.73368 0.325000 0.00000 0.00000 2.76806 0.337500 0.00000 0.00000 2.80288 0.350000 0.00000 0.00000 2.83814 0.362500 0.00000 0.00000 2.87383 0.375000 0.00000 0.00000 2.90998 0.387500 0.00000 0.00000 2.94659 0.400000 0.00000 0.00000 2.98365 0.412500 0.00000 0.00000 3.02118 0.425000 0.00000 0.00000 3.05918 0.437500 0.00000 0.00000 3.09766 0.450000 0.00000 0.00000 3.13662 0.462500 0.00000 0.00000 3.17608 0.475000 0.00000 0.00000 3.21603 0.487500 0.00000 0.00000 3.25648 0.500000 0.00000 0.00000 3.29744 0.512500 0.00000 0.00000 3.33892 0.525000 0.00000 0.00000 3.38092 0.537500 0.00000 0.00000 3.42344 0.550000 0.00000 0.00000 3.46651 0.562500 0.00000 0.00000 3.51011 0.575000 0.00000 0.00000 3.55426 0.587500 0.00000 0.00000 3.59897 0.600000 0.00000 0.00000 3.64424 0.612500 0.00000 0.00000 3.69008 0.625000 0.00000 0.00000 3.73649 0.637500 0.00000 0.00000 3.78349 0.650000 0.00000 0.00000 3.83108 0.662500 0.00000 0.00000 3.87927 0.675000 0.00000 0.00000 3.92807 0.687500 0.00000 0.00000 3.97747 0.700000 0.00000 0.00000 4.02751 0.712500 0.00000 0.00000 4.07817 0.725000 0.00000 0.00000 4.12946 0.737500 0.00000 0.00000 4.18140 0.750000 0.00000 0.00000 4.23400 0.762500 0.00000 0.00000 4.28726 0.775000 0.00000 0.00000 4.34118 0.787500 0.00000 0.00000 4.39579 0.800000 0.00000 0.00000 4.45108 0.812500 0.00000 0.00000 4.50707 0.825000 0.00000 0.00000 4.56376 0.837500 0.00000 0.00000 4.62117 0.850000 0.00000 0.00000 4.67929 0.862500 0.00000 0.00000 4.73815 0.875000 0.00000 0.00000 4.79775 0.887500 0.00000 0.00000 4.85810 0.900000 0.00000 0.00000 4.91921 0.912500 0.00000 0.00000 4.98108 0.925000 0.00000 0.00000 5.04374 0.937500 0.00000 0.00000 5.10718 0.950000 0.00000 0.00000 5.17142 0.962500 0.00000 0.00000 5.23647 0.975000 0.00000 0.00000 5.30233 0.987500 0.00000 0.00000 5.36903 1.00000 0.00000 0.00000 5.43656 0.267232E-01 0.447354E-01 0.918647E-01 2.05211 0.392533E-01 0.454718E-01 0.945513E-01 2.07792 0.517844E-01 0.462147E-01 0.973061E-01 2.10405 0.643164E-01 0.469640E-01 0.100132 2.13051 0.768495E-01 0.477202E-01 0.103024 2.15730 0.893836E-01 0.484832E-01 0.105991 2.18443 0.101919 0.492532E-01 0.109032 2.21190 0.114455 0.500303E-01 0.112146 2.23972 0.126992 0.508148E-01 0.115342 2.26788 0.139530 0.516067E-01 0.118617 2.29640 0.152070 0.524060E-01 0.121973 2.32528 0.164610 0.532133E-01 0.125411 2.35453 0.177152 0.540283E-01 0.128939 2.38414 0.189695 0.548514E-01 0.132553 2.41412 0.202239 0.556825E-01 0.136254 2.44448 0.214784 0.565223E-01 0.140055 2.47523 0.227331 0.573700E-01 0.143947 2.50636 0.239879 0.582267E-01 0.147941 2.53788 0.252428 0.590918E-01 0.152032 2.56980 0.264978 0.599660E-01 0.156225 2.60212 0.277530 0.608494E-01 0.160528 2.63484 0.290084 0.617413E-01 0.164934 2.66798 0.302638 0.626435E-01 0.169455 2.70154 0.315194 0.635547E-01 0.174089 2.73551 0.327752 0.644752E-01 0.178843 2.76992 0.340311 0.654056E-01 0.183714 2.80475 0.352872 0.663462E-01 0.188707 2.84003 0.365434 0.672970E-01 0.193820 2.87575 0.377999 0.682578E-01 0.199072 2.91192 0.390565 0.692290E-01 0.204453 2.94854 0.403132 0.702114E-01 0.209969 2.98563 0.415701 0.712031E-01 0.215629 3.02318 0.428272 0.722064E-01 0.221429 3.06120 0.440845 0.732213E-01 0.227369 3.09970 0.453420 0.742460E-01 0.233470 3.13869 0.465997 0.752832E-01 0.239721 3.17817 0.478575 0.763319E-01 0.246127 3.21814 0.491156 0.773919E-01 0.252695 3.25861 0.503739 0.784642E-01 0.259431 3.29960 0.516324 0.795477E-01 0.266343 3.34110 0.528911 0.806445E-01 0.273424 3.38312 0.541501 0.817532E-01 0.280688 3.42567 0.554093 0.828739E-01 0.288133 3.46876 0.566687 0.840076E-01 0.295771 3.51239 0.579283 0.851540E-01 0.303595 3.55657 0.591883 0.863141E-01 0.311626 3.60130 0.604484 0.874870E-01 0.319854 3.64660 0.617088 0.886730E-01 0.328292 3.69246 0.629695 0.898727E-01 0.336937 3.73890 0.642305 0.910874E-01 0.345814 3.78593 0.654917 0.923158E-01 0.354902 3.83355 0.667533 0.935569E-01 0.364232 3.88176 0.680151 0.948134E-01 0.373801 3.93059 0.692771 0.960837E-01 0.383604 3.98003 0.705396 0.973706E-01 0.393665 4.03008 0.718024 0.986700E-01 0.403970 4.08077 0.730654 0.999868E-01 0.414537 4.13210 0.743288 0.101316 0.425376 4.18407 0.755926 0.102665 0.436494 4.23670 0.768567 0.104025 0.447892 4.28999 0.781212 0.105405 0.459578 4.34394 0.793860 0.106797 0.471559 4.39858 0.806512 0.108209 0.483852 4.45390 0.819168 0.109635 0.496451 4.50992 0.831828 0.111080 0.509378 4.56665 0.844492 0.112541 0.522628 4.62409 0.857159 0.114018 0.536214 4.68225 0.869832 0.115516 0.550140 4.74114 0.882509 0.117027 0.564422 4.80077 0.895190 0.118559 0.579071 4.86115 0.907876 0.120109 0.594096 4.92229 0.920566 0.121677 0.609491 4.98421 0.933261 0.123264 0.625285 5.04689 0.945962 0.124867 0.641491 5.11037 0.958667 0.126491 0.658103 5.17465 0.971377 0.128136 0.675135 5.23973 0.984093 0.129797 0.692588 5.30563 0.571212E-01 0.922916E-01 0.195155 2.10855 0.697491E-01 0.937855E-01 0.200826 2.13505 0.823809E-01 0.952923E-01 0.206637 2.16188 0.950168E-01 0.968128E-01 0.212593 2.18905 0.107657 0.983471E-01 0.218700 2.21656 0.120301 0.998955E-01 0.224956 2.24442 0.132949 0.101458 0.231372 2.27263 0.145602 0.103036 0.237948 2.30120 0.158259 0.104628 0.244691 2.33012 0.170921 0.106235 0.251602 2.35941 0.183587 0.107857 0.258683 2.38907 0.196258 0.109496 0.265947 2.41910 0.208933 0.111150 0.273392 2.44951 0.221614 0.112822 0.281028 2.48030 0.234299 0.114509 0.288851 2.51148 0.246990 0.116213 0.296870 2.54306 0.259685 0.117934 0.305101 2.57503 0.272387 0.119673 0.313534 2.60740 0.285093 0.121429 0.322182 2.64018 0.297805 0.123204 0.331043 2.67337 0.310523 0.124996 0.340136 2.70698 0.323247 0.126807 0.349455 2.74102 0.335976 0.128638 0.359019 2.77548 0.348712 0.130486 0.368808 2.81037 0.361454 0.132355 0.378859 2.84571 0.374202 0.134243 0.389162 2.88149 0.386957 0.136151 0.399725 2.91772 0.399718 0.138079 0.410558 2.95440 0.412486 0.140028 0.421666 2.99155 0.425262 0.141998 0.433046 3.02917 0.438044 0.143989 0.444730 3.06726 0.450834 0.146000 0.456708 3.10583 0.463631 0.148035 0.468986 3.14488 0.476436 0.150091 0.481570 3.18442 0.489249 0.152169 0.494489 3.22446 0.502069 0.154270 0.507730 3.26501 0.514899 0.156395 0.521304 3.30607 0.527736 0.158542 0.535227 3.34764 0.540583 0.160714 0.549514 3.38973 0.553438 0.162908 0.564162 3.43236 0.566302 0.165127 0.579181 3.47552 0.579176 0.167370 0.594587 3.51922 0.592059 0.169638 0.610378 3.56348 0.604951 0.171932 0.626575 3.60829 0.617853 0.174249 0.643178 3.65367 0.630767 0.176596 0.660218 3.69961 0.643691 0.178967 0.677685 3.74614 0.656624 0.181364 0.695607 3.79324 0.669570 0.183789 0.713989 3.84095 0.682526 0.186239 0.732830 3.88925 0.695494 0.188719 0.752162 3.93816 0.708474 0.191224 0.771981 3.98768 0.721466 0.193760 0.792303 4.03783 0.734470 0.196323 0.813168 4.08861 0.747488 0.198916 0.834563 4.14003 0.760518 0.201535 0.856481 4.19209 0.773561 0.204188 0.878988 4.24481 0.786618 0.206868 0.902080 4.29819 0.799690 0.209581 0.925721 4.35225 0.812775 0.212320 0.950024 4.40698 0.825875 0.215092 0.974946 4.46240 0.838991 0.217898 1.00049 4.51852 0.852121 0.220731 1.02666 4.57534 0.865268 0.223599 1.05352 4.63289 0.878431 0.226500 1.08110 4.69115 0.891609 0.229429 1.10935 4.75014 0.904806 0.232396 1.13864 4.80988 0.918019 0.235395 1.16810 4.87037 0.931250 0.238426 1.19863 4.93161 0.944500 0.241497 1.23000 4.99363 0.957769 0.244597 1.26223 5.05643 0.971056 0.247733 1.29522 5.12003 0.984362 0.250907 1.32881 5.18441 0.915464E-01 0.142573 0.311426 2.16949 0.104351 0.144840 0.320419 2.19673 0.117164 0.147127 0.329639 2.22431 0.129987 0.149435 0.339094 2.25223 0.142819 0.151764 0.348787 2.28052 0.155660 0.154114 0.358720 2.30916 0.168511 0.156485 0.368900 2.33815 0.181373 0.158879 0.379349 2.36752 0.194245 0.161295 0.390054 2.39725 0.207127 0.163734 0.401039 2.42736 0.220019 0.166196 0.412291 2.45785 0.232922 0.168682 0.423828 2.48873 0.245837 0.171192 0.435671 2.51999 0.258763 0.173727 0.447802 2.55165 0.271700 0.176286 0.460249 2.58370 0.284649 0.178870 0.473006 2.61616 0.297611 0.181480 0.486095 2.64903 0.310584 0.184116 0.499515 2.68232 0.323571 0.186779 0.513285 2.71602 0.336570 0.189467 0.527378 2.75015 0.349582 0.192185 0.541861 2.78470 0.362608 0.194928 0.556707 2.81970 0.375647 0.197700 0.571928 2.85513 0.388701 0.200499 0.587541 2.89101 0.401769 0.203327 0.603551 2.92734 0.414852 0.206186 0.619967 2.96413 0.427949 0.209073 0.636814 3.00138 0.441063 0.211990 0.654092 3.03910 0.454192 0.214937 0.671806 3.07730 0.467337 0.217914 0.689972 3.11597 0.480499 0.220926 0.708618 3.15514 0.493677 0.223964 0.727733 3.19480 0.506874 0.227038 0.747334 3.23495 0.520087 0.230143 0.767448 3.27561 0.533320 0.233280 0.788085 3.31679 0.546570 0.236451 0.809250 3.35848 0.559840 0.239655 0.830956 3.40070 0.573130 0.242893 0.853233 3.44344 0.586439 0.246166 0.876094 3.48673 0.599768 0.249472 0.899519 3.53055 0.613118 0.252811 0.923548 3.57494 0.626491 0.256191 0.948220 3.61988 0.639884 0.259603 0.973505 3.66539 0.653299 0.263053 0.999467 3.71146 0.666739 0.266540 1.02609 3.75812 0.680201 0.270061 1.05345 3.80536 0.693688 0.273624 1.08162 3.85320 0.707199 0.277221 1.11017 3.90164 0.720735 0.280858 1.13976 3.95070 0.734297 0.284532 1.17006 4.00037 0.747887 0.288250 1.20118 4.05066 0.761501 0.291999 1.23293 4.10158 0.775146 0.295797 1.26569 4.15315 0.788818 0.299632 1.29933 4.20536 0.802517 0.303501 1.33357 4.25824 0.816246 0.307418 1.36890 4.31177 0.830008 0.311377 1.40523 4.36598 0.843798 0.315375 1.44243 4.42089 0.857620 0.319406 1.48042 4.47648 0.871478 0.323519 1.51976 4.53273 0.885367 0.327624 1.55993 4.58974 0.899289 0.331799 1.60115 4.64745 0.913257 0.336029 1.64390 4.70585 0.927239 0.340257 1.68690 4.76505 0.941272 0.344581 1.73165 4.82494 0.955339 0.348911 1.77740 4.88562 0.969451 0.353323 1.82457 4.94705 0.983596 0.357757 1.87288 5.00923 0.997772 0.362224 1.92207 5.07223 0.130359 0.195450 0.442499 2.23508 0.143429 0.198500 0.455223 2.26311 0.156514 0.201576 0.468267 2.29149 0.169617 0.204680 0.481655 2.32023 0.182737 0.207811 0.495370 2.34933 0.195875 0.210972 0.509444 2.37880 0.209030 0.214160 0.523868 2.40864 0.222203 0.217378 0.538664 2.43886 0.235395 0.220625 0.553845 2.46946 0.248606 0.223903 0.569408 2.50045 0.261837 0.227211 0.585370 2.53182 0.275086 0.230550 0.601734 2.56360 0.288357 0.233921 0.618531 2.59577 0.301647 0.237324 0.635751 2.62836 0.314959 0.240759 0.653426 2.66135 0.328292 0.244226 0.671528 2.69476 0.341647 0.247729 0.690121 2.72859 0.355025 0.251264 0.709189 2.76285 0.368426 0.254834 0.728748 2.79753 0.381850 0.258438 0.748808 2.83266 0.395298 0.262078 0.769392 2.86823 0.408770 0.265751 0.790502 2.90424 0.422267 0.269463 0.812162 2.94071 0.435791 0.273211 0.834393 2.97764 0.449340 0.276995 0.857189 3.01504 0.462915 0.280816 0.880567 3.05291 0.476519 0.284677 0.904584 3.09125 0.490150 0.288574 0.929191 3.13008 0.503810 0.292511 0.954452 3.16940 0.517499 0.296486 0.980365 3.20920 0.531219 0.300503 1.00697 3.24952 0.544969 0.304558 1.03429 3.29034 0.558750 0.308654 1.06223 3.33167 0.572564 0.312792 1.09096 3.37353 0.586413 0.316973 1.12050 3.41590 0.600289 0.321182 1.15072 3.45883 0.614203 0.325449 1.18187 3.50228 0.628153 0.329753 1.21373 3.54629 0.642137 0.334101 1.24640 3.59084 0.656157 0.338487 1.28001 3.63596 0.670219 0.342933 1.31450 3.68163 0.684315 0.347388 1.34981 3.72790 0.698457 0.351938 1.38632 3.77473 0.712628 0.356487 1.42333 3.82218 0.726849 0.361108 1.46169 3.87020 0.741109 0.365758 1.50096 3.91883 0.755415 0.370474 1.54133 3.96807 0.769756 0.375210 1.58256 4.01794 0.784152 0.380018 1.62511 4.06844 0.798594 0.384861 1.66882 4.11956 0.813071 0.389745 1.71335 4.17134 0.827603 0.394684 1.75930 4.22375 0.842189 0.399675 1.80659 4.27684 0.856821 0.404712 1.85508 4.33057 0.871498 0.409784 1.90463 4.38502 0.886236 0.414926 1.95580 4.44011 0.901029 0.420109 2.00831 4.49592 0.915871 0.425342 2.06212 4.55245 0.930789 0.430644 2.11787 4.60962 0.945732 0.435963 2.17431 4.66758 0.960744 0.441336 2.23266 4.72624 0.975825 0.446767 2.29260 4.78567 0.990972 0.452273 2.35444 4.84577 1.00617 0.457790 2.41766 4.90668 1.02142 0.463375 2.48235 4.96838 0.173925 0.250753 0.590539 2.30549 0.187358 0.254588 0.607483 2.33436 0.200817 0.258454 0.624853 2.36359 0.214303 0.262354 0.642678 2.39319 0.227817 0.266288 0.660963 2.42317 0.241358 0.270257 0.679713 2.45353 0.254927 0.274261 0.698953 2.48427 0.268525 0.278300 0.718681 2.51540 0.282154 0.282375 0.738930 2.54692 0.295812 0.286487 0.759705 2.57884 0.309502 0.290636 0.781023 2.61117 0.323220 0.294822 0.802868 2.64390 0.336973 0.299046 0.825312 2.67705 0.350759 0.303309 0.848321 2.71062 0.364577 0.307611 0.871950 2.74461 0.378430 0.311952 0.896185 2.77903 0.392318 0.316334 0.921049 2.81389 0.406241 0.320755 0.946562 2.84918 0.420200 0.325216 0.972756 2.88492 0.434197 0.329720 0.999643 2.92111 0.448232 0.334266 1.02723 2.95775 0.462305 0.338851 1.05555 2.99486 0.476419 0.343483 1.08444 3.03243 0.490572 0.348154 1.11438 3.07049 0.504768 0.352872 1.14505 3.10902 0.519005 0.357631 1.17645 3.14804 0.533285 0.362434 1.20854 3.18754 0.547612 0.367286 1.24182 3.22754 0.561980 0.372180 1.27570 3.26806 0.576397 0.377119 1.31057 3.30907 0.590864 0.382109 1.34641 3.35062 0.605373 0.387139 1.38318 3.39268 0.619935 0.392218 1.42101 3.43526 0.634549 0.397343 1.45978 3.47838 0.649209 0.402512 1.49953 3.52204 0.663922 0.407724 1.54040 3.56627 0.678695 0.412999 1.58237 3.61105 0.693520 0.418318 1.62548 3.65639 0.708406 0.423689 1.66987 3.70229 0.723334 0.429089 1.71506 3.74880 0.738336 0.434568 1.76189 3.79584 0.753389 0.440052 1.80979 3.84351 0.768515 0.445645 1.85916 3.89177 0.783684 0.451233 1.90952 3.94066 0.798934 0.456909 1.96159 3.99013 0.814247 0.462614 2.01504 4.04024 0.829612 0.468371 2.06962 4.09100 0.845050 0.474179 2.12590 4.14236 0.860573 0.480054 2.18389 4.19440 0.876155 0.485965 2.24336 4.24707 0.891802 0.491923 2.30425 4.30044 0.907534 0.497945 2.36710 4.35442 0.923344 0.504015 2.43165 4.40912 0.939223 0.510136 2.49790 4.46450 0.955212 0.516338 2.56650 4.52053 0.971223 0.522523 2.63601 4.57736 0.987345 0.528804 2.70803 4.63483 1.00356 0.535133 2.78201 4.69311 1.01987 0.541532 2.85832 4.75202 1.03625 0.547973 2.93668 4.81168 1.05269 0.554417 3.01655 4.87219 0.222609 0.308278 0.758140 2.38085 0.236512 0.312889 0.779874 2.41062 0.250453 0.317536 0.802173 2.44076 0.264434 0.322223 0.825056 2.47128 0.278454 0.326948 0.848536 2.50219 0.292516 0.331714 0.872630 2.53350 0.306619 0.336520 0.897375 2.56519 0.320762 0.341364 0.922735 2.59729 0.334951 0.346252 0.948797 2.62980 0.349183 0.351180 0.975528 2.66272 0.363460 0.356151 1.00297 2.69605 0.377782 0.361165 1.03105 2.72981 0.392151 0.366221 1.06001 2.76399 0.406568 0.371320 1.08972 2.79861 0.421033 0.376463 1.12016 2.83366 0.435533 0.381634 1.15040 2.86917 0.450115 0.386901 1.18363 2.90509 0.464732 0.392166 1.21658 2.94149 0.479400 0.397495 1.25027 2.97835 0.494126 0.402857 1.28514 3.01568 0.508907 0.408267 1.32087 3.05346 0.523743 0.413734 1.35753 3.09173 0.538631 0.419234 1.39498 3.13049 0.553589 0.424798 1.43382 3.16972 0.568596 0.430391 1.47338 3.20947 0.583670 0.436050 1.51414 3.24970 0.598809 0.441749 1.55605 3.29045 0.614005 0.447496 1.59906 3.33169 0.629272 0.453297 1.64332 3.37346 0.644605 0.459143 1.68870 3.41577 0.659999 0.465033 1.73524 3.45861 0.675467 0.470978 1.78319 3.50198 0.691008 0.476973 1.83239 3.54591 0.706620 0.483016 1.88296 3.59038 0.722312 0.489115 1.93507 3.63538 0.738055 0.495236 1.98815 3.68102 0.753898 0.501444 2.04314 3.72718 0.769818 0.507689 2.09958 3.77394 0.785816 0.513990 2.15757 3.82127 0.801880 0.520317 2.21693 3.86923 0.818050 0.526734 2.27830 3.91775 0.834294 0.533156 2.34125 3.96691 0.850614 0.539659 2.40571 4.01671 0.867025 0.546194 2.47213 4.06711 0.883549 0.552807 2.54067 4.11813 0.900146 0.559443 2.61096 4.16979 0.916830 0.566137 2.68305 4.22214 0.933623 0.572889 2.75747 4.27509 0.950519 0.579691 2.83394 4.32877 0.967501 0.586536 2.91250 4.38309 0.984631 0.593478 2.99395 4.43804 1.00178 0.600377 3.07655 4.49380 1.01907 0.607375 3.16216 4.55016 1.03649 0.614427 3.25026 4.60730 1.05402 0.621541 3.34106 4.66510 1.07165 0.628684 3.43444 4.72361 1.08936 0.635848 3.52983 4.78298 0.276772 0.367781 0.948374 2.46132 0.291259 0.373149 0.975599 2.49204 0.305800 0.378558 1.00356 2.52315 0.320391 0.384006 1.03224 2.55464 0.335039 0.389500 1.06168 2.58654 0.349744 0.395040 1.09199 2.61885 0.364505 0.400621 1.12310 2.65157 0.379321 0.406242 1.15478 2.68471 0.394200 0.411915 1.18759 2.71825 0.409138 0.417627 1.22124 2.75222 0.424135 0.423387 1.25573 2.78663 0.439164 0.429158 1.29008 2.82152 0.454326 0.435070 1.32772 2.85673 0.469516 0.440931 1.36504 2.89249 0.484769 0.446905 1.40335 2.92865 0.500096 0.452879 1.44292 2.96527 0.515496 0.458932 1.48355 3.00238 0.530960 0.465011 1.52517 3.03995 0.546489 0.471142 1.56778 3.07800 0.562108 0.477328 1.61193 3.11651 0.577785 0.483537 1.65694 3.15553 0.593548 0.489829 1.70336 3.19503 0.609392 0.496152 1.75109 3.23502 0.625308 0.502528 1.80011 3.27552 0.641311 0.508950 1.85056 3.31652 0.657398 0.515433 1.90235 3.35806 0.673559 0.521943 1.95549 3.40011 0.689813 0.528517 2.01025 3.44268 0.706157 0.535139 2.06648 3.48580 0.722589 0.541809 2.12431 3.52946 0.739123 0.548539 2.18392 3.57366 0.755719 0.555286 2.24475 3.61846 0.772436 0.562112 2.30772 3.66376 0.789249 0.568976 2.37242 3.70966 0.806156 0.575891 2.43893 3.75611 0.823144 0.582831 2.50708 3.80320 0.840266 0.589864 2.57752 3.85085 0.857491 0.596928 2.65001 3.89909 0.874784 0.604012 2.72408 3.94799 0.892203 0.611162 2.80054 3.99746 0.909762 0.618388 2.87955 4.04754 0.927400 0.625607 2.96050 4.09826 0.945156 0.632912 3.04376 4.14964 0.963041 0.640259 3.12967 4.20165 0.981051 0.647652 3.21808 4.25432 0.999159 0.655072 3.30890 4.30764 1.01746 0.662607 3.40322 4.36157 1.03578 0.670077 3.49894 4.41632 1.05427 0.677649 3.59822 4.47166 1.07291 0.685264 3.70047 4.52775 1.09170 0.692950 3.80602 4.58450 1.11060 0.700643 3.91458 4.64193 1.12958 0.708342 4.02561 4.70020 0.336768 0.428978 1.16494 2.54703 0.351960 0.435075 1.19859 2.57875 0.367219 0.441211 1.23311 2.61088 0.382542 0.447386 1.26832 2.64343 0.397944 0.453617 1.30476 2.67637 0.413418 0.459887 1.34215 2.70975 0.428964 0.466205 1.38050 2.74355 0.444534 0.472514 1.41877 2.77783 0.460292 0.479002 1.46057 2.81239 0.476070 0.485419 1.50214 2.84752 0.491921 0.491946 1.54479 2.88304 0.507868 0.498481 1.58888 2.91903 0.523901 0.505096 1.63418 2.95546 0.540003 0.511703 1.68053 2.99238 0.556194 0.518414 1.72816 3.02975 0.572488 0.525141 1.77741 3.06757 0.588855 0.531920 1.82771 3.10591 0.605320 0.538751 1.87956 3.14472 0.621885 0.545632 1.93293 3.18401 0.638536 0.552550 1.98774 3.22379 0.655287 0.559511 2.04417 3.26407 0.672144 0.566543 2.10218 3.30488 0.689085 0.573592 2.16171 3.34618 0.706140 0.580708 2.22310 3.38800 0.723298 0.587861 2.28615 3.43037 0.740567 0.595077 2.35108 3.47326 0.757953 0.602334 2.41800 3.51667 0.775411 0.609608 2.48637 3.56068 0.793016 0.616964 2.55718 3.60519 0.810737 0.624356 2.63000 3.65028 0.828568 0.631797 2.70490 3.69593 0.846493 0.639254 2.78172 3.74217 0.864572 0.646792 2.86112 3.78898 0.882776 0.654363 2.94292 3.83637 0.901055 0.661941 3.02655 3.88439 0.919487 0.669586 3.11296 3.93300 0.938085 0.677308 3.20228 3.98221 0.956790 0.685043 3.29405 4.03203 0.975603 0.692803 3.38824 4.08252 0.994588 0.700636 3.48570 4.13358 1.01372 0.708505 3.58604 4.18533 1.03295 0.716370 3.68909 4.23771 1.05242 0.724384 3.79636 4.29067 1.07191 0.732305 3.90530 4.34448 1.09159 0.740315 4.01833 4.39881 1.11145 0.748359 4.13484 4.45392 1.13148 0.756478 4.25530 4.50962 1.15165 0.764594 4.37927 4.56604 1.17191 0.772709 4.50627 4.62331 0.402940 0.491554 1.41237 2.63811 0.418954 0.498329 1.45332 2.67091 0.435051 0.505149 1.49535 2.70413 0.451169 0.511949 1.53737 2.73783 0.467525 0.518951 1.58314 2.77179 0.483896 0.525871 1.62875 2.80632 0.500350 0.532894 1.67557 2.84124 0.516917 0.539924 1.72397 2.87661 0.533587 0.547039 1.77376 2.91242 0.550334 0.554136 1.82471 2.94870 0.567186 0.561336 1.87709 2.98544 0.584160 0.568559 1.93127 3.02263 0.601218 0.575827 1.98669 3.06030 0.618379 0.583114 2.04369 3.09846 0.635675 0.590504 2.10260 3.13707 0.653057 0.597886 2.16299 3.17617 0.670568 0.605343 2.22528 3.21579 0.688190 0.612837 2.28930 3.25589 0.705915 0.620362 2.35507 3.29650 0.723769 0.627938 2.42288 3.33761 0.741737 0.635543 2.49257 3.37926 0.759841 0.643222 2.56445 3.42142 0.778074 0.650928 2.63853 3.46409 0.796392 0.658650 2.71428 3.50735 0.814876 0.666443 2.79274 3.55110 0.833504 0.674288 2.87357 3.59544 0.852247 0.682154 2.95667 3.64031 0.871102 0.690041 3.04203 3.68576 0.890134 0.698006 3.13030 3.73179 0.909310 0.705997 3.22131 3.77835 0.928573 0.713993 3.31446 3.82558 0.948008 0.722045 3.41076 3.87334 0.967627 0.730159 3.51031 3.92171 0.987373 0.738286 3.61275 3.97067 1.00723 0.746421 3.71792 4.02028 1.02730 0.754629 3.82681 4.07049 1.04752 0.762873 3.93908 4.12137 1.06788 0.771128 4.05463 4.17286 1.08849 0.779476 4.17469 4.22492 1.10912 0.787746 4.29697 4.27776 1.12999 0.796103 4.42392 4.33118 1.15102 0.804457 4.55474 4.38534 1.17228 0.812913 4.69032 4.44009 1.19368 0.821347 4.82994 4.49556 1.21518 0.829755 4.97311 4.55179 0.475616 0.555179 1.69615 2.73467 0.492575 0.562550 1.74566 2.76863 0.509625 0.570016 1.79645 2.80298 0.526808 0.577493 1.84900 2.83776 0.544109 0.585052 1.90308 2.87297 0.561496 0.592588 1.95845 2.90867 0.579003 0.600227 2.01541 2.94481 0.596647 0.607880 2.07433 2.98137 0.614389 0.615579 2.13466 3.01844 0.632244 0.623288 2.19674 3.05596 0.650256 0.631102 2.26091 3.09394 0.668366 0.638908 2.32675 3.13242 0.686622 0.646781 2.39472 3.17135 0.704989 0.654658 2.46448 3.21082 0.723497 0.662616 2.53641 3.25075 0.742130 0.670575 2.61044 3.29118 0.760912 0.678601 2.68671 3.33217 0.779828 0.686656 2.76530 3.37362 0.798903 0.694760 2.84642 3.41559 0.818061 0.702852 2.92938 3.45815 0.837407 0.711011 3.01535 3.50118 0.856922 0.719230 3.10402 3.54479 0.876558 0.727453 3.19521 3.58892 0.896325 0.735696 3.28897 3.63362 0.916285 0.744003 3.38597 3.67888 0.936417 0.752351 3.48612 3.72469 0.956634 0.760673 3.58863 3.77115 0.977046 0.769053 3.69473 3.81812 0.997668 0.777493 3.80449 3.86571 1.01843 0.785933 3.91756 3.91382 1.03932 0.794381 4.03372 3.96265 1.06044 0.802890 4.15410 4.01200 1.08172 0.811414 4.27824 4.06203 1.10316 0.819947 4.40614 4.11268 1.12488 0.828559 4.53912 4.16383 1.14661 0.837088 4.67469 4.21587 1.16862 0.845704 4.81566 4.26835 1.19082 0.854328 4.96122 4.32162 1.21324 0.862994 5.11180 4.37548 1.23584 0.871659 5.26731 4.42996 1.25854 0.880287 5.42692 4.48527 0.555101 0.619425 2.02279 2.83689 0.573113 0.627353 2.08242 2.87201 0.591259 0.635377 2.14377 2.90758 0.609560 0.643416 2.20726 2.94356 0.627971 0.651496 2.27233 2.98004 0.646507 0.659582 2.33931 3.01697 0.665219 0.667772 2.40858 3.05435 0.684037 0.675940 2.47968 3.09221 0.703020 0.684179 2.55314 3.13052 0.722124 0.692410 2.62856 3.16937 0.741384 0.700719 2.70638 3.20866 0.760788 0.709033 2.78653 3.24847 0.780351 0.717395 2.86915 3.28879 0.800051 0.725762 2.95421 3.32960 0.819955 0.734221 3.04232 3.37088 0.839924 0.742617 3.13227 3.41278 0.860126 0.751118 3.22574 3.45512 0.880490 0.759631 3.32202 3.49803 0.901006 0.768169 3.42125 3.54146 0.921651 0.776700 3.52325 3.58546 0.942508 0.785287 3.62883 3.63000 0.963564 0.793920 3.73798 3.67508 0.984703 0.802508 3.84977 3.72078 1.00606 0.811155 3.96556 3.76700 1.02764 0.819844 4.08538 3.81384 1.04940 0.828547 4.20906 3.86116 1.07127 0.837227 4.33610 3.90921 1.09340 0.845968 4.46787 3.95778 1.11572 0.854721 4.60394 4.00701 1.13819 0.863464 4.74421 4.05680 1.16098 0.872294 4.89021 4.10718 1.18378 0.881017 5.03922 4.15832 1.20687 0.889808 5.19412 4.20995 1.23018 0.898609 5.35433 4.26235 1.25371 0.907426 5.52007 4.31531 1.27745 0.916253 5.69156 4.36897 1.30130 0.925028 5.86778 4.42333 0.641646 0.683890 2.40025 2.94488 0.660841 0.692309 2.47195 2.98124 0.680229 0.700827 2.54613 3.01805 0.699733 0.709318 2.62234 3.05532 0.719421 0.717876 2.70110 3.09305 0.739238 0.726420 2.78202 3.13129 0.759230 0.735041 2.86557 3.16999 0.779373 0.743650 2.95163 3.20919 0.799693 0.752310 3.04045 3.24888 0.820160 0.760962 3.13190 3.28908 0.840852 0.769704 3.22671 3.32971 0.861617 0.778382 3.32360 3.37098 0.882632 0.787148 3.42430 3.41266 0.903805 0.795897 3.52796 3.45492 0.925180 0.804716 3.63518 3.49766 0.946661 0.813473 3.74519 3.54097 0.968407 0.822326 3.85941 3.58484 0.990334 0.831172 3.97731 3.62921 1.01237 0.839997 4.09836 3.67421 1.03463 0.848847 4.22366 3.71971 1.05714 0.857736 4.35347 3.76581 1.07984 0.866644 4.48760 3.81243 1.10266 0.875504 4.62544 3.85971 1.12575 0.884424 4.76854 3.90751 1.14904 0.893340 4.91638 3.95597 1.17253 0.902258 5.06910 4.00497 1.19633 0.911231 5.22798 4.05453 1.22015 0.920101 5.39039 4.10488 1.24428 0.929029 5.55937 4.15569 1.26864 0.937944 5.73421 4.20722 1.29325 0.946892 5.91543 4.25940 1.31808 0.955817 6.10302 4.31206 1.34300 0.964669 6.29576 4.36552 0.735556 0.748196 2.83906 3.05872 0.756058 0.757016 2.92529 3.09639 0.776751 0.765905 3.01438 3.13451 0.797605 0.774775 3.10620 3.17310 0.818653 0.783692 3.20101 3.21221 0.839857 0.792595 3.29870 3.25181 0.861308 0.801586 3.40005 3.29184 0.882830 0.810494 3.50366 3.33251 0.904625 0.819490 3.61143 3.37354 0.926589 0.828461 3.72241 3.41521 0.948772 0.837495 3.83731 3.45728 0.971070 0.846464 3.95531 3.49997 0.993648 0.855514 4.07788 3.54315 1.01640 0.864524 4.20430 3.58686 1.03931 0.873556 4.33455 3.63117 1.06242 0.882561 4.46917 3.67597 1.08584 0.891643 4.60904 3.72138 1.10942 0.900689 4.75335 3.76727 1.13316 0.909712 4.90200 3.81386 1.15716 0.918762 5.05629 3.86092 1.18139 0.927800 5.21580 3.90864 1.20582 0.936845 5.38082 3.95689 1.23059 0.945921 5.55252 4.00567 1.25537 0.954890 5.72826 4.05519 1.28048 0.963902 5.91116 4.10522 1.30586 0.972916 6.10083 4.15596 1.33147 0.981923 6.29731 4.20725 1.35734 0.990915 6.50100 4.25907 1.38330 0.999828 6.71059 4.31166 0.837012 0.811872 3.35120 3.17859 0.858921 0.820993 3.45495 3.21760 0.881094 0.830196 3.56262 3.25705 0.903338 0.839304 3.67277 3.29711 0.925880 0.848500 3.78742 3.33757 0.948596 0.857659 3.90555 3.37861 0.971553 0.866881 4.02796 3.42010 0.994625 0.876022 4.15372 3.46216 1.01800 0.885238 4.28445 3.50471 1.04155 0.894409 4.41937 3.54780 1.06528 0.903590 4.55850 3.59144 1.08922 0.912744 4.70242 3.63558 1.11348 0.921956 4.85203 3.68028 1.13788 0.931100 5.00626 3.72551 1.16251 0.940266 5.16570 3.77140 1.18737 0.949402 5.33090 3.81774 1.21251 0.958567 5.50226 3.86475 1.23783 0.967681 5.67926 3.91224 1.26353 0.976853 5.86385 3.96029 1.28922 0.985884 6.05271 4.00910 1.31525 0.994951 6.24951 4.05828 1.34158 1.00402 6.45385 4.10817 1.36815 1.01306 6.66556 4.15864 1.39498 1.02208 6.88528 4.20959 1.42192 1.03101 7.11152 4.26128 0.946229 0.874505 3.95254 3.30454 0.969659 0.883825 4.07761 3.34500 0.993349 0.893204 4.20733 3.38589 1.01715 0.902487 4.34060 3.42734 1.04128 0.911849 4.47932 3.46928 1.06560 0.921152 4.62252 3.51176 1.09011 0.930465 4.77036 3.55481 1.11483 0.939734 4.92333 3.59831 1.13988 0.949055 5.08248 3.64236 1.16509 0.958300 5.24663 3.68695 1.19054 0.967554 5.41648 3.73213 1.21623 0.976782 5.59262 3.77780 1.24222 0.986017 5.77542 3.82409 1.26836 0.995172 5.96415 3.87084 1.29495 1.00443 6.16162 3.91815 1.32148 1.01348 6.36330 3.96621 1.34844 1.02262 6.57423 4.01458 1.37564 1.03169 6.79281 4.06369 1.40314 1.04077 7.01991 4.11331 1.43088 1.04980 7.25549 4.16346 1.45872 1.05872 7.49835 4.21414 1.06338 0.935668 4.66263 3.43675 1.08842 0.945080 4.81388 3.47861 1.11366 0.954498 4.97019 3.52103 1.13911 0.963858 5.13191 3.56391 1.16493 0.973274 5.30043 3.60732 1.19090 0.982599 5.47429 3.65126 1.21713 0.991936 5.65437 3.69584 1.24361 1.00123 5.84113 3.74087 1.27038 1.01052 6.03517 3.78644 1.29733 1.01972 6.23563 3.83256 1.32475 1.02901 6.44556 3.87904 1.35210 1.03810 6.66010 3.92639 1.37989 1.04726 6.88472 3.97390 1.40790 1.05632 7.11717 4.02222 1.43629 1.06543 7.35966 4.07101 1.46486 1.07442 7.61066 4.12022 1.49362 1.08337 7.87050 4.17007 1.18856 0.994924 5.50595 3.57510 1.21524 1.00431 5.68922 3.61836 1.24219 1.01370 5.87920 3.66229 1.26940 1.02304 6.07629 3.70668 1.29694 1.03238 6.28135 3.75157 1.32464 1.04162 6.49324 3.79696 1.35285 1.05095 6.71552 3.84277 1.38096 1.06005 6.94259 3.88939 1.40955 1.06922 7.18059 3.93610 1.43835 1.07829 7.42705 3.98368 1.46755 1.08738 7.68441 4.03149 1.49692 1.09636 7.95088 4.07982 1.52651 1.10528 8.22710 4.12859 1.32186 1.05190 6.51402 3.71937 1.35026 1.06116 6.73695 3.76406 1.37920 1.07050 6.97113 3.80905 1.40802 1.07961 7.21031 3.85496 1.43737 1.08879 7.46155 3.90088 1.46690 1.09784 7.72154 3.94758 1.49689 1.10694 7.99376 3.99457 1.52702 1.11590 8.27535 4.04194 1.55738 1.12478 8.56755 4.08967 1.46337 1.10625 7.72755 3.86815 1.49358 1.11527 8.00069 3.91396 1.52429 1.12436 8.28706 3.95995 1.55511 1.13327 8.58321 4.00633 1.58622 1.14214 8.89140 4.05292 1.61309 1.15759 9.19842 4.01828 M = 1 IFAIL = 0 TOMS392_PRB Normal end of execution. SHAR_EOF fi # end of overwriting check cd .. if test ! -d 'Src' then mkdir 'Src' fi cd 'Src' if test -f 'src.f' then echo shar: will not over-write existing file "'src.f'" else cat << "SHAR_EOF" > 'src.f' SUBROUTINE CHARAC ( RDATA, M, IFAIL ) C C THIS ROUTINE ADVANCES ONE GRID STEP THE SOLUTION OF THE SYSTEM C C A1 * U(X) + A2 * U(Y) + A3 * V(X) + A4 * V(Y) = H1 C B1 * U(X) + B2 * U(Y) + B3 * V(X) + B4 * V(Y) = H2 C C WHERE U(X) MEANS PARTIAL DERIVATIVE OF U WITH RESPECT TO X, AND C SO ON, AND A1 = A1(X,Y,U,V), AND SO ON. C C THE INITIAL DATA IS GIVEN IN THE MATRIX "DATA", EACH COLUMN OF C FOUR ELEMENTS CONTAINING A VALUE OF X, Y, U, V. C C M IS THE NUMBER OF DATA POINTS ON THE INITIAL CURVE. C IMPLICIT NONE INTEGER M REAL D0(4) REAL D1(4) REAL D2(4) REAL D3(4) REAL D4(4) REAL RDATA(4,M) REAL DX REAL DX1 REAL DX2 REAL DY INTEGER FAIL INTEGER FLAG INTEGER IFAIL INTEGER I INTEGER J REAL S1(4) REAL S2(4) REAL S3(4) REAL T1(4) REAL T2(4) REAL T3(4) REAL T4(4) REAL T5(4) REAL T6(4) REAL T7(4) REAL V1(8) REAL V2(8) REAL V3(8) REAL V4(8) REAL V5(8) REAL V6(8) REAL V7(8) REAL V8(8) REAL V9(8) REAL V10(8) COMMON / CHFAIL / FAIL, FLAG FAIL = 0 M = M - 4 IF ( M .LE. 0 ) RETURN DO 145 J = 1, 4 D1(J) = RDATA(J,1) D2(J) = RDATA(J,2) D3(J) = RDATA(J,3) D4(J) = RDATA(J,4) 145 CONTINUE CALL CHVAR ( D1, V2 ) IF ( IFAIL .NE. 0 ) GO TO 250 CALL CHVAR ( D2, V3 ) IF ( IFAIL .NE. 0 ) GO TO 250 CALL CHVAR ( D3, V4 ) IF ( IFAIL .NE. 0 ) GO TO 250 CALL CHVAR ( D4, V5 ) IF ( IFAIL .NE. 0 ) GO TO 250 FLAG = 0 DY = D2(2) - D1(2) DX = D2(1) - D1(1) IF ( DY ) 148, 149, 150 148 DY = -DY DX = -DX GO TO 150 149 DY = 1.0E+00 DX = 1.0E+30 150 DX1 = DY / V2(1) DX2 = DY / V2(2) IF ( DX1 .LT. DX .AND. DX2 .GE. DX ) GO TO 170 IF ( DX2 .LT. DX .AND. DX1 .GE. DX ) GO TO 175 IF ( DX2 .GE. DX1 ) GO TO 175 170 FLAG = 1 175 CONTINUE CALL CHSTEP ( D1, V2, D3, V4, T1 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHVAR ( T1, V6 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( D2, V3, D4, V5, T6 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHVAR ( T6, V10 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( D3, V4, D4, V5, T2 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHVAR ( T2, V7 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( D2, V3, D3, V4, T4 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHVAR ( T4, V9 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( T4, V9, T2, V7, T3 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHVAR ( T3, V8 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( D1, V2, D2, V3, T5 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHVAR ( T5, V1 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( T5, V1, T4, V9, T4 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHVAR ( T4, V1 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( T4, V1, T3, V8, T4 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHVAR ( T4, V9 ) IF ( FAIL .NE. 0 ) GO TO 250 DO 100 I = 1, M DO 200 J = 1, 8 V1(J) = V2(J) V2(J) = V3(J) V3(J) = V4(J) V4(J) = V5(J) 200 CONTINUE DO 201 J = 1, 4 D0(J) = D1(J) D1(J) = D2(J) D2(J) = D3(J) D3(J) = D4(J) D4(J) = RDATA(J,I+4) 201 CONTINUE CALL CHVAR ( D4, V5 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( D0, V1, D4, V5, S1 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( D2, V3, D4, V5, T5 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHVAR ( T5, V1 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( T1, V6, T5, V1, S2 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( D3, V4, D4, V5, T1 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHVAR ( T1, V6 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( T2, V7, T1, V6, T7 ) IF ( FAIL .NE. 0 ) GO TO 250 DO 210 J = 1, 4 T2(J) = T1(J) V7(J) = V6(J) V7(J+4) = V6(J+4) T1(J) = T6(J) V6(J) = V10(J) V6(J+4) = V10(J+4) T6(J) = T5(J) V10(J) = V1(J) V10(J+4) = V1(J+4) 210 CONTINUE CALL CHVAR ( T7, V1 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( T3, V8, T7, V1, T5 ) IF ( FAIL .NE. 0 ) GO TO 250 DO 220 J = 1, 4 T3(J) = T7(J) V8(J) = V1(J) V8(J+4) = V1(J+4) 220 CONTINUE CALL CHVAR ( T5, V1 ) IF ( FAIL .NE. 0 ) GO TO 250 CALL CHSTEP ( T4, V9, T5, V1, S3 ) IF ( FAIL .NE. 0 ) GO TO 250 DO 230 J = 1, 4 T4(J) = T5(J) V9(J) = V1(J) V9(J+4) = V1(J+4) 230 CONTINUE C C EXTRAPOLATE THE THREE SUCCESSIVE APPROXIMATIONS. C DO 300 J = 1, 4 RDATA(J,I) = 0.3333333333E+00 & * ( 8.0E+00 * S3(J) - 6.0E+00 * S2(J) + S1(J) ) 300 CONTINUE 100 CONTINUE IFAIL = 0 RETURN C C ERROR EXIT. C 250 IFAIL = FAIL RETURN END SUBROUTINE CHVAR ( XYUV, VAR ) C C COMPUTES THE VALUES SIGMA1, SIGMA2, R1, R2, S1, S2, T1, T2, C STORED IN THE LIST VAR, FROM THE COEFFICIENT FUNCTIONS AND C THE VALUES X, Y, U, V IN THE LIST XYUV. C IMPLICIT NONE REAL A REAL B REAL C REAL D INTEGER I INTEGER FAIL INTEGER FLAG REAL T(10) REAL VAR(8) REAL XYUV(4) COMMON / CHFAIL / FAIL, FLAG CALL CHCOEF ( T, XYUV ) C C COEFFICIENTS OF SYSTEM ARE STORED IN THE LIST T. C A = T(1) * T(8) - T(3) * T(6) B = 0.5E+00 & * ( T(1) * T(9) - T(4) * T(6) - T(3) * T(7) + T(2) * T(8) ) C = T(2) * T(9) - T(4) * T(7) IF ( A .NE. 0.0E+00 ) GO TO 150 IF ( B .EQ. 0.0E+00 ) GO TO 500 VAR(1) = 1.0E+15 VAR(2) = 0.5E+00 * C / B IF ( B .GT. 0.0E+00 ) GO TO 400 VAR(1) = VAR(2) VAR(2) = 1.0E+15 GO TO 400 150 D = B * B - A * C IF ( D .LE. 0.0E+00 ) GO TO 500 D = SQRT ( D ) IF ( B .LT. 0.0E+00 ) GO TO 300 VAR(1) = ( B + D ) / A VAR(2) = C / ( A * VAR(1) ) GO TO 400 300 VAR(2) = ( B - D ) / A VAR(1) = C / ( A * VAR(2) ) 400 DO 100 I = 1, 2 T(4) = T(1) * VAR(I) - T(2) T(9) = T(6) * VAR(I) - T(7) VAR(I+2) = T(1) * T(9) - T(6) * T(4) VAR(I+4) = T(3) * T(9) - T(8) * T(4) VAR(I+6) = T(5) * T(9) - T(10) * T(4) 100 CONTINUE RETURN C C ERROR EXIT. C 500 FAIL = 1 RETURN END SUBROUTINE CHSTEP ( D1, V1, D2, V2, D3 ) C C THIS ROUTINE COMPUTES THE VALUES OF X3, Y3, U3, V3 AT THE POINT C DETERMINED BY THE INTERSECTION OF THE CHARACTERISTICS THROUGH (X1,Y1) C AND (X2,Y2). C IMPLICIT NONE REAL AA REAL BB REAL D1(4) REAL D2(4) REAL D3(4) REAL D31 REAL D32 REAL DEM1 REAL DEM2 REAL EPS INTEGER FAIL INTEGER FLAG REAL R1 REAL R2 REAL RHO REAL S1 REAL S2 REAL SIG REAL T1 REAL T2 REAL TA REAL TB REAL TC REAL TD REAL V1(8) REAL V2(8) COMMON / CHFAIL / FAIL, FLAG EPS = 1.0E-05 IF ( FLAG .NE. 0 ) GO TO 150 100 SIG = V1(2) R1 = V1(4) S1 = V1(6) T1 = V1(8) GO TO 180 150 SIG = V1(1) R1 = V1(3) S1 = V1(5) T1 = V1(7) 180 CONTINUE IF ( FLAG .NE. 0 ) GO TO 250 200 RHO = V2(1) R2 = V2(3) S2 = V2(5) T2 = V2(7) GO TO 280 250 RHO = V2(2) R2 = V2(4) S2 = V2(6) T2 = V2(8) 280 CONTINUE C C COMPUTE X3, Y3, U3, V3. C DEM1 = SIG - RHO IF ( ABS ( DEM1 ) .LT. EPS * ABS ( SIG ) ) GO TO 900 AA = D1(2) - SIG * D1(1) BB = D2(2) - RHO * D2(1) D32 = ( SIG * BB - RHO * AA ) / DEM1 D31 = ( BB - AA ) / DEM1 TA = T1 * ( D31 - D1(1) ) + R1 * D1(3) + S1 * D1(4) TB = T2 * ( D31 - D2(1) ) + R2 * D2(3) + S2 * D2(4) TC = R1 * S2 TD = R2 * S1 DEM2 = TC - TD TC = AMAX1 ( ABS ( TC ), ABS ( TD ) ) IF ( ABS ( DEM2 ) .LE. EPS * TC ) GO TO 900 D3(3) = ( TA * S2 - TB * S1 ) / DEM2 D3(4) = ( TB * R1 - TA * R2 ) / DEM2 D3(2) = D32 D3(1) = D31 RETURN 900 FAIL = 2 RETURN END SHAR_EOF fi # end of overwriting check cd .. cd .. cd .. # End of shell archive exit 0