Back to home page

MITgcm

 
 

    


File indexing completed on 2024-05-11 05:10:13 UTC

view on githubraw file Latest commit 41c4545f on 2024-05-10 15:00:41 UTC
2f0f89f640 Patr*0001 #include "AUTODIFF_OPTIONS.h"
e7c6a35452 Jean*0002 #ifdef ALLOW_CTRL
                0003 # include "CTRL_OPTIONS.h"
                0004 #endif
2f0f89f640 Patr*0005 
a10c595eb6 Timo*0006       SUBROUTINE ADAUTODIFF_INADMODE_UNSET( myTime, myIter, myThid )
52cd6fcfc8 Jean*0007 C     *==========================================================*
5127d1d91b Jean*0008 C     | SUBROUTINE ADAUTODIFF_INADMODE_UNSET
52cd6fcfc8 Jean*0009 C     *==========================================================*
                0010 
c59dd234b1 Jean*0011 C     !USES:
2f0f89f640 Patr*0012       IMPLICIT NONE
                0013 C     == Global variables ===
                0014 #include "SIZE.h"
                0015 #include "EEPARAMS.h"
                0016 #include "PARAMS.h"
5127d1d91b Jean*0017 #include "AUTODIFF_PARAMS.h"
8cbe658cd1 Jean*0018 #ifdef ALLOW_SEAICE
e6026aeb57 Patr*0019 #include "SEAICE_SIZE.h"
8cbe658cd1 Jean*0020 #include "SEAICE_PARAMS.h"
                0021 #endif
8efbdea137 Gael*0022 #ifdef ALLOW_CTRL
5cf4364659 Mart*0023 # include "CTRL_SIZE.h"
                0024 # include "CTRL.h"
8efbdea137 Gael*0025 #endif
a10c595eb6 Timo*0026 #ifdef ALLOW_AUTODIFF_MONITOR
                0027 # ifdef ALLOW_DIAGNOSTICS
41c4545f8f Jean*0028 #  include "DIAGNOSTICS_P2SHARE.h"
a10c595eb6 Timo*0029 # endif
                0030 #endif /* ALLOW_AUTODIFF_MONITOR */
2f0f89f640 Patr*0031 
c59dd234b1 Jean*0032 C     !INPUT/OUTPUT PARAMETERS:
                0033 C     myTime    :: Current time in simulation
                0034 C     myIter    :: Current iteration number
                0035 C     myThid    :: my Thread Id number
                0036       _RL     myTime
a10c595eb6 Timo*0037       INTEGER myIter
c59dd234b1 Jean*0038       INTEGER myThid
                0039 
                0040 C     !LOCAL VARIABLES:
5127d1d91b Jean*0041       CHARACTER*(MAX_LEN_MBUF) msgBuf
2f0f89f640 Patr*0042 
a10c595eb6 Timo*0043 #ifdef ALLOW_AUTODIFF_MONITOR
                0044 # ifdef ALLOW_DIAGNOSTICS
                0045       LOGICAL modelEnd
                0046 C --- Write the fields out here
                0047       IF ( useDiag4AdjOutp ) THEN
                0048 C --- Grab modelEnd, necessary input for diagnostics routines
                0049        modelEnd = myTime.EQ.startTime .OR. myIter.EQ.nIter0
                0050        CALL TIMER_START('I/O (WRITE)        [ADJOINT LOOP]', myThid )
                0051        CALL DIAGNOSTICS_WRITE_ADJ( modelEnd, myTime, myIter, myThid )
                0052        CALL TIMER_STOP( 'I/O (WRITE)        [ADJOINT LOOP]', myThid )
                0053       ENDIF
                0054 # endif /* ALLOW_DIAGNOSTICS */
                0055 #endif /* ALLOW_AUTODIFF_MONITOR */
                0056 
0d75a51072 Mart*0057       inAdMode  = .FALSE.
2f0f89f640 Patr*0058 
562c7efd9e Mart*0059       useKPP    = useKPPinFwdMode
5127d1d91b Jean*0060       useGMRedi = useGMRediInFwdMode
562c7efd9e Mart*0061       useSEAICE = useSEAICEinFwdMode
b5f6e47484 Gael*0062       useGGL90    = useGGL90inFwdMode
                0063       useSALT_PLUME    = useSALT_PLUMEinFwdMode
6b07e0a584 Jean*0064 #ifdef ALLOW_SEAICE
                0065       IF ( SEAICEuseFREEDRIFTswitchInAd ) THEN
                0066         SEAICEuseFREEDRIFT = SEAICEuseFREEDRIFTinFwdMode
