Dimension of arrays (RESHAPE) in Fortran 90

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
4 replies · 3K views
MahdiI84
Messages
22
Reaction score
1
TL;DR
Hello everyone. I am new to Fortran. The following coding is for a 2x2 matrix whose original diameter is zero and its non-original diameter requires writing a loop. The code I wrote now has an error that I am unable to fix. Please help me solve it. Thanks
Fortran:
program testmatek
implicit none
integer :: Nc=1000 ,k
integer,parameter :: N=2
REAL :: kx ,a0=1.0 ,t0=0.25
DOUBLE PRECISION :: pi=4*ATAN(1.)
COMPLEX , PARAMETER :: i=(0,1)
complex :: ek1 ,ek2
complex ::  MATRIX_ek(N,N)  
   
 open(1,file='matek.txt')  
 
    MATRIX_ek(N,N)=(0,0)
 
 DO k=-Nc,+Nc
    
    kx=(pi*k)/(1000*a0) 
    ek1=t0*(1+EXP(-2*i*kx*a0))
    ek2=t0*(1+EXP(2*i*kx*a0))
   
    MATRIX_ek=RESHAPE((/0.0,eK2,ek1,0.0/ ) , (/2,2/))
    write(1,*) MATRIX_ek
   
 end do
 end program testmatek
1>C:\Users\mahdi\Documents\Visual Studio 2012\Projects\Console4\Console4\Source1.f90(21): error #5082: Syntax error, found ')' when expecting one of: ( <IDENTIFIER> <CHAR_CON_KIND_PARAM> <CHAR_NAM_KIND_PARAM> <CHARACTER_CONSTANT> <INTEGER_CONSTANT> ...
 
Physics news on Phys.org
Why in heaven's name are you using RESHAPE?

RESHAPE is there to convert FORTRAN-type arrays to C-type arrays, so you can pass them to C functions.
 
jedishrfu said:
The error appears at line 20. Have you searched online for examples of using the RESHAPE function?
Yes, I know where the error is. Of course, I searched the internet. But since I am new to Fortran, I did not understand how I could fix the error. Thank you for your help
 
Vanadium 50 said:
Why in heaven's name are you using RESHAPE?

RESHAPE is there to convert FORTRAN-type arrays to C-type arrays, so you can pass them to C functions.
Thank you for your help