#include "CPP_OPTIONS.h" c ================================================================== c c adopen_adclose.F: Routines to handle the I/O of the TAMC generated c code. All files are direct access files. c Routines: c c o adopen - Open file (here a dummy routine). c o adclose - Close file (here a dummy routine). c c c The following input veriables are used throughout in the argument c lists: c c name - character c On entry, name is the extended tape name. c len - integer c On entry, len is the number of characters in name. c tid - integer c On entry, tid identifies the tape. c vid - integer c On entry, vid identifies the variable to be stored on c the tape. c var - real array of dimension length c On entry, var contains the values to be stored. c var must not be changed. c size - integer c On entry, size is the size in bytes of the type of c variable var. c length - integer c On entry, length is the dimension of the variable c stored on the tape. c irec - integer c On entry, irec is the record number to be written. c mythid - integer c On entry, mythid is the number of the thread or c instance of the program. c myiter - integer c On entry, myiter is the current iteration step during c the integration. c c For further details on this see the TAMC Users Manual, Appendix B, c User defined Storage Subroutines. c c TAMC does not provide the two leading arguments mythid and myiter c when compiling the MITgcmUV code. Instead the is a sed script avail- c able that does change the TAMC-generated adjoint code. c c Only the master thread is allowed to write data and only gobal c model arrays are allowed to be written be the subsequent routines. c Tiled data are to be stored in common blocks. This implies that at c least a two level checkpointing for the adjoint code has to be c available. c c ================================================================== subroutine adopen( I mythid, cph( cph I myiter, cph) I name, I len, I tid, I vid, I size, I length & ) c ================================================================== c SUBROUTINE adopen c ================================================================== c c o Dummy routine expected to be available by TAMC I/O. c c This routine is simply a dummy routine expected to be available by c the Tangent Linear and Adjoint Model Compiler(TAMC). Files are c opened and closed by the routines that are called by *adread* and c *adwrite*. c c started: Christian Eckert eckert@mit.edu 30-Jun-1999 c c changed: Christian Eckert eckert@mit.edu 15-Feb-2000 c c - Restructured the code in order to create a package c for the MITgcmUV. c c ================================================================== c SUBROUTINE adopen c ================================================================== implicit none c == global variables == c == routine arguments == integer mythid cph( cph integer myiter cph) character*(*) name integer len integer tid integer vid integer size integer length c == local variables == c == end of interface == return end subroutine adclose( I mythid, cph( cph I myiter, cph) I name, I len, I tid, I vid, I size, I length & ) c ================================================================== c SUBROUTINE adclose c ================================================================== c c o Dummy routine expected to be available by TAMC I/O. c c This routine is simply a dummy routine expected to be available by c the Tangent Linear and Adjoint Model Compiler(TAMC). Files are c opened and closed by the routines that are called by *adread* and c *adwrite*. c c started: Christian Eckert eckert@mit.edu 30-Jun-1999 c c changed: Christian Eckert eckert@mit.edu 15-Feb-2000 c c - Restructured the code in order to create a package c for the MITgcmUV. c c ================================================================== c SUBROUTINE adclose c ================================================================== implicit none c == global variables == c == routine arguments == integer mythid cph( cph integer myiter cph) character*(*) name integer len integer tid integer vid integer size integer length c == local variables == c == end of interface == return end