2010-10-06 5 views
1

Obtention de cette erreur lors de la tentative de compilation d'un code copié à partir d'un programme Fortran 77.Erreur: Fin inattendue de la chaîne de format dans la chaîne de format dans Fortran

code:

900 FORMAT(1H0,2X,'ABSOLUTE GRID LIMITS FOR DATA RETENTION FOR RADAR',I3,' XMIN-XMAX ',2F8.3,' YMIN-YMAX ',2F8.3,' ZMAX ',F8.3, /3X,'WITH AZIMUTH LIMITS OF',2F8.2, 3X,'AND RANGE LIMITS OF',2F10.3,/) 

erreur du compilateur:

messy21.f90:529.132: 

N FOR RADAR',I3,' XMIN-XMAX ',2F8.3,' YMIN-YMAX ',2F8.3,' ZMAX ',F8.3, /3X,(1) 

Error: Unexpected end of format string in format string at (1) 

Je ne suis pas sûr de ce que signifie l'erreur.

+0

c'est toujours une bonne idée d'utiliser l'étiquette la plus générale "fortran" pour les questions Fortran. – Wildcat

Répondre

1

Ma conjecture (sur la base de la position d'erreur dans la ligne, 132) serait: à partir de Fortran 90, nous utilisons source libre formulaire (entrée de source de forme libre). Chaque ligne peut contenir jusqu'à 132 caractères. Et si votre déclaration est encore plus grande, vous pouvez utiliser jusqu'à 39 lignes de continuation (255 dans le standard Fortran 2003). Fortran 77 a utilisé une forme de source fixe qui est juste une autre histoire.

utilisation soi-disant marque de continuation (&) de diviser votre très longue déclaration FORMAT, à savoir

900 FORMAT(1H0,2X,'ABSOLUTE GRID LIMITS FOR DATA RETENTION FOR RADAR',I3,' XMIN-XMAX ',2F8.3,' YMIN-YMAX ',2F8.3,' ZMAX ',F8.3, & 
/3X,'WITH AZIMUTH LIMITS OF',2F8.2, 3X,'AND RANGE LIMITS OF',2F10.3,/) 

Lire un livre ou Fortran 90/95/2003 section associée de la norme Fortran. Par exemple, dans Fortran 2003 Standard (Final Committee Draft, PDF, 5MB), la section «3.3 Sourceform» contient des informations pertinentes.

0

Votre ligne est trop longue.

Dans les fichiers de formulaire libre (.f90), vous ne pouvez utiliser que 132 lignes de caractères. Vous pouvez casser votre ligne et continuer sur la ligne suivante. Mettez & caractère à la fin de la ligne avant de continuer sur la ligne suivante.

Sous forme fixe Fortran (.f .for) vous ne pouvez utiliser que 72 lignes de caractères. Vous pouvez casser votre ligne et continuer sur la ligne suivante. Mettez n'importe quel caractère à la cinquième colonne sur la ligne actuelle.

Il existe des options de compilateur qui peuvent desserrer ces restrictions.