Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an intrinsic function for initializing arrays to zero in Fortran?

Is there a way to set an array (vector, or matrix, or even a scalar) to zero yet in Fortran? 2003/2008 seem to be taking Fortran to a very modern level, and I have to wonder if they have included an easy way to set array values to zero without having to do

do i = 1,X

        do j = 1,Y

            A(i,j) = 0

        enddo

enddo

Where X is the number of rows and Y is the number of columns in a 2-d matrix. This could be generalized to as many dimensions as you like, but the principle is the same.

In Matlab this is easily done with the zeros function, i.e.,

A = zeros(X,Y)

Modern Fortran seems to be incorporating a lot of the things people like about Matlab and other languages into it's repertoire, so I am just curious if they have an intrinsic for this simple and basic task yet.

Or maybe in modern Fortran it isn't necessary to clear out any previously stored values in the memory by initializing arrays?

I guess a shorter way would be to just go

real, dimension(X,Y)        :: A

A = A*0.0 ! Set all elements to zero by multiplying matrix by scalar value 0

But the question about an intrinsic still stands.

like image 237
Charlie Crown Avatar asked Apr 16 '17 02:04

Charlie Crown


1 Answers

It turns out the answer is quite simple.

A = 0.0 

or just

A = 0

will set all elements in your array to 0.0000...

(Moved from the question.)

like image 60
Vladimir F Героям слава Avatar answered Oct 23 '22 05:10

Vladimir F Героям слава