Используя представленный ниже код на языке ФОРТРАН как ссылку, напишите код на C с MPI для динамической модели леса, обсуждавшейся в модуле. Запишите локальные максимумы высот в выходной файл.
c Получение базовой группы call MPI_COMM_GROUP(MPI_COMM_WORLD,bgrp,ierr) c c Определение строки и столбца call MPI_COMM_RANK(MPI_COMM_WORLD,irank,ierr) irow = MOD(irank,NROW) + 1 icol = INT(irank/NROW) + 1 c c Построение групп для строк row_list(1) = 0 do i=2,NCOL row_list(i) = row_list(i-1) + NROW end do do i=1,NROW call MPI_GROUP_INCL(bgrp,NCOL,row_list,grp,ierr) call MPI_COMM_CREATE(MPI_COMM_WORLD,grp,tcomm,ierr) if (irow .eq. i) row_comm=tcomm do j=1,NCOL row_list(j) = row_list(j)+1 end do end do c c Построение групп для столбцов do i=1,NROW col_list(i) = i-1 end do do i=1,NCOL call MPI_GROUP_INCL(base_grp,NROW,col_list,grp,ierr) call MPI_COMM_CREATE(MPI_COMM_WORLD,grp,temp_comm,ierr) if (icol .eq. i) col_comm=temp_comm do j=1,NROW col_list(j) = col_list(j) + NROW end do end do c c Сборка локальных максимальных высот деревьев call MPI_ALLGATHER(maxht,1,MPI_INTEGER,row_hgt,1,MPI_INTEGER, row_comm,ierr) call MPI_ALLGATHER(maxht,1,MPI_INTEGER,col_hgt,1,MPI_INTEGER,col_comm,ierr) return end