Почему код Фортрана не находит последние минимальные значения? - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь исправить код в Фортране, который создает начальную сетку переходных решений химической реакции.Сам кодекс делит площадь химических профилей на секции и интерполирует минимальные значения, полученные по химическому (1D) профилю в текущем измерении.Каждый раз, когда достигается угловая точка, Фортран не находит минимальное значение и принимает угловую точку немного выше, чем ожидалось, игнорируя остальное, так что химические растворы не полностью содержатся в нижней части правого угла.Особенно я студент инженерного факультета и не совсем в Фортране.Поэтому я подумал, что кто-то из вас, ребята, может помочь мне найти причину, по которой последнее минимальное значение не найдено.

Заранее спасибо.

Ниже вы можете посмотреть наРаздел кода, удаляющий минимальные значения для создания начальной сетки, я также могу предоставить вам ее больше (число сеток может быть адаптировано пользователями, чем выше оно становится, тем тоньше становится исходная сетка):

allocate(min_y_grids(size(grids_down_new,1),size(Table,2)))
min_y_grids(1,:)=min_y_sections(1,:)
min_y_grids(size(min_y_grids,1),:)=min_y_sections(size(min_y_sections,1),:)
do i=2,(size(min_y_grids,1)-1)
    do j=2,size(min_y_sections,1)
        if (min_y_sections(j-1,x).LE.grids_down_new(i).AND.grids_down_new(i).LE.min_y_sections(j,x)) then
            do k=1,size(min_y_sections,2)   
                min_y_grids(i,k)=(min_y_sections(j,k)-min_y_sections(j-1,k))/(min_y_sections(j,x)-min_y_sections(j-1,x))*(grids_down_new(i)-min_y_sections(j-1,x))+min_y_sections(j-1,k)
            end do
        end if
    end do
end do
print*,min_y_sections(:,y)
print*,min_y_grids(:,y)
!read(20,*) 
...