Tôi đã cố sử dụng forall
để phân bổ mảng động nhưng gfortran không thích điều đó. Tôi cũng phát hiện ra rằng các câu lệnh write
bị cấm trong một khối forall
và tôi cũng nghi ngờ các câu lệnh read
cũng vậy.Hạn chế forall của Fortran
Các chức năng/hoạt động nào khác không được phép trong khối forall
?
Chính xác cấu trúc này là gì, ngoài ra đôi khi thay thế các vòng do
khi đơn đặt hàng không quan trọng? Tôi nghĩ rằng nó sẽ làm cho mã hóa dễ đọc hơn và thanh lịch, đặc biệt là hiển thị khi thứ tự của các hoạt động không quan trọng, nhưng nó có vẻ khá hạn chế với những gì các hoạt động có thể được thực hiện bên trong một forall
.
Lý do cho những hạn chế này, nghĩa là những gì họ bảo vệ/ngăn người dùng thoát khỏi sự cố? Sử dụng forall
có tốt không? Nếu có, cho mục đích gì?
Ngay bây giờ trong mã tôi đang làm việc trên chỉ có một khối forall
và nếu tôi dịch tất cả trong các vòng do
, nó sẽ cung cấp bốn vòng lồng nhau. Cách nào tốt hơn?
Cảm ơn bạn, bạn đã làm cho nó khá rõ ràng. –