Back to home page

MITgcm

 
 

    


File indexing completed on 2021-09-17 05:14:50 UTC

view on githubraw file Latest commit 13d362b8 on 2021-09-16 18:57:16 UTC
34f80e9da1 Jean*0001 #include "PACKAGES_CONFIG.h"
                0002 #include "CPP_OPTIONS.h"
                0003 
                0004 CBOP
                0005 C     !ROUTINE: TURNOFF_MODEL_IO
                0006 C     !INTERFACE:
                0007       SUBROUTINE TURNOFF_MODEL_IO( seqFlag, myThid )
                0008 
                0009 C     !DESCRIPTION: \bv
                0010 C     *==========================================================*
                0011 C     | SUBROUTINE TURNOFF_MODEL_IO
                0012 C     | o Turn off some of the model output flags
                0013 C     *==========================================================*
                0014 C     | Used in adjoint simulation (and called after the first
4870dd98f1 Jean*0015 C     |  forward sweep) to avoid writing output multiple times (if
34f80e9da1 Jean*0016 C     |  recomputations and/or grdchk) with the same iter number.
                0017 C     *==========================================================*
                0018 C     \ev
                0019 
                0020 C     !USES:
                0021       IMPLICIT NONE
                0022 C     === Global variables ===
                0023 #include "SIZE.h"
                0024 #include "EEPARAMS.h"
                0025 #include "PARAMS.h"
4870dd98f1 Jean*0026 c#ifdef ALLOW_MNC
                0027 c# include "MNC_PARAMS.h"
34f80e9da1 Jean*0028 c#endif
4870dd98f1 Jean*0029 #ifdef ALLOW_EXF
                0030 # include "EXF_PARAM.h"
                0031 #endif
6a7c361f54 Jean*0032 #ifdef ALLOW_OBCS
a9eb030de2 Jean*0033 # include "OBCS_PARAMS.h"
6a7c361f54 Jean*0034 #endif
906a61c194 Ou W*0035 #ifdef ALLOW_ECCO
13d362b8c1 Ou W*0036 # include "ECCO_SIZE.h"
                0037 # include "ECCO.h"
906a61c194 Ou W*0038 #endif
34f80e9da1 Jean*0039 
                0040 C     !INPUT/OUTPUT PARAMETERS:
                0041 C     seqFlag :: flag that indicates where this S/R is called from:
                0042 C             :: =0 called at the end of S/R COST_FINAL
                0043 C             :: =1 called at initialisation when using DIVA
                0044 C     myThid  :: My Thread Id number
                0045       INTEGER seqFlag
                0046       INTEGER myThid
                0047 
                0048 C     !LOCAL VARIABLES:
4870dd98f1 Jean*0049 c     CHARACTER*(MAX_LEN_MBUF) msgBuf
34f80e9da1 Jean*0050 CEOP
                0051 
                0052       _BARRIER
                0053 
4870dd98f1 Jean*0054 C--   only master-thread resets shared flags (in common block)
34f80e9da1 Jean*0055       _BEGIN_MASTER( myThid )
4870dd98f1 Jean*0056 
34f80e9da1 Jean*0057 C--   Set output freq. to zero to avoid re-write of
                0058 C     averaged fields in reverse checkpointing loops
                0059       monitorFreq  = 0.
                0060       dumpFreq     = 0.
6a7c361f54 Jean*0061       diagFreq     = 0.
34f80e9da1 Jean*0062       taveFreq     = 0.
4870dd98f1 Jean*0063       chkPtFreq    = 0.
34f80e9da1 Jean*0064       pChkPtFreq   = 0.
4870dd98f1 Jean*0065       dumpInitAndLast = .FALSE.
                0066       writePickupAtEnd= .FALSE.
337b46d524 Jean*0067       plotLevel    = 0
34f80e9da1 Jean*0068 
                0069 #ifdef ALLOW_MNC
4870dd98f1 Jean*0070 C--   Not the best solution to fix some MNC output, since it is likely
                0071 C     that the same problem exists when we do not use MNC. A better fix
                0072 C     is to switch off the specific output freq; leave this commented out.
                0073 c     monitor_mnc  = .FALSE.
                0074 c     snapshot_mnc = .FALSE.
                0075 c     timeave_mnc  = .FALSE.
34f80e9da1 Jean*0076 #endif
                0077 
4870dd98f1 Jean*0078 #ifdef ALLOW_EXF
                0079 C-    should call a S/R EXF_TURNOFF_IO (like SEAICE) to reset this flag
                0080       IF ( useEXF ) exf_monFreq = 0.
                0081 #endif
34f80e9da1 Jean*0082 
6a7c361f54 Jean*0083 #ifdef ALLOW_OBCS
                0084 C-    should call a S/R OBCS_TURNOFF_IO (like SEAICE) to reset this flag
                0085       IF ( useOBCS ) OBCS_monitorFreq = 0.
                0086 #endif
                0087 
906a61c194 Ou W*0088 #ifdef ALLOW_ECCO
                0089 C-    should call a S/R ECCO_TURNOFF_IO (like SEAICE) to reset this flag
                0090       IF ( useECCO ) ecco_output_sterGloH = .FALSE.
                0091 #endif
                0092 
34f80e9da1 Jean*0093 C--   Disable SBO output
                0094       useSBO       = .FALSE.
                0095 
6645f319a7 Patr*0096 C--   Disable layers package
                0097       useLayers    = .FALSE.
                0098 
34f80e9da1 Jean*0099 C--   For now, also disable diagnostics output (might need to change
                0100 C     this if we want to use diagnostics to output adjoint-variables)
                0101       useDiagnostics = .FALSE.
                0102 
                0103       _END_MASTER( myThid )
                0104 
4870dd98f1 Jean*0105 C--   Package specific S/R to turn-off IO flags (all threads do call S/R)
                0106 
                0107 #ifdef ALLOW_SEAICE
                0108       IF ( useSEAICE ) THEN
                0109         CALL SEAICE_TURNOFF_IO( seqFlag, myThid )
                0110       ENDIF
                0111 #endif
                0112 
8257bc3b3f Jean*0113 #ifdef ALLOW_THSICE
                0114       IF ( useThSIce ) THEN
                0115         CALL THSICE_TURNOFF_IO( seqFlag, myThid )
                0116       ENDIF
                0117 #endif
                0118 
4870dd98f1 Jean*0119 #ifdef ALLOW_PTRACERS
                0120       IF ( usePTRACERS ) THEN
                0121         CALL PTRACERS_TURNOFF_IO( seqFlag, myThid )
                0122       ENDIF
                0123 #endif
                0124 
                0125 C--   each thread waits for flags to be reset.
34f80e9da1 Jean*0126       _BARRIER
                0127 
                0128       RETURN
                0129       END