Ich versuche, einen Code mit gfortran zu kompilieren. Das Unterprogramm plumed_f_gcmd
ist, wo ich einige Probleme habe. Hier ist das Stück des CodesSyntaxfehler in der Argumentliste einer Subroutine
call plumed_f_gcmd("setMDTimeUnits"//char(0),timeUnits)
call plumed_f_gcmd("setPlumedDat"//char(0),"plumed.dat"//char(0))
call plumed_f_gcmd("setLogFile"//char(0),"PLUMED.OUT"//char(0))
call plumed_f_gcmd("setNatoms"//char(0),natms)
call plumed_f_gcmd("setMDEngine"//char(0),"dlpoly1.90"//char(0))
die Compiler die folgenden Fehler:
call plumed_f_gcmd("setPlumedDat"//char(0),"plumed.dat"//char(0
1
Error: Syntax error in argument list at (1)
call plumed_f_gcmd("setMDEngine"//char(0),"dlpoly1.90"//char(0)
1
Error: Syntax error in argument list at (1)
Zunächst einmal kann ich nicht ganz verstehen, wie in einem Unterprogramm kann der zweite Eingang einmal eine Zahl sein, und einmal eine Schnur? ändert '//char(0)'
irgendwie die Zeichenfolge in einen anderen Datentyp? Kann mir bitte jemand das erklären?
Und meine zweite Frage ist, warum der Fehler nicht auch für den Fall der dritten Zeile (PLUMED.OUT) auftritt?
Ich weiß nicht, wie aber einige C und C++ Wrapper beteiligt sind; dies ist das Unterprogramm in C:
void plumed_f_gcmd(char*key,void*val){
plumed_gcmd(key,val);
}
Für mich sieht das so aus, als ob Sie die zulässigen Leitungslängen überschreiten. Ist dies eine feste Quelle (was ist die Dateierweiterung/Befehlszeile)? – francescalus
In fester Form wie hier werden Zeichen nach Spalte 72 ignoriert. – Gilles
Ja, Änderungen von LRiO sind destruktiv, ich rolle sie zurück. – SergeyA