I assume there is no way for separate fortran programs to access each others memory via the DuplicateHandle() method available with various versions of Windows with C programs (although generally the one program has to invoke the other program in order to pass some parameters on the command line used to define and share handles required for DuplicateHandle() ).
An option would be to use a file to share data, along with one or more "handshake" files used to synchonize communication. The issue here is how to "wait" for input from the "other" program. If your version of Fortran includes a sleep function, you can reduce the cpu overhead and/or prevent locking up the process. For each handshake file, you only need one integer as a state flag for each data path (from one program to the other or vice versa):
0 = no pending data, set by sending program (and also the initial value)
1 = pending data, set by sending program (which then "waits" for value == 2 or 3)
2 = data read by receiving program, set by receiving program
3 = optional state, set by receiving program to indicate it's ready to for more data.