Помощь в учёбе, очень быстро...
Работаем вместе до победы

Файл описания переменных DESCRIBE2. 
F90

РефератПомощь в написанииУзнать стоимостьмоей работы

Изменять только ёмкость ЕНЭ (напряжение задаётся фиксированным); Подпрограмма OPT_UC осуществляет минимизацию функции цели fc2 в. INTEGER: nrzm=7,npar, kDopViz2, kVizBCPOL REAL (8):AR (7), DTX (7), ZNIZ (7), ZVRX (7), OPTXAR (7), AR2(2), ValueUC&, UCX (2), tsrZad, OPTXAR2(2), UCNIZ (2), UCVRX (2), fc2Min, UcOOpt, EmkOpt LOGICAL: OPTPAR2(2). OPEN (8,file=path (l:LenPath)//'main.ch') !Файлы для… Читать ещё >

Файл описания переменных DESCRIBE2. F90 (реферат, курсовая, диплом, контрольная)

В файл помещены дополнительные переменные, которые использованы в программах для поиска минимальной энергии ЕНЭ. Тексты модулей даны ниже.

MODULE DESCRIBE2.

INTEGER: nrzm=7,npar, kDopViz2, kVizBCPOL REAL (8):AR (7), DTX (7), ZNIZ (7), ZVRX (7), OPTXAR (7), AR2(2), ValueUC&, UCX (2), tsrZad, OPTXAR2(2), UCNIZ (2), UCVRX (2), fc2Min, UcOOpt, EmkOpt LOGICAL: OPTPAR2(2).

END MODULE DESCRIBE2.

MODULE OPTUC REAL (8):tzad, dob=0.1d0 END MODULE OPTUC.

Программа MAIN_OPTIMIZ

Программа создаёт в папке с именем проекта свою папку, в которую будут помещены результаты расчёта. Имя создаваемой папки формируется по системным дате и времени. Например, папка может иметь имя " 201401_17_15h03m02s" (без кавычек). Это означает, что она создана в 2014 году, в январе, 17 числа, в 15 часов 03 минуты 02 секунды. Затем открываются файлы для чтения исходных данных и для записи результатов расчётов.

При первом обращении к пп TIMECH в файле с результатами она печатает дату и время начала счёта, при втором обращении — дату и время окончания счёта, а также продолжительность расчёта в часах, минутах и секундах. После этого распределяются массивы и производится проверка исходных данных на их соответствие допустимым диапазонам. Если в исходных данных в файле MAIN.DAT пользователь затребовал оптимизацию хотя бы по одной из возможных оптимизируемых переменных ИДМ (в этом случае хотя бы один элемент массива OPTPAR имеет значение .true.), то вызывается пп OPT_UC (см. ниже п. 3.3.5.). Она позволяет найти минимальную энергию ЕНЭ для заданного времени срабатывания ИДМ tzad. При этом пользователь в файле данных DATA2.DAT может указать:

  • — изменять одновременно и напряжение, и ёмкость ЕНЭ;
  • — изменять только напряжение ЕНЭ (ёмкость задаётся фиксированной);
  • — изменять только ёмкость ЕНЭ (напряжение задаётся фиксированным); Подпрограмма OPT_UC осуществляет минимизацию функции цели fc2 в

соответствии с выражением (3.1). После оптимизации энергии ЕНЭ (или без неё) программа MAIN_OPTIMIZ вызывает подпрограммы CALLJDM, TIMECH, IMAGJDM1.

PROGRAM MAIN_OPTIMIZ.

use MSIMSL; use DESCRIBE; USE IFPORT; use DESCRIBE2; USE MSFLIB; USE OPTUC IMPLICIT NONE.

integer: maxfcn2.

integer (2): iy, imes, id, ih, imin, is, iss.

NAMELIST/LST/ nwK, rKatvn, tWKr, tWKz, tlzwwr, shrzbK, udSoprK, sO &, hDisk, rDvn, tDr, shrzbD, udSoprD, YdPID, Amas, roProv, DiamPr, TizPr, DIProv &, ht, tkon, UcO, Emk, LTiristor, RTiristor, xkon, nlntervX, FmO, zl, xl, Fml, z2 &.

kratnPrt, poligrf, meth, miter, iatype, ZNIZ, ZVRX, OPTPAR, kDopViz NAMEUST/LST2/tsrZad, UCNIZ, UCVRX, OPTPAR2, kDopViz2 UzmGranDop EXTERNAL CALL_DBCPOL.

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)=,,//chr (l:4)//,J.

write (chr,'(i2)')imes;

if (chr (1:1)==' ,)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)=,0'; 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)='0'; 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'); CALLTIMECH OPEN (7,file='main.dat'}; READ (7,LST); CLOSE (7).

OPEN (7,file='data2.dat'); READ (7,LST2); CLOSE (7); pi=DCONST ('pi'); piu2=pi+pi; rmu=4d-7*pi !Выч. пи, 2*пи, wo ALLOCATE (FDATA (5,nlntervX+l), XDATA (nlntervX+l) & !Распределение массивов, BREAK (5,nlntervX+l), CSCOEF (S, 4, nlntervX+l), AA (3,3)) xPenalti=tkon*ldl/xkon; if (FmO>OdO) fPenalti=tkon*ldl/FmO if (FmO<=OdO) fPenalti=tkon*ldl.

!Внесение начальн. данных в массив OPTXAR. Последовательность перемени. не менять OPTXAR (l)=nwK;OPTXAR (2)=twKr;OPTXAR (3)=twKz;OPTXAR (4)=rKatvn;OPTXAR (5)=tDr OPTXAR (6)=rDvn; OPTXAR (7)=hDisk; optimizacia=.false.

WORK=OPTXAR; UcOOpt=UcO; EmkOpt=Emk; 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)*,1" ('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 lnpar-количество оптимизируемых переменных AR (npar)=OPTXAR (i); ZNIZWRK (npar)=ZNIZ (i); ZVRXWRK (npar)=ZVRX (i).

ENDIF.

ENDDO.

WRITE (8,LST);WRITE (9,LST);WRITE (8,LST2);WRITE (9,LST2) !запись в файлы исх. данных nVizov=0; maxfcn2=100; nVizov2=0; kVizBCPOL=0; fc2Min=ld20 OPTXAR2(l)=UcO; OPTXAR2(2)=Emk; ARO=OPTXAR; tzad=tsrZad IF (optimizacia) THEN.

WRITE (8," (' fc2 UcO Emk, mkF Tsr, ms WcO, Dj kViz VdOpt, m/s Wkin, Dj')").

CALL OPT_UC (CALL_DBCPOL, AR2, OPTPAR2,2,OPTXAR2,ValueUC, UCNIZ, UCVRX).

ENDIF.

prtOptVar=.true.; UcO=UcOOpt; Emk=EmkOpt.

CALL CALLJDM (nrzm, ARO, t); delenx=2.3; deleny=2.3 CALL TIMECH; CALL IMAG_IDM1.

WRITE (8,*) ,ARO (:)=', ARO,'TsrOpt=,, t; UcOOpt=', UcOOpt,' EmkOpt=', EmkOpt END PROGRAM MAINJDPTIMIZ.

Показать весь текст
Заполнить форму текущей работой