Back to home page

MITgcm

 
 

    


Warning, /tools/TAP_support/ADFirstAidKit/README.md is written in an unsupported language. File is not indexed.

view on githubraw file Latest commit b4daa243 on 2023-05-28 03:53:22 UTC
b4daa24319 Shre*0001 Contents of the ADFirstAidKit
                0002 =============================
                0003 
                0004 ## adStack.c && adStack.h
                0005   Mechanism for the main stack used by codes produced by Tapenade in reverse mode.
                0006   Use these files regardless of the language of the reverse-differentiated code.
                0007   For OpenMP compatibility, compile with option -fopenmp.
                0008 
                0009 ## adBinomial.c && adBinomial.h
                0010   Primitives for Tapenade adjoint with binomial checkpoiting (cf Griewank-Walther
                0011   "revolve" method). Triggered by Tapenade directive $AD BINOMIAL-CKP.
                0012 
                0013 ## (adContext.c || adContextMPI.c) && adContext.h
                0014   Primitives used by Tapenade-differentiated code with automated validation.
                0015   Triggered by tapenade command-line option -context.
                0016   Use adContextMPI.c instead of adContext.c on MPI code.
                0017 
                0018 ## adContextCPX.c && adContextCPX.h
                0019   Same as adContext, but to validate code differentiated with the command-line
                0020   option -complexstep, which is an attempt to automate differentiation
                0021   via the complex-step method.
                0022 
                0023 ## (adDebug.c || adDebugMPI.c) && adDebug.h
                0024   Primitives used by Tapenade-differentiated code with automated debugging.
                0025   Triggered by tapenade command-line option -context combined either with
                0026   -debugTGT or with -debugADJ.
                0027   Use adDebugMPI.c instead of adDebug.c on MPI code.
                0028 
                0029 ## adComplex.h
                0030   Utility for adStack, adContext, adDebug
                0031 
                0032 ## admm.c && admm.h (might be integrated later into adBuffer)
                0033   The "ADMM" primitives, which manage push/pop of pointers when the pointer's
                0034   destination lies in memory chunks that have been deallocated and reallocated.
                0035 
                0036 ## admm_tapenade_interface.f90
                0037   A Fortran90 module that must be USE'd by Tapenade-generated adjoint code,
                0038   if these codes need push/pop of pointers or use ADMM primitives.
                0039 
                0040 ## adProfile.c && adProfile.h (Currently broken, sorry)
                0041   Primitives used by Tapenade adjoint to measure the cost/benefit of checkpointing,
                0042   to find parts of the code that should or shouldn't be checkpointed.
                0043 
                0044 ## fortranSupport.F && ampiSupport.c
                0045   Files needed by AMPI, for Tapenade adjoint code of MPI programs.
                0046 
                0047 ## ampi
                0048   Directory containing the include files needed by code using the "adjoinable mpi" library.
                0049   This is primarily intended for some nonRegression tests. This is not the ampi install.
                0050 
                0051 ## PUSHPOPGeneralLib && PUSHPOPDiff.f
                0052   Useful for repeated differentiation forward-on-reverse. Specification of the
                0053   activity behavior of push/pop primitives + implementation of the forward
                0054   derivatives of these primitives.
                0055 
                0056 ## testMemSizef.f && testMemSizec.c
                0057   Short standalone code that tries to measure the size of primitive types in bytes.
                0058 
                0059 ## testpushpop.sh && testpushpop.f90
                0060   Short standalone code to test push/pop primitives of adStack.c
                0061 
                0062 ## validityTest.f (Poorly tested, sorry)
                0063   Primitives used by Tapenade tangent code to estimate how close the execution
                0064   comes to non-differentiable behavior (e.g. tests).
                0065   Triggered by tapenade command-line option -directValid.
                0066 
                0067 ## OLDadBuffer.c && OLDadBuffer.h && OLDadBuffer.f && OLDadStack.c && OLDadStack.h
                0068   Old version of the stack mechanism used by reverse AD codes. The new adStack.c && adStack.h do not need adBuffer any more.
                0069   With gfortran 10.2.1, use -fallow-argument-mismatch option to compile OLDadBuffer.f.
                0070 
                0071 Notice that, in order to run some nonRegression tests, you may have to place manually into this ADFirstAidKit directory two symbolic links: one named "mpich" pointing to the include directory of your mpich insall, and another one named "openmpi" pointing to the include directory of your openmpi install.