Программа MAIN OPTIMIZ.
F90. Метод деформируемого многогранника
NAMELIST/LST/ nwK, rKatvn, tWKr, tWKz, tlzwwr, shrzbK, udSoprK, sO &, hDisk, rDvn, tDr, shrzbD, udSoprD, YdPID, Amas, roProv, DiamPr, TizPr, DlProv & ^^tkon^cO^em^LTiristo^RTiristo^xkon^nlntervX^FmO^^xl^m^zZ &., kratnPrt, poligrf, meth, miter, iatype, ZNIZ, ZVRX, OPTPAR, kDopViz EXTERNAL CALLJDM. Mdir=SYSTEMQQ ('MKDIR '//path) !Созд.папки с именем и путём, помещёнными в path IF (.NOT.mdir) THEN… Читать ещё >
Программа MAIN OPTIMIZ. F90. Метод деформируемого многогранника (реферат, курсовая, диплом, контрольная)
PROGRAM MAIN_OPTIMIZ.
use MSIMSL; use DESCRIBE; USE IFPORT; USE MSFLIB IMPLICIT NONE.
integer: nrzm=7, maxfcn, npar integer (2): iy, imes, id, ih, imin, is, iss.
real (8): AR (7), DTX (7), ZNIZ (7), ZVRX (7), fvalue, ftol=5d-8, OPTXAR (7).
NAMELIST/LST/ nwK, rKatvn, tWKr, tWKz, tlzwwr, shrzbK, udSoprK, sO &, hDisk, rDvn, tDr, shrzbD, udSoprD, YdPID, Amas, roProv, DiamPr, TizPr, DlProv & ^^tkon^cO^em^LTiristo^RTiristo^xkon^nlntervX^FmO^^xl^m^zZ &., kratnPrt, poligrf, meth, miter, iatype, ZNIZ, ZVRX, OPTPAR, kDopViz EXTERNAL CALLJDM.
i=GETDRIVEDIRQQ (path) !B path помещаю путь, в котором создан данный проект 10 CALL GETDAT (iy, imes, id); CALL GETTIM (ih, imin, is, iss) !Системн. дата, время! Перевод цифр в симв. вид для создан. папки, в кот. помещаются рез-ты счёта: write (chr,'(i4)')iy;
i2=LEN_TRIM (path); path (i2+l:i2+6)='7/chr (l:4)//,_' write (chr,'(i2)')imes;
if (chr (l:l)==' ,)chr (l:l)='0>; path (i2+7:i2+10)=chr (l:2)//'_' write (chr,'(i2)')id;
if (chr (l:l)==' ,)chr (l:l)='0'; path (i2+10:i2+12)=chr (l:2)//'J write (chr,'(i2)')ih;
if (chr (l:l)==' ,)chr (l:l)='0l; path (i2+13:i2+15)=chr (l:2)//'h' write (chr,'(i2)')IMIN;
if (chr (l:l)==' ')chr (l:l)='0'; path (i2+16:i2+18)=chr (l:2)//'m' write (chr,'(i2)')is;
if (chr (l:l)==' ,)chr (l:l)='Ol; path (i2+19:i2+21)=chr (l:2)//'s'.
mdir=SYSTEMQQ ('MKDIR '//path) !Созд.папки с именем и путём, помещёнными в path IF (.NOT.mdir) THEN; PAUSE 'In MAIN SYSTEMQQQ IS ERROR'; STOP; ENDIF LenPath=LEN_TRIM (path).
OPEN (8,file=path (l:LenPath)//'main.ch') Юткрываются файлы для записи рез-ов OPEN (9,file=path (l:LenPath)//'Fcl.ch').
OPEN (7,file='main.dat'}; READ (7,LST) [Чтение исходных данных pi=DCONST ('pi'); piu2=pi+pi; rmu=4d-7*pi !Выч. пи, 2*пи, мю ALLOCATE (FDATA (5,nlntervX+l), XDATA (nlntervX+l) 8с [Распределение массивов, BREAK (5,nlntervX+l), CSCOEF (5,4,nlntervX+l), AA (3,3)) xPenalti=tkon*ldl/xkon; fPenalti=tkon*ldl/FmO.
OPTXAR (l)=nwK;OPTXAR (2)=twKr;OPTXAR (3)=twKz;OPTXAR (4)=rKatvn;OPTXAR (5)=tDr OPTXAR (6)=rDvn; OPTXAR (7)=hDisk; optimizacia=.false. ! TEKOPT=.false.
WORK=OPTXAR; npar=0 DO i=l, 7.
IF (OPTPAR (i)) THEN if (ZNIZ (i) > ZVRX (i)) then.
write)*," ('ERROR: See file MAIN. DAT: ZNIZ (', iO,')>ZVRX (', iO,')')")i, i pause; STOP endif.
if (OPTXAR (i).
write)*," ('ERROR: See file MAIN. DAT: OPTXAR (', iO,').
if (OPTXAR (i)>ZVRX (i)) then.
write)*," ('ERROR: See file MAIN. DAT: OPTXAR (', iO,')>ZVRX (', iO,')')")i, i pause; STOP endif.
if (ZNIZ (i)==ZVRX (i)) then; OPTPAR (i)=.false.; cycle; endif optimizacia=.true.; npar=npar+l;
AR (npar)=OPTXAR (i); ZNIZWRK (npar)=ZNIZ (i); ZVRXWRK (npar)=ZVRX (i).
ENDIF.
ENDDO.
WRITE (8,LST); WRITE (9,LST) ! запись данных в файлы результатов nVizov=0; maxfcn=1000; ftol=5d-8; nVizov2=0; fcMin=ld20 if (optimizacia) Sc.
CALL DBCPOL) CALL_IDM, npar, AR, 0, ZNIZWRK, ZVRXWRK, ftol, maxfcn, DTX, fvalue) j=0.
DO i=l, 7.
IF (OPTPAR)i)) THEN; j=j+l; OPTXAR (i)=DTX (j);ENDIF ENDDO.
write (8,*) 'OPTXAR (:)=', OPTXAR; prtOptVar=.true.
CALL CALL_IDM (nrzm, OPTXAR, t); delenx=1.3; deleny=1.3.
CALL IMAG_IDM1.
END PROGRAM MAINJDPTIMIZ.