Fortran 90 wird unter AIX ausgeführt. Der Versuch, diesen Code zu kompilieren und auszuführen, und ich erhalte eine Fehlermeldung, die besagt:Fortran-Fehler: Einheit mit formatierter Datei verbunden
The unformatted I/O statement on unit 200 cannot be completed because the unit is connected to the formatted file /filepath/TB_20160610023926_bufr_v620.dat.
The program will recover by ignoring the I/O statement.
Ich bin nicht ganz sicher, was dieser Fehler bedeutet. Ich öffne die Datei nur einmal und die Gerätenummer ist nicht mit einer anderen Datei verbunden.
INTEGER,PARAMETER :: GRID_TB_UNIT = 200
tbhmap=0
CALL SYSTEM('mkdir -p ' // TRIM(data_path) // '/' // &
TRIM(TB_PREFIX) // '/' // &
date_str)
OPEN(UNIT = GRID_TB_UNIT, &
file = TRIM(TB_binary_filename), &
STATUS = 'REPLACE', &
ACCESS = 'SEQUENTIAL', &
FORM = 'FORMATTED')
nrecg = 0
DO rr=1,720
DO cc=1,1440
IF(countgrid(cc,rr) < 1)CYCLE
nrecg = nrecg+1
tbhmap(cc,rr) = tbhgrid(cc,rr)/countgrid(cc,rr)
timemap(cc,rr) = timegrid(cc,rr)/countgrid(cc,rr)
GRID_TB_record%row = rr
GRID_TB_record%col = cc
GRID_TB_record%year = yeargrid(cc,rr)
GRID_TB_record%month = monthgrid(cc,rr)
GRID_TB_record%time = timemap(cc,rr)
GRID_TB_record%tbh425 = tbhmap(cc,rr)
WRITE(GRID_TB_UNIT,REC=nrecg)GRID_TB_record
END DO
END DO
CLOSE(GRID_TB_UNIT)
@HighPerformanceMark Dies führte zu einem weiteren Fehler: 'Der REC = Specifier darf nicht in einer Listen- oder Namelist-Datenübertragungsaussage erscheinen. – kkd92