terminat0r
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Beloe В таком коде действительно не просто разобраться но если очень нужно то можно. Но как вам уже заметили он не корректен при операциях в сравнении с нулем. Чтобы сократить, можно перенести этот алфавит в массив и тогда некоторые операции станут покороче, т.е Код: implicit none integer, parameter :: rp = kind(1.0) real(rp) :: A,B,C,D,E,F,G,H,N,M,Z real(rp), dimension(31) :: test real(rp), parameter :: mp=epsilon(1.0) integer :: tt A=0.0 B=0.0 C=0.0 D=1.0 test(1)=A test(2)=B test(3)=C test(4)=D if(ALL(test(1:3)-0.0 < mp) .and. test(4)-1.0<mp) then write(*,*) 'doing something' write(*,*) test(1:3)-0.0, test(4)-1.0, mp endif | но это не избавит вас от работы по разбору этого спагетти самостоятельно и все равно код в результате будет несколько ( страниц? ) длиннее abs() забыл в if'е По-этому даже и короче не станет, но хотя бы корректнее, что ли... | Всего записей: 2084 | Зарегистр. 31-03-2002 | Отправлено: 19:52 11-07-2013 | Исправлено: terminat0r, 20:03 11-07-2013 |
|