C $Header: /u/gcmpack/MITgcm/eesupp/src/eesupp.flow,v 1.15 2014/07/15 22:00:28 jmc Exp $ C $Name: $ C--------------------------------------------------------------- C Subroutine barrier is difficult to handle, C it is required but it does not compute values. C TAMC has been extended to handle such routines C REQUIRED means the call will be included for recomputations C INFLUENCED means if also required C the adjoint routine will be called C--------------------------------------------------------------- CADJ SUBROUTINE BARRIER INPUT = 1 CADJ SUBROUTINE BARRIER OUTPUT = CADJ SUBROUTINE BARRIER REQUIRED CADJ SUBROUTINE BARRIER INFLUENCED CADJ SUBROUTINE BARRIER ADNAME = BARRIER CADJ SUBROUTINE BARRIER FTLNAME = BARRIER CADJ SUBROUTINE BARRIER DEPEND = 1 CADJ SUBROUTINE FOOL_THE_COMPILER INPUT = 1 CADJ SUBROUTINE FOOL_THE_COMPILER OUTPUT = CADJ SUBROUTINE FOOL_THE_COMPILER REQUIRED CADJ SUBROUTINE FOOL_THE_COMPILER INFLUENCED CADJ SUBROUTINE FOOL_THE_COMPILER ADNAME = FOOL_THE_COMPILER CADJ SUBROUTINE FOOL_THE_COMPILER FTLNAME = FOOL_THE_COMPILER CADJ SUBROUTINE FOOL_THE_COMPILER DEPEND = 1 CADJ SUBROUTINE FOOL_THE_COMPILER_RL INPUT = 1 CADJ SUBROUTINE FOOL_THE_COMPILER_RL OUTPUT = CADJ SUBROUTINE FOOL_THE_COMPILER_RL REQUIRED CADJ SUBROUTINE FOOL_THE_COMPILER_RL INFLUENCED CADJ SUBROUTINE FOOL_THE_COMPILER_RL ADNAME = FOOL_THE_COMPILER_RL CADJ SUBROUTINE FOOL_THE_COMPILER_RL FTLNAME = FOOL_THE_COMPILER_RL CADJ SUBROUTINE FOOL_THE_COMPILER_RL DEPEND = 1 CADJ SUBROUTINE MEMSYNC INPUT = CADJ SUBROUTINE MEMSYNC OUTPUT = CADJ SUBROUTINE MEMSYNC REQUIRED CADJ SUBROUTINE MEMSYNC INFLUENCED CADJ SUBROUTINE MEMSYNC ADNAME = MEMSYNC CADJ SUBROUTINE MEMSYNC FTLNAME = MEMSYNC CADJ SUBROUTINE MEMSYNC DEPEND = CADJ SUBROUTINE BARRIER_INIT INPUT = CADJ SUBROUTINE BARRIER_INIT OUTPUT = CADJ SUBROUTINE BAR2 INPUT = 1 CADJ SUBROUTINE BAR2 OUTPUT = CADJ SUBROUTINE BAR2_INIT INPUT = 1 CADJ SUBROUTINE BAR2_INIT OUTPUT = CADJ SUBROUTINE BAR_CHECK INPUT = 1,2 CADJ SUBROUTINE BAR_CHECK OUTPUT = CADJ SUBROUTINE CHECK_THREADS INPUT = 1 CADJ SUBROUTINE CHECK_THREADS OUTPUT = CADJ SUBROUTINE EEDIE INPUT = CADJ SUBROUTINE EEDIE OUTPUT = CADJ SUBROUTINE ALL_PROC_DIE INPUT = 1 CADJ SUBROUTINE ALL_PROC_DIE OUTPUT = CADJ FUNCTION TIMER_INDEX INPUT = 1,2,3,4 CADJ FUNCTION TIMER_INDEX OUTPUT = CADJ SUBROUTINE TIMER_CONTROL INPUT = 1,2,3,4 CADJ SUBROUTINE TIMER_CONTROL OUTPUT = CADJ SUBROUTINE TIMER_GET_TIME INPUT = CADJ SUBROUTINE TIMER_GET_TIME OUTPUT = 1,2,3 CADJ SUBROUTINE TIMER_PRINTALL INPUT = 1 CADJ SUBROUTINE TIMER_PRINTALL OUTPUT = CADJ SUBROUTINE TIMER_START INPUT = 1,2 CADJ SUBROUTINE TIMER_START OUTPUT = CADJ SUBROUTINE TIMER_STOP INPUT = 1,2 CADJ SUBROUTINE TIMER_STOP OUTPUT = CADJ SUBROUTINE PAPIF_flops INPUT = CADJ SUBROUTINE PAPIF_flops OUTPUT = 1,2,3,4,5 CADJ SUBROUTINE PAPIF_flips INPUT = CADJ SUBROUTINE PAPIF_flips OUTPUT = 1,2,3,4,5 CADJ SUBROUTINE PAPIF_ipc INPUT = CADJ SUBROUTINE PAPIF_ipc OUTPUT = 1,2,3,4,5 CADJ FUNCTION PCLstart INPUT = 1,2,3,4 CADJ FUNCTION PCLstart OUTPUT = CADJ FUNCTION PCLstop INPUT = 1,4 CADJ FUNCTION PCLstop OUTPUT = 2,3 CADJ SUBROUTINE DATE INPUT = 2 CADJ SUBROUTINE DATE OUTPUT = 1 CADJ SUBROUTINE LCASE INPUT = 1 CADJ SUBROUTINE LCASE OUTPUT = 1 CADJ SUBROUTINE UCASE INPUT = 1 CADJ SUBROUTINE UCASE OUTPUT = 1 CADJ SUBROUTINE MACHINE INPUT = CADJ SUBROUTINE MACHINE OUTPUT = 1 CADJ FUNCTION IFNBLNK INPUT = 1 CADJ FUNCTION IFNBLNK OUTPUT = CADJ FUNCTION ILNBLNK INPUT = 1 CADJ FUNCTION ILNBLNK OUTPUT = CADJ FUNCTION IO_ERRCOUNT INPUT = 1 CADJ FUNCTION IO_ERRCOUNT OUTPUT = CADJ SUBROUTINE READ_FIELD_XYZR8 INPUT = 2,3,4 CADJ SUBROUTINE READ_FIELD_XYZR8 OUTPUT = 1 CADJ SUBROUTINE WRITE_FIELD_XYZR8 INPUT = 1,2,3,4 CADJ SUBROUTINE WRITE_FIELD_XYZR8 OUTPUT = CADJ SUBROUTINE PRINT_MESSAGE INPUT = 1,2,3,4 CADJ SUBROUTINE PRINT_MESSAGE OUTPUT = CADJ SUBROUTINE PRINT_ERROR INPUT = 1,2 CADJ SUBROUTINE PRINT_ERROR OUTPUT = CADJ SUBROUTINE PRINT_LIST_I INPUT = 1,2,3,4,5,6,7 CADJ SUBROUTINE PRINT_LIST_I OUTPUT = CADJ SUBROUTINE PRINT_LIST_L INPUT = 1,2,3,4,5,6,7 CADJ SUBROUTINE PRINT_LIST_L OUTPUT = CADJ SUBROUTINE PRINT_LIST_RL INPUT = 1,2,3,4,5,6,7 CADJ SUBROUTINE PRINT_LIST_RL OUTPUT = CADJ SUBROUTINE PRINT_MAPRS INPUT = 1,2,3,4,5,6,7,8,9,10 CADJ SUBROUTINE PRINT_MAPRS INPUT += 11,12,13,14,15,16,17,18,19,20 CADJ SUBROUTINE PRINT_MAPRS INPUT += 21,22,23,24,25,26 CADJ SUBROUTINE PRINT_MAPRS OUTPUT = CADJ SUBROUTINE PRINT_MAPRL INPUT = 1,2,3,4,5,6,7,8,9,10 CADJ SUBROUTINE PRINT_MAPRL INPUT += 11,12,13,14,15,16,17,18,19,20 CADJ SUBROUTINE PRINT_MAPRL INPUT += 21,22,23,24,25,26 CADJ SUBROUTINE PRINT_MAPRL OUTPUT = CADJ SUBROUTINE mdsfindunit INPUT = 2 CADJ SUBROUTINE mdsfindunit OUTPUT = 1 CADJ SUBROUTINE mds_byteswapr8 INPUT = 1,2 CADJ SUBROUTINE mds_byteswapr8 OUTPUT = 2 CADJ SUBROUTINE mds_byteswapr4 INPUT = 1,2 CADJ SUBROUTINE mds_byteswapr4 OUTPUT = 2 CADJ FUNCTION MASTER_CPU_IO INPUT = 1 CADJ FUNCTION MASTER_CPU_IO OUTPUT = CADJ FUNCTION MASTER_CPU_THREAD INPUT = 1 CADJ FUNCTION MASTER_CPU_THREAD OUTPUT = C---------------------------------------- C subroutine open_copy_data_file C---------------------------------------- CADJ SUBROUTINE OPEN_COPY_DATA_FILE INPUT = 1,2, 4 CADJ SUBROUTINE OPEN_COPY_DATA_FILE OUTPUT = 3 C------------------------------------------------------- C-- formerly in pkg/autodiff/write_utils.flow (previously: read_write.flow) C---------------------------------------- C subroutine write_1d_i C---------------------------------------- CADJ SUBROUTINE WRITE_1D_I INPUT = 1,2,3,4,5 CADJ SUBROUTINE WRITE_1D_I OUTPUT = C---------------------------------------- C subroutine write_1d_l C---------------------------------------- CADJ SUBROUTINE WRITE_1D_L INPUT = 1,2,3,4,5 CADJ SUBROUTINE WRITE_1D_L OUTPUT = C---------------------------------------- C subroutine write_1d_rl C---------------------------------------- CADJ SUBROUTINE WRITE_1D_RL INPUT = 1,2,3,4,5 CADJ SUBROUTINE WRITE_1D_RL OUTPUT = C---------------------------------------- C subroutine write_0d_i C---------------------------------------- CADJ SUBROUTINE WRITE_0D_I INPUT = 1,2,3,4 CADJ SUBROUTINE WRITE_0D_I OUTPUT = C---------------------------------------- C subroutine write_0d_l C---------------------------------------- CADJ SUBROUTINE WRITE_0D_L INPUT = 1,2,3,4 CADJ SUBROUTINE WRITE_0D_L OUTPUT = C---------------------------------------- C subroutine write_0d_r4 C---------------------------------------- CADJ SUBROUTINE WRITE_0D_R4 INPUT = 1,2,3,4 CADJ SUBROUTINE WRITE_0D_R4 OUTPUT = C---------------------------------------- C subroutine write_0d_r8 C---------------------------------------- CADJ SUBROUTINE WRITE_0D_R8 INPUT = 1,2,3,4 CADJ SUBROUTINE WRITE_0D_R8 OUTPUT = C---------------------------------------- C subroutine write_0d_rs C---------------------------------------- CADJ SUBROUTINE WRITE_0D_RS INPUT = 1,2,3,4 CADJ SUBROUTINE WRITE_0D_RS OUTPUT = C---------------------------------------- C subroutine write_0d_rl C---------------------------------------- CADJ SUBROUTINE WRITE_0D_RL INPUT = 1,2,3,4 CADJ SUBROUTINE WRITE_0D_RL OUTPUT = C---------------------------------------- C subroutine write_0d_c C---------------------------------------- CADJ SUBROUTINE WRITE_0D_C INPUT = 1,2,3,4,5 CADJ SUBROUTINE WRITE_0D_C OUTPUT = C---------------------------------------- C subroutine write_copy1d_r4 C---------------------------------------- CADJ SUBROUTINE WRITE_COPY1D_R4 INPUT = 2,3,4,5,6 CADJ SUBROUTINE WRITE_COPY1D_R4 OUTPUT = 1 C---------------------------------------- C subroutine write_copy1d_r8 C---------------------------------------- CADJ SUBROUTINE WRITE_COPY1D_R8 INPUT = 2,3,4,5,6 CADJ SUBROUTINE WRITE_COPY1D_R8 OUTPUT = 1 C---------------------------------------- C subroutine write_copy1d_rs C---------------------------------------- CADJ SUBROUTINE WRITE_COPY1D_RS INPUT = 2,3,4,5,6 CADJ SUBROUTINE WRITE_COPY1D_RS OUTPUT = 1 C-------------------------------------------------------