如何在Fortran中定义一个更改大小的数组?

时间:2016-01-17 20:14:44

标签: arrays fortran

我有一个简单的问题。我正在编写自己的脚本来计算Fortran中两个信号之间的互相关(每个信号可以表示为一维数组)。作为任何互相关,我必须相对于另一个延迟一个信号,并且仅比较它们之间的交叉元素。这意味着对于每个延迟,其中一个信号将改变其大小,因为交叉元素将减少。

问题是代码中数组的大小调整。我展示了一个非常简单的例子来说明情况,其中第二个信号相对于另一个延迟。我只需要知道如何定义function upload_a_sound($user_id, $file_temp, $file_extn, $name, $uploader, $keywords) { $timecode = substr(md5(time()), 0, 10); $mp3name = 'beats/' . $timecode . '.mp3'; $wavname = 'beats/' . $timecode . '.wav'; $file_path = 'beats/' . $timecode . '.' . $file_extn; //$date = date('m-d-Y'); move_uploaded_file($file_temp, $file_path); shell_exec('ffmpeg -i ' . $wavname . ' -vn -ar 44100 -ac 2 -ab 192k -f mp3 ' . $mp3name . ''); require ('classAudioFile.php'); $AF = new AudioFile; $AF->loadFile($file_path); $AF->visual_width=200; $AF->visual_height=200; $AF->visual_graph_color="#c491db"; $AF->visual_background_color="#000000"; $AF->visual_grid=false; $AF->visual_border=false; $AF->visual_graph_mode=0; $AF->getVisualization ('images/song/' . $timecode . '.png'); $imageloc = 'images/song/' . $timecode . '.png'; mysql_query("INSERT INTO `content` VALUES ('', '', '$name', '$uploader', '$keywords', '$file_path', '$imageloc', '$mp3name')"); s1以保持此功能,因为我在s2语句中放置的内容不起作用:

allocatable

例如,如果我在循环中添加program test_corr ! Defining variables: integer :: i, max_delay real, dimension(5) :: signal_1, signal_2 real, allocatable :: s1(:), s2(:) ! Signals to correlate: signal_1 = (/ 1, 2, 3, 4, 5 /) signal_2 = (/ 6, 7, 8, 9, 10 /) ! Loop along delays: max_delay = 3 do i=1,max_delay ! Applying delay to the second signal: s1 = signal_1(1:size(signal_1)-1) s2 = signal_2(i+1:size(signal_2)) end do end program 语句,则它不会显示任何内容。我希望第二个信号的输出如下:print *, s2然后7 8 9 10进行前两次迭代。

我正在使用ifort 15,我编译为

8 9 10

0 个答案:

没有答案