Back to home page

MITgcm

 
 

    


File indexing completed on 2023-09-21 05:10:52 UTC

view on githubraw file Latest commit 96b00645 on 2023-09-20 15:15:14 UTC
95afe7199b Dani*0001 #include "STREAMICE_OPTIONS.h"
                0002 #ifdef ALLOW_AUTODIFF
                0003 # include "AUTODIFF_OPTIONS.h"
                0004 #endif
                0005 
                0006 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0007 
                0008 CBOP
4e4ad91a39 Jean*0009       SUBROUTINE STREAMICE_VEL_PHI (
                0010      I           myThid,
                0011      I           maxNLIter,
                0012      I           maxCGiter,
                0013      I           cgtol,
351fd6b6a4 Dani*0014      O           cg_iters,
                0015      O           max_err)
95afe7199b Dani*0016 C     /============================================================\
                0017 C     | SUBROUTINE                                                 |
                0018 C     | o                                                          |
                0019 C     |============================================================|
                0020 C     |                                                            |
                0021 C     \============================================================/
                0022       IMPLICIT NONE
                0023 
                0024 C     === Global variables ===
                0025 #include "SIZE.h"
                0026 #include "EEPARAMS.h"
                0027 #include "PARAMS.h"
                0028 #include "STREAMICE.h"
                0029 #include "STREAMICE_CG.h"
96b006450c dngo*0030 c#ifdef ALLOW_PETSC
                0031 c#include "finclude/petsc.h"
                0032 c#endif
95afe7199b Dani*0033 
                0034 C     !INPUT/OUTPUT ARGUMENTS
                0035       INTEGER myThid
                0036       INTEGER maxNLIter
                0037       INTEGER maxCGIter
                0038       _RL cgtol
                0039       INTEGER cg_iters
351fd6b6a4 Dani*0040       _RL max_err
95afe7199b Dani*0041 
4e4ad91a39 Jean*0042 #ifdef ALLOW_STREAMICE_OAD_FP
95afe7199b Dani*0043 
                0044 C     LOCAL VARIABLES
                0045 
96b006450c dngo*0046       INTEGER i,j,bi,bj
95afe7199b Dani*0047       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0048 
351fd6b6a4 Dani*0049       _EXCH_XY_RL( U_streamice , myThid )
                0050       _EXCH_XY_RL( V_streamice , myThid )
                0051 
95afe7199b Dani*0052 #ifdef STREAMICE_HYBRID_STRESS
                0053        CALL STREAMICE_VISC_BETA_HYBRID ( myThid )
                0054 #else
                0055        CALL STREAMICE_VISC_BETA ( myThid )
                0056 #endif
                0057 
                0058       _EXCH_XY_RL( tau_beta_eff_streamice , myThid )
                0059       _EXCH_XY_RL( visc_streamice , myThid )
                0060 
351fd6b6a4 Dani*0061        CALL STREAMICE_GET_VEL_RESID_ERR_OAD (max_err,myThid)
                0062 
95afe7199b Dani*0063        DO bj = myByLo(myThid), myByHi(myThid)
                0064         DO bi = myBxLo(myThid), myBxHi(myThid)
                0065          DO j=1-OLy,sNy+OLy
                0066           DO i=1-OLx,sNx+OLx
                0067            u_new_SI(i,j,bi,bj) = U_streamice(i,j,bi,bj)
4e4ad91a39 Jean*0068            v_new_SI(i,j,bi,bj) = V_streamice(i,j,bi,bj)
95afe7199b Dani*0069           ENDDO
                0070          ENDDO
                0071         ENDDO
                0072        ENDDO
                0073 
                0074        CALL STREAMICE_CG_WRAPPER(
                0075      &       U_new_si,
                0076      &       V_new_si,
                0077      &       taudx_SI,
                0078      &       taudy_SI,
                0079      &       cgtol,
                0080      &       cg_iters,
                0081      &       maxCGIter,
                0082      &       myThid )
                0083 
                0084 #ifdef STREAMICE_HYBRID_STRESS
                0085         CALL STREAMICE_TAUB (myThid)
                0086 #endif
                0087 
4e4ad91a39 Jean*0088 #endif /* ALLOW_STREAMICE_OAD_FP */
95afe7199b Dani*0089       RETURN
                0090       END