terminat0r
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору akaGM Andrew10 Вчера покопался в этих сорцах пытаясь собрать это с gfortran, нашел пару тривиальных ошибок и неточностей 1 поменял размерность WRK в Код: SUBROUTINE OPTF0D(NR,N,X,FCN,XPLS,FPLS,GPLS,ITRMCD,A,WRK) DIMENSION A(NR,1),WRK(1,NR) | 2 ошибка при наборе в Код: SUBROUTINE XERRWV(MESSG,NMESSG,NERR,LEVEL,NI,I1,I2,NR,R1,R2) IF(IUNIT.EQ.0)THEN | 3 додал нормальную версию Код: DOUBLE PRECISION FUNCTION D1MACH (I) IMPLICIT NONE INTEGER :: I DOUBLE PRECISION :: B, X X = 1.0D0 B = RADIX(X) SELECT CASE (I) CASE (1) C the smallest positive magnitude. D1MACH = B**(MINEXPONENT(X)-1) CASE (2) C the largest magnitude. D1MACH = HUGE(X) CASE (3) C the smallest relative spacing. D1MACH = B**(-DIGITS(X)) CASE (4) C the largest relative spacing. D1MACH = B**(1-DIGITS(X)) CASE (5) D1MACH = LOG10(B) CASE DEFAULT WRITE (*, FMT = 9000) 9000 FORMAT ('1ERROR 1 IN D1MACH - I OUT OF BOUNDS') STOP END SELECT RETURN END | 4 инициализацию R в Код: SUBROUTINE DDNTP (H,K,N,NQ,T,TOUT,YH,Y) R = 0.0D0 | 5 тип T в Код: SUBROUTINE DQRLSS(A,LDA,M,N,KR,B,X,RSD,JPVT,QRAUX) DOUBLE PRECISION A(LDA,1),B(1),X(1),RSD(1),QRAUX(1),T | 6 инициализацию PHIP в Код: SUBROUTINE HOKSTD(NR,N,G,A,UDIAG,P,SX,RNWTLN,DLT,AMU, + DLTP,PHI,PHIP0,FSTIME,SC,NWTAKE,WRK0,EPSM,IPR PHIP=PHIP0 | 7 ну и там по мелочевке потеря точности, DBLE вместо FLOAT, константы -> doubleprecision gfortran все равно плюется, но намного меньше одним файлом http://rghost.net/54610041 только он все равно кажись blas хочет |