This question already has answers here:
Print a Fortran 2D array as a matrix
(3 answers)
Printing a Fortran array with an implicit loop
(3 answers)
Closed 6 months ago.
I am trying to print a 2D matrix of real numbers using fortran 90 using format descriptor F, and it keeps being printed as a single column. what should I do?
My code:
do i=1,N
do j=1,M
A(i,j) = 2.4
end do
end do
write(*,'(F6.2)')((A(i,j), j=1,M), i=1,N)
Related
This question already has answers here:
Fortran: Choosing the rank of an allocatable array
(2 answers)
Dynamic array rank
(2 answers)
Set array's rank at runtime
(4 answers)
Closed 3 years ago.
Is there a way I can declare an array which will be able to allocate any number of dimensions (in any shape) later in the code? Something like a the classic deferred shape but bearing in mind I do not know the rank, shape or size during declaration. For example, something similar to
real, allocatable :: a(:)
integer, parameter :: sh = [4,2,2]
allocate(a(sh))
which does not throw an error (of course it does in this case).
This question already has answers here:
Sum of a two dimensional array
(1 answer)
sum only on certain dimension
(1 answer)
Closed 4 years ago.
I am trying to figure how to do simple algebraic operations on a subset of elements in a multidimensional array and assign the result to another array with the same dimensions.
program hello
IMPLICIT NONE
REAL,DIMENSION(10,10,2,1) :: tmp1=2
REAL,DIMENSION(10,10,2,1) :: tmp2=1
INTEGER,DIMENSION(2) :: myind=(/1,2/)
This operations returns only one value
Print *, sum(tmp1(:,:,itree,:))
While this returns the correct results, however I would expect the same result than the second operation, maybe I am thinking in the R way.
Print *, tmp1(:,:,1,:)+tmp1(:,:,2,:)
end program Hello
How do I achieve the result of the second operation and assign it to another multidimensional array? Imagine my index is large so I can't type out each single term in the operation.
This question already has answers here:
Swift 3 2d array of Int
(2 answers)
Closed 5 years ago.
var tri = [[Int]]();
tri[0][0] = 321;
This code causes this error:
fatal error: Index out of range
What's wrong?
You're accessing the first element of the first subarray of the array. But your array doesn't contain any subarrays, so it crashes.
This question already has answers here:
Fortran increase dynamic array size in function
(3 answers)
Fortran array automatically growing when adding a value
(1 answer)
How to increase array size on-the-fly in Fortran?
(3 answers)
Closed 5 years ago.
I am trying to allocate an array and want to resize the array ie., grow the array size as and when required in the program.
My sample code looks like this
program main
implicit none
integer, allocatable, dimension(:)::test1
integer i, c1, c2
c1=10
c2=5
allocate(test1(1:c1))
! I basically want to do this
!allocate(test1(c1+1:c2))
end program main
How do I do this?
This question already has answers here:
Unique (non-repeating) random numbers in O(1)?
(22 answers)
Unique random number generation in an integer array [duplicate]
(9 answers)
Closed 8 years ago.
I want to randomize number in each element of array in a variabel. I currently use srand() function. But, with this function i could get a same number in two or more element of array.
the output of my program is
number[0]=6
number[1]=3
number[2]=8
number[3]=3
See, number[1] and number[3] has same value. How to prevent this thing happen?