Я бы хотел усреднить первый столбец и последний показанный столбец здесь (это мой вывод). Мой код делает несколько вещей, таких как сравнение определенных атомов с именем «CA» для каждого кадра (у меня есть 1000 кадров), исключение ближайших соседей и, в зависимости от значения отсечки, и подсчет этих контактов и распечатка их отдельно в соответствии с моим желанием ( входной файл выглядит как это ). Я хотел бы напечатать файл, в котором он дает мне вывод, например, следующий:
1 0
2 12
3 12
....
100 16
Нужно руководство, чтобы достичь этого, помогая мне сформировать цикл или условие.
open(unit=11,file="0-1000.gro", status="old", action="read")
do f=1,frames,10
25 format (F10.5,F10.5,F10.5)
do h=1,natoms_frames
read(11,format11)nom(h),resname(h),atmtype(h),num(h),x(h),y(h),z(h)
end do
read(11,25)lasta(f),lastb(f),lastc(f)
count=0
do h=1, natoms_frames
if (atmtype(h).eq.' CA') then
count=count+1
CAx(count)=x(h)
CAy(count)=y(h)
CAz(count)=z(h)
end if
end do
do h=1, count
avg_cal=0
cal=0
do hh=h+3, count
if (h.ne.hh) then
! finding distance formula from the gro file
distance = sqrt((CAx(hh)-CAx(h))**2 + (CAy(hh)-CAy(h))**2 + (CAz(hh)-CAz(h))**2)
if (distance.le.cutoff) then
cal = cal+1
set = set+1
final_set=final_set+1
avg_cal=avg_cal+1
end if
end if
end do
write(*,*)h,cal,final_set
end do
end do ! end of frames
close(11)
end program num_contacts