by Darius Kazemi, April 29 2019

In 2019 I'm reading one RFC a day in chronological order starting from the very first one. More on this project here. There is a table of contents for all my RFC posts.

Fortran subroutines

RFC-119 (PDF with images) is titled “Network Fortran Subprograms” and authored by Mark Krilanovich of the Computer Research Lab at UCSB. It's dated April 21st, 1971.

The technical content

This document contains Fortran programs that are currently in use at UCSB. The programs allow Fortran programs compiled at UCSB to access the ARPANET. These programs live in between the user and the Network Control Program (NCP), so in modern terms they are like a library that provides programmers easy to access network drivers, and the NCP itself is the network drivers.

Fortran programs that use the network (at least in this scheme) have access to a “completion code variable”, one for each open network socket. The variable contains both the ID for the socket, and the current state of the socket. So it may indicate something like “socket 1473 is listening.”

This RFC describes how to open a local socket and connect to a foreign socket (a process that is connected to a program running on some network host), how to listen for foreign connections, how to accept a connection that you've been listening for, how to close a socket, how to send and receive data, how to check the status of a local socket, how to get the ID of a socket associated with a completion code variable, how to send or receive text/terminal data (so, not binary data), and a handful of other functions.

Each subprogram is documented with definitions for the parameters passed to the subprogram (what you might think of as parameters to a function), and what seem to be exhaustive lists of potential error and status codes that could be returned, where applicable.

How to follow this blog

You can subscribe to this blog's RSS feed or if you're on a federated ActivityPub social network like Mastodon or Pleroma you can search for the user “@365-rfcs@write.as” and follow it there.

About me

I'm Darius Kazemi. I'm an independent technologist and artist. I do a lot of work on the decentralized web with both ActivityPub and the Dat Project. You can support my work via my Patreon.