user2717742
user2717742

Reputation: 17

how I can define variable name with " write " command in fortran

I need to define a variable name for different files inside a Fortran code, while I 'm using this commands

open(unit=5,file="plot.sm")
write(unit=zbin_str,fmt='(f5.2)') zbin

plotname="LF_z"//zbin_str//".ps"

write(5,"dev postencap"  plotname) 
write(5,"toplabel LF for",//zbin_str//)

I'm receiving these errors :

Syntax error, found '//' when expecting one of: ( * <IDENTIFIER> <CHAR_CON_KIND_PARAM> <CHAR_NAM_KIND_PARAM> <CHARACTER_CONSTANT> ...           
 write(5,"toplabel LF for",//zbin_str//)

error #6355: This binary operation is invalid for this data type.   [PLOTNAME]            
     write(5,"dev postencap"  plotname) 

An arithmetic or LOGICAL type is required in this context.          
     write(5,"dev postencap"  plotname) 

How I can define the available name inside the Fortran code?? Thanks

Upvotes: 0

Views: 209

Answers (1)

High Performance Mark
High Performance Mark

Reputation: 78316

Neither of these lines

 write(5,"dev postencap"  plotname) 
 write(5,"toplabel LF for",//zbin_str//)

is well-formed; that's what the compiler is trying to tell you.

Beyond that, I'm not sure what you are trying to do or, therefore, how to fix it. Unless you use keywords your Fortran compiler will understand the 2nd argument in a write statement to be the format specifier in which you want to present the output. I can't see how either "dev postencap" plotname or "toplabel LF for",//zbin_str// can be made into a valid format specifier. Perhaps what you want is

 write(5,'(a32)') "dev postencap"//plotname
 write(5,'(a32)') "toplabel LF for"//zbin_str

Anything more would be based on guesswork. If this doesn't answer your question explain it more clearly if you can.

Upvotes: 2

Related Questions