У меня есть два массива, и я хочу сравнить их размеры и добавить конечные нули в зависимости от того, какой массив короче.
eg- Для массивов -
y1=(/ 1,2,3 /)
y2=(/ 1,2,3,4,5 /)
Окончательный результат должен быть -
y1=(/ 1,2,3,0,0 /)
y2=(/ 1,2,3,4,5 /)
Я очень плохо знаком с Фортраном, и, насколько я знаю до сих пор, это можно сделать так: -
integer, allocatable :: y1(:),y2(:)
integer :: l1,l2,i
.
.
.
! some code to generate y1 and y2 here
.
.
.
l1=size(y1)
l2=size(y2)
if (l1>l2) then
do i=l2+1,l1
y2(i)=0
enddo
else if (l2>l1) then
do i=l1+1,l2
y1(i)=0
enddo
endif
Я хочу знать, есть ли лучший способ сделать это, предпочтительно тот, который не включает циклы, так как реальная проблема, над которой я работаю, может иметь огромные векторы