e5d920b361 Mart*0067         SEAICEuseLSR       = .NOT.SEAICEuseFREEDRIFT
6b07e0a584 Jean*0068       ENDIF
                0069       IF ( SEAICEuseDYNAMICSswitchInAd ) THEN
                0070         SEAICEuseDYNAMICS  = SEAICEuseDYNAMICSinFwdMode
                0071       ENDIF
a661e4ae05 Gael*0072       SEAICEadjMODE=0
4dd39c50d9 Mart*0073 C     SIregFacInFw = UNSET_RL by default, so we need to check this here
                0074       IF ( SIregFacInFw .NE. UNSET_RL ) SINegFac = SIregFacInFw
6b07e0a584 Jean*0075 #endif /* ALLOW_SEAICE */
4240547d2d Mart*0076       viscFacAdj=viscFacInFw
5127d1d91b Jean*0077 
                0078       IF ( debugLevel.GE.debLevC ) THEN
                0079        WRITE(msgBuf,'(A,L5)')
                0080      &      'S/R ADAUTODIFF_INADMODE_UNSET: useKPP    =', useKPP
                0081        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0082      &                     SQUEEZE_RIGHT, myThid )
                0083        WRITE(msgBuf,'(A,L5)')
                0084      &      'S/R ADAUTODIFF_INADMODE_UNSET: useGMRedi =', useGMRedi
                0085        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0086      &                     SQUEEZE_RIGHT, myThid )
                0087        WRITE(msgBuf,'(A,L5)')
                0088      &      'S/R ADAUTODIFF_INADMODE_UNSET: useSEAICE =', useSEAICE
                0089        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0090      &                     SQUEEZE_RIGHT, myThid )
b5f6e47484 Gael*0091        WRITE(msgBuf,'(A,L5)')
                0092      &      'S/R ADAUTODIFF_INADMODE_UNSET: useGGL90    =', useGGL90
                0093        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0094      &                     SQUEEZE_RIGHT, myThid )
                0095        WRITE(msgBuf,'(A,L5)')
6b07e0a584 Jean*0096      &      'S/R ADAUTODIFF_INADMODE_UNSET: useSALT_PLUME    =',
b5f6e47484 Gael*0097      &      useSALT_PLUME
                0098        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0099      &                     SQUEEZE_RIGHT, myThid )
8cbe658cd1 Jean*0100 
a661e4ae05 Gael*0101        WRITE(msgBuf,'(A,1PE21.14)')
                0102      &      'S/R ADAUTODIFF_INADMODE_UNSET: viscFacAdj =',viscFacAdj
                0103        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0104      &                     SQUEEZE_RIGHT, myThid )
                0105 
8cbe658cd1 Jean*0106 #ifdef ALLOW_SEAICE
6b07e0a584 Jean*0107        IF ( SEAICEuseFREEDRIFTswitchInAd ) THEN
                0108          WRITE(msgBuf,'(2A,L5)') 'S/R ADAUTODIFF_INADMODE_UNSET: ',
                0109      &        'SEAICEuseFREEDRIFT =', SEAICEuseFREEDRIFT
                0110          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0111      &                       SQUEEZE_RIGHT, myThid )
e5d920b361 Mart*0112          WRITE(msgBuf,'(2A,L5)') 'S/R ADAUTODIFF_INADMODE_UNSET: ',
                0113      &        'SEAICEuseLSR       =', SEAICEuseLSR
                0114          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0115      &                       SQUEEZE_RIGHT, myThid )
6b07e0a584 Jean*0116        ENDIF
                0117        IF ( SEAICEuseDYNAMICSswitchInAd ) THEN
                0118          WRITE(msgBuf,'(2A,L5)') 'S/R ADAUTODIFF_INADMODE_UNSET: ',
                0119      &        'SEAICEuseDYNAMICS =', SEAICEuseDYNAMICS
                0120          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0121      &                       SQUEEZE_RIGHT, myThid )
                0122        ENDIF
a661e4ae05 Gael*0123        IF ( SEAICEapproxLevInAd.NE.0 ) THEN
                0124          WRITE(msgBuf,'(2A,I2)') 'S/R ADAUTODIFF_INADMODE_UNSET: ',
                0125      &        'SEAICEadjMODE =', SEAICEadjMODE
                0126          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0127      &                       SQUEEZE_RIGHT, myThid )
                0128        ENDIF
6b07e0a584 Jean*0129 #endif /* ALLOW_SEAICE */
e6026aeb57 Patr*0130 
8cbe658cd1 Jean*0131       ENDIF
562c7efd9e Mart*0132 
5127d1d91b Jean*0133       RETURN
                0134       END