13.08.2013 Views

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

else if (wbegin == 0) then ! Обнаружено начало слова<br />

wbegin = j; wend = j<br />

else<br />

wend = wend + 1 ! Перемещение по текущему слову<br />

endif<br />

end do<br />

if (wbegin > 0) call addword(words, st, wbegin, wend, neww)<br />

!*** 4. Обработка слов строки, перевод данных во внутренний формат массивов ***<br />

if (neww==0) cycle !если слов нет, то игнорировать обработку<br />

kv=kv+1 ! новая строка<br />

if (kv>nv) then<br />

write(name0,*)nv<br />

call DWGMSG('Слишком много ветвей: > '//name0)<br />

stop<br />

endif<br />

namv(kv)=words(1) ! запись имени ветви<br />

read(words(2),*)symnp1(kv) ! запись 1-го узла<br />

read(words(3),*)symnp2(kv) ! запись 2-го узла<br />

! запись величин<br />

if (words(1)(1:1)=='v' .or. words(1)(1:1)=='V') then<br />

read(words(4),*)ev(kv) ! запись источника напряж<br />

zv(kv,kv)=0 ! запись внутр. сопрот. по умолч.<br />

if (neww>4) then<br />

k=index(st,'=')<br />

name1=trim(st(k+1:))<br />

read(name1,*)zv(kv,kv) ! запись введенного сопротивления<br />

endif<br />

elseif (words(1)(1:1)=='i' .or. words(1)(1:1)=='I') then<br />

read(words(4),*)jv(kv) ! запись источника тока<br />

zv(kv,kv)=1.0e10 ! запись внутр. сопрот. по умолч.<br />

if (neww>4) then<br />

k=index(st,'=')<br />

name1=trim(st(k+1:))<br />

read(name1,*)zv(kv,kv) ! запись введенного сопрот.<br />

endif<br />

elseif (words(1)(1:1)=='r' .or. words(1)(1:1)=='R') then<br />

read(words(4),*)zv(kv,kv) ! запись сопротивления<br />

if (neww>4) then<br />

do j=5,neww<br />

k=index(words(j),'i')<br />

if (k/=0 .or. index(st,'I')/=0 ) then<br />

name1=trim(words(j)(3:))<br />

read(name1,*)jv(kv)<br />

endif<br />

k=index(words(j),'v')<br />

if (k/=0 .or. index(st,'V')/=0 ) then<br />

name1=trim(words(j)(3:))<br />

read(name1,*)ev(kv)<br />

endif<br />

end do<br />

endif<br />

else<br />

write(*,*) 'не могу распознать тип ветви ',trim(words(1)),' !?'<br />

stop<br />

endif<br />

10 if (ios/=0) exit<br />

end do<br />

89

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!