Back to home page

MITgcm

 
 

    


File indexing completed on 2024-03-02 06:10:49 UTC

view on githubraw file Latest commit 5cf43646 on 2024-03-01 18:50:49 UTC
5dddee4ea2 Jean*0001 #include "PACKAGES_CONFIG.h"
                0002 #include "CPP_OPTIONS.h"
06d6a67f19 Jean*0003 c#ifdef ALLOW_AUTODIFF
                0004 c# include "AUTODIFF_OPTIONS.h"
                0005 c#endif
                0006 #ifdef ALLOW_COST
                0007 # include "COST_OPTIONS.h"
                0008 #endif
                0009 #ifdef ALLOW_CTRL
                0010 # include "CTRL_OPTIONS.h"
                0011 #endif
5dddee4ea2 Jean*0012 #ifdef ALLOW_OBCS
                0013 # include "OBCS_OPTIONS.h"
                0014 #endif
                0015 #ifdef ALLOW_SEAICE
                0016 # include "SEAICE_OPTIONS.h"
                0017 #endif
                0018 #ifdef ALLOW_GMREDI
                0019 # include "GMREDI_OPTIONS.h"
                0020 #endif
                0021 
                0022 C start with a copy of THE_MAIN_LOOP
                0023 C and remove some the obvious extras
df5a9764ba Jean*0024       SUBROUTINE openad_dumpAdjoint( myTime, myIter, myThid )
5dddee4ea2 Jean*0025       IMPLICIT NONE
                0026 
                0027 C     == Global variables ==
                0028 #include "SIZE.h"
                0029 #include "EEPARAMS.h"
                0030 #include "PARAMS.h"
                0031 
                0032 c**************************************
06d6a67f19 Jean*0033 #ifdef ALLOW_AUTODIFF
5dddee4ea2 Jean*0034 
06d6a67f19 Jean*0035 c These includes are needed for
                0036 c AD-checkpointing.
5dddee4ea2 Jean*0037 c They provide the fields to be stored.
                0038 
                0039 # include "GRID.h"
                0040 # include "DYNVARS.h"
                0041 # include "FFIELDS.h"
                0042 # include "EOS.h"
34fc5a02fa Jean*0043 # ifdef ALLOW_GENERIC_ADVDIFF
040d52ffad Patr*0044 #  include "GAD.h"
                0045 # endif
5dddee4ea2 Jean*0046 # ifdef ALLOW_CD_CODE
                0047 #  include "CD_CODE_VARS.h"
                0048 # endif
                0049 # ifdef ALLOW_PTRACERS
                0050 #  include "PTRACERS_SIZE.h"
5cbd023dd9 Oliv*0051 #  include "PTRACERS_FIELDS.h"
5dddee4ea2 Jean*0052 # endif
                0053 # ifdef EXACT_CONSERV
                0054 #  include "SURFACE.h"
                0055 # endif
                0056 # ifdef ALLOW_OBCS
8ba5c8baed Jean*0057 #  include "OBCS_PARAMS.h"
                0058 #  include "OBCS_GRID.h"
                0059 #  include "OBCS_FIELDS.h"
                0060 #  include "OBCS_SEAICE.h"
5dddee4ea2 Jean*0061 # endif
                0062 # ifdef ALLOW_EXF
                0063 #  include "EXF_FIELDS.h"
                0064 #  include "EXF_PARAM.h"
                0065 #  ifdef ALLOW_BULKFORMULAE
                0066 #   include "EXF_CONSTANTS.h"
                0067 #  endif
                0068 # endif /* ALLOW_EXF */
                0069 # ifdef ALLOW_SEAICE
                0070 #  include "SEAICE.h"
                0071 # endif
                0072 # ifdef ALLOW_EBM
                0073 #  include "EBM.h"
                0074 # endif
                0075 # ifdef ALLOW_KPP
                0076 #  include "KPP.h"
c53c505981 Oliv*0077 #  include "KPP_TAVE.h"
5dddee4ea2 Jean*0078 #  include "KPP_PARAMS.h"
                0079 # endif
                0080 
5cf4364659 Mart*0081 # include "CTRL_SIZE.h"
4d72283393 Mart*0082 # include "CTRL.h"
edcd27be69 Mart*0083 # include "CTRL_DUMMY.h"
5dddee4ea2 Jean*0084 # include "cost.h"
                0085 
06d6a67f19 Jean*0086 #endif /* ALLOW_AUTODIFF */
5dddee4ea2 Jean*0087 
                0088       _RL     myTime
df5a9764ba Jean*0089       INTEGER myIter
                0090       INTEGER myThid
5dddee4ea2 Jean*0091 
df5a9764ba Jean*0092       _RL     foo4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0093       _RL     foo5(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
5dddee4ea2 Jean*0094       CHARACTER*(10) suff
8ba5c8baed Jean*0095 
df5a9764ba Jean*0096       IF ( MOD(myIter,360).EQ.0 ) THEN
                0097          IF ( rwSuffixType.EQ.0 ) THEN
                0098            WRITE(suff,'(I10.10)') myIter
                0099          ELSE
                0100            CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid )
                0101          ENDIF
38cef93f67 Jean*0102 # ifndef ALLOW_STREAMICE
5dddee4ea2 Jean*0103          foo5=theta%d
06d6a67f19 Jean*0104          call write_fld_xyz_rl('adjtheta.',suff,foo5,myIter,1)
5dddee4ea2 Jean*0105          foo5=salt%d
06d6a67f19 Jean*0106          call write_fld_xyz_rl('adjsalt.',suff,foo5,myIter,1)
5dddee4ea2 Jean*0107          foo5=uvel%d
06d6a67f19 Jean*0108          call write_fld_xyz_rl('adjuvel.',suff,foo5,myIter,1)
5dddee4ea2 Jean*0109          foo5=vvel%d
06d6a67f19 Jean*0110          call write_fld_xyz_rl('adjvvel.',suff,foo5,myIter,1)
5dddee4ea2 Jean*0111          foo5=wvel%d
06d6a67f19 Jean*0112          call write_fld_xyz_rl('adjwvel.',suff,foo5,myIter,1)
5dddee4ea2 Jean*0113          foo4=etan%d
06d6a67f19 Jean*0114          call write_fld_xy_rl('adjetan.',suff,foo4,myIter,1)
38cef93f67 Jean*0115 # endif
5dddee4ea2 Jean*0116 # ifdef ALLOW_DIFFKR_CONTROL
                0117          foo5=diffkr%d
06d6a67f19 Jean*0118          call write_fld_xy_rl('adjdiffkr.',suff,foo5,myIter,1)
5dddee4ea2 Jean*0119 # endif
df5a9764ba Jean*0120       ENDIF
5dddee4ea2 Jean*0121 
df5a9764ba Jean*0122       RETURN
                0123       END