vaulin
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору akaGM Цитата: Код:fortran_compiler.exe file.f file.for file.f90 file1.f file1.for file1.f90 file2.obj file2.lib /out:myexe.exe | Да, я тупой. Ничего не понял А теперь для чайников, что такое fortran_compiler.exe? где это взять; df что ли здесь не нужен? file2.obj - откуда это взять? предварительная компиляция? Может лучше взять пример попроще? Как, к примеру, обработать совместно файл f1.for, где содержатся подпрограммы и модули, с файлом f2.for, в кот. содерж. главная программа (откуда вызываются эти самые подпрограммы и модули)? Vskazka Цитата: Наличие тех или иных программ - вторично | согласен. Максимальный выигрыш можно получить, изменив алгоритм, а не его реализацию. А вообще, Andrew10 и Vskazka, большое спасибо! за ценную информацию, как "переварю" -- отпишусь. А пока еще, кому интересно, задачка по фортрану. Мне необходимо сравнить по времени различные операции (+,-,...). Есть подозрение, что обращение к элементам массива куда больше занимает времени, чем, к примеру, "+". Написал в Far следующую программку (большое спасибо Andrew10 и akaGM за помощь в отладке ком. строки): integer*8,parameter:: n=9223372036854775800 integer*8 i,j,k,l,m,p,r REAL(8):: start_time1,finish_time1,timer real*8 tmp1r complex(4):: c1=(1.0,1.0), ca(2000)=(1.0,1.0) start_time1=timer() do p=1,n; do r=1,n; do m=1,n; do l=1,n; do k=1,n; do j=1,n; do i=1,n c1=c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1+c1 enddo; enddo; enddo; enddo; enddo; enddo; enddo finish_time1=timer() !время конца вычислений tmp1r=real(finish_time1-start_time1) write(*,'(A16,TR1,I2.2,A1,I2.2,A1,F4.1)')"Time",int1(tmp1r/3600.0),":",int1(mod(tmp1r,3600.0)/60.0),":",mod(tmp1r,60.0) pause end !===================================================== function timer() !===================================================== ! Определение процессорного времени timer в ! секундах !===================================================== real(8):: timer integer(4):: ival(8) call date_and_time(values=ival) timer=dble(ival(8))*0.001_8+dble(ival(7))+dble(ival(6))*60.0_8+dble(ival(5))*3600.0_8 endfunction timer !===================================================== Выдает: Time 00:00:0.0 Как измерить время на выполн. операции "+"? Кстати, как Вы вставляете здесь "код"? |