我正在尝试修复Fortran中的代码,该代码创建化学反应的瞬态解决方案的初始网格。规范本身按部分划定了化学分布图的面积,并根据当前规格通过化学(1D)分布图给出了最小值。每次到达拐角点时,Fortran都不会找到最小值,并且会将拐角点比预期的要高一点,而忽略其余部分,因此化学溶液不会完全包含在右拐角的底部。 Espacilly我是一名工程专业的学生,还不太了解Fortran。因此,我认为你们中的某人可以帮助我找到原因,为什么找不到最后一个最小值。
谢谢。
下面您可以查看“代码”部分,该部分删除了“最小值”以创建初始网格,我还可以为您提供更多的网格(用户可以调整网格数,越高网格越细初始网格得到):
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,*)