Die interne Ein-/Ausgabe ermöglicht den Datentransport von einem Bereich des Arbeitsspeichers zu einem anderen, ohne Benutzung von E/A-Geräten oder externer Speichermedien und erlaubt gleichzeitig die Änderung der Darstellung, z.B. Umwandlung numerischer Daten in Zeichendaten und umgekehrt. Interne Ein-/Ausgabe wird nur mit formatgebundenen READ- und WRITE-Anweisungen vorgenommen und verwendet Variablen vom Typ CHARACTER als ,,interne Dateien``. Diese enthalten einen einzigen Datensatz; Positionierungs- und Statusanweisungen sind daher für interne Dateien sinnlos. Bei der Ausgabe werden die Daten der Formatangabe entsprechend in Zeichen umgewandelt (wie auch bei externen formatierten Dateien) und in der Zeichengröße gespeichert. Bei der Eingabe werden die Zeichen der internen Datei der Formatangabe entsprechend konvertiert und an die in der Eingabeliste stehenden Größen übergeben.
Beispiel:
CHARACTER (LEN=20) :: IntDat INTEGER :: NR, Neu IntDat = 'Dies sind 20 Zeichen' READ (IntDat, 100) NR WRITE (*,100) NR 100 FORMAT (10X, I2) Neu = 99 WRITE (IntDat(11:12), 102) Neu 102 FORMAT (I2) PRINT*, IntDat
erzeugt die Ausgabe
Spalten: 12345678901234567890 20 Dies sind 99 Zeichen