C $Header: /home/ubuntu/mnt/e9_copy/MITgcm_contrib/dgoldberg/depth_control_no_nsa/code/ECCO_CPPOPTIONS.h,v 1.1 2017/12/07 23:21:12 dgoldberg Exp $ C $Name: $ C C CPP flags controlling which code is included in the files that C will be compiled. #ifndef ECCO_CPPOPTIONS_H #define ECCO_CPPOPTIONS_H C-- Collect here, in a single option-file, options to control which optional C features to compile in packages AUTODIFF, COST, CTRL, ECCO, CAL and EXF. C If used, this option-file needs to be directly included in CPP_OPTIONS.h C Although this method, inherited from ECCO setup, has been traditionally C used for all adjoint built, work is in progess to allow to use the C standard metod (each of the above pkg get its own options from its C specific option-file) also for adjoint built. C ******************************************************************** C *** ECCO Package *** C ******************************************************************** C allow use of legacy ecco/ctrl codes #define ECCO_CTRL_DEPRECATED #undef ALLOW_ECCO_FORWARD_RUN #undef ALLOW_ECCO_DIAGNOSTICS_RUN #undef ALLOW_ECCO_OPTIMIZATION C >>> Do a long protocol. #undef ECCO_VERBOSE C ******************************************************************** C *** Adjoint Support Package *** C ******************************************************************** C o Include/exclude code in order to be able to automatically C differentiate the MITgcmUV by using the Tangent Linear and C Adjoint Model Compiler (TAMC). C #define ALLOW_AUTODIFF_TAMC C >>> Checkpointing as handled by TAMC #define ALLOW_TAMC_CHECKPOINTING C C >>> Extract adjoint state #define ALLOW_AUTODIFF_MONITOR #define ALLOW_AUTODIFF_MONITOR_DIAG C C >>> DO 2-level checkpointing instead of 3-level #undef AUTODIFF_2_LEVEL_CHECKPOINT C C o use divided adjoint to split adjoint computations #undef ALLOW_DIVIDED_ADJOINT #undef ALLOW_DIVIDED_ADJOINT_MPI C ******************************************************************** C *** Calender Package *** C ******************************************************************** C C CPP flags controlling which code is included in the files that C will be compiled. CPH >>>>>> THERE ARE NO MORE CAL OPTIONS TO BE SET <<<<<< C ******************************************************************** C *** Cost function Package *** C ******************************************************************** C C >>> Cost function contributions #define ALLOW_COST #undef ALLOW_COST_TEST #undef ALLOW_COST_TRACER #undef ALLOW_COST_ATLANTIC_HEAT #undef ALLOW_COST_TSQUARED #define ALLOW_COST_SHELFICE Cts getting 0 cost function, so adding these ... C to allow SHELFICE_COST_SHIFWFLX() to run CC#define ALLOW_SHIFWFLX_CONTROL CC#define ALLOW_SHIFWFLX_COST_CONTROBITION C ******************************************************************** C *** Control vector Package *** C ******************************************************************** C #define EXCLUDE_CTRL_PACK #undef ALLOW_NONDIMENSIONAL_CONTROL_IO C C >>> Initial values. #define ALLOW_THETA0_CONTROL #define ALLOW_SALT0_CONTROL c#define ALLOW_TR10_CONTROL c#define ALLOW_TAUU0_CONTROL c#define ALLOW_TAUV0_CONTROL c#define ALLOW_SFLUX0_CONTROL c#define ALLOW_HFLUX0_CONTROL c#undef ALLOW_SSS0_CONTROL c#undef ALLOW_SST0_CONTROL #undef ALLOW_DIFFKR_CONTROL c#undef ALLOW_KAPGM_CONTROL C o Topography in control vector #define ALLOW_DEPTH_CONTROL #ifdef ALLOW_DEPTH_CONTROL !# define ALLOW_CG2D_NSA # define ALLOW_DIFFERENTIATE_CG2D_MATRIX # define USE_SMOOTH_MIN #endif /* ALLOW_DEPTH_CONTROL */ C #ifdef ALLOW_OBCS #undef ALLOW_OBCSN_CONTROL #undef ALLOW_OBCSS_CONTROL #undef ALLOW_OBCSW_CONTROL #undef ALLOW_OBCSE_CONTROL #if (defined (ALLOW_OBCSN_CONTROL) || \ defined (ALLOW_OBCSS_CONTROL) || \ defined (ALLOW_OBCSW_CONTROL) || \ defined (ALLOW_OBCSE_CONTROL)) # define ALLOW_OBCS_CONTROL #endif #endif /* ALLOW_OBCS */ #endif /* ECCO_CPPOPTIONS_H */