Quantcast
Channel: Intel® Fortran Compiler
Viewing all articles
Browse latest Browse all 3270

How to export matrixes in Fortran?

$
0
0

Hi! I am tryng to generate a matrix(m x n), MatContribution, with the following subroutine. Its elements are 1 with a certain probability p, 0 otherwise.

    SUBROUTINE Matrice_Conoscenza(p,n,m,ConoscenzaAgente,MatContribution)
    REAL,INTENT(IN) :: p
    INTEGER,INTENT(IN) :: n,m
    REAL, DIMENSION(1:n), INTENT(INOUT) :: ConoscenzaAgente
    REAL, DIMENSION(1:m,1:n), INTENT(OUT) :: MatContribution
    INTEGER :: i,j
    DO i=1,m
        CALL RANDOM_SEED()
        CALL RANDOM_NUMBER(ConoscenzaAgente)
        DO j=1,n
             IF(ConoscenzaAgente(j)<p) THEN 
                 MatContribution(i,j)=1  
             ELSE 
                 MatContribution(i,j)=0
             ENDIF
        ENDDO
    ENDDO
    ENDSUBROUTINE Matrice_Conoscenza

 I call the subroutine in the main program by the following statements and export MAT_CONTRIBUTION.

CALL Matrice_Conoscenza(P,N,M,CONOSCENZA_AGENTE,MAT_CONTRIBUTION)
   OPEN(UNIT=0,FILE='MatContribution.DAT')
   DO i=1,M
       WRITE (0,"(100000(f2.0))") MAT_CONTRIBUTION(i,:)
   ENDDO
   CLOSE(UNIT=0)

The problem is that the MAT_CONTRIBUTION I obtain has all rows equals.

0.0.0.0.1.0.1.0.1.0.0.0.
0.0.0.0.1.0.1.0.1.0.0.0.
0.0.0.0.1.0.1.0.1.0.0.0.
0.0.0.0.1.0.1.0.1.0.0.0.
0.0.0.0.1.0.1.0.1.0.0.0.
0.0.0.0.1.0.1.0.1.0.0.0.
0.0.0.0.1.0.1.0.1.0.0.0.

Where are my errors in the code? Is it correct to export a matrix in this way? Thank you in advance.


Viewing all articles
Browse latest Browse all 3270

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>