** Warning **
Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle dbname=MITgcm at /usr/local/share/lxr/lib/LXR/Common.pm line 1224.
Last-Modified: Wed, 14 May 2024 05:11:28 GMT
Content-Type: text/html; charset=utf-8
MITgcm/MITgcm/pkg/seaice/seaice_diffusion.F
File indexing completed on 2021-06-27 05:11:48 UTC
view on github raw file Latest commit 4e4ad91a on 2021-06-26 16:30:07 UTC
f12f84b0ce Jean* 0001 #include "SEAICE_OPTIONS.h "
0002
0003
0004
0005
0006 SUBROUTINE SEAICE_DIFFUSION (
0007 I tracerIdentity ,
6d78fc5463 Gael* 0008 I diffKh , fac ,
f12f84b0ce Jean* 0009 I iceFld , iceMask , xA , yA ,
0010 U gFld ,
0011 I bi , bj , myTime , myIter , myThid )
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 IMPLICIT NONE
0022
0023
0024 #include "SIZE.h "
0025 #include "EEPARAMS.h "
0026 #include "PARAMS.h "
0027 #include "GRID.h "
7303eab4f2 Patr* 0028 #include "SEAICE_SIZE.h "
f12f84b0ce Jean* 0029 #include "SEAICE_PARAMS.h "
0030
0031
0032
0033
0034
0035
0036
0037 _RL iceFld (1-OLx :sNx +OLx ,1-OLy :sNy +OLy )
0038 _RL gFld (1-OLx :sNx +OLx ,1-OLy :sNy +OLy )
0039 _RL iceMask (1-OLx :sNx +OLx ,1-OLy :sNy +OLy ,nSx ,nSy )
0040 _RS xA (1-OLx :sNx +OLx ,1-OLy :sNy +OLy )
0041 _RS yA (1-OLx :sNx +OLx ,1-OLy :sNy +OLy )
6d78fc5463 Gael* 0042 _RL diffKh , fac
f12f84b0ce Jean* 0043 INTEGER tracerIdentity
0044 INTEGER bi ,bj
0045 _RL myTime
0046 INTEGER myIter
0047 INTEGER myThid
e0fa1cecbf Mart* 0048 #ifdef ALLOW_GENERIC_ADVDIFF
37de51ebf5 Mart* 0049 #ifdef ALLOW_DIAGNOSTICS
0050 CHARACTER *8 diagName
0051 CHARACTER *4 SEAICE_DIAG_SUFX , diagSufx
0052 EXTERNAL SEAICE_DIAG_SUFX
0053 #endif
f12f84b0ce Jean* 0054
0055
0056
0057
0058
0059 INTEGER i , j , k
0060 _RL fZon (1-OLx :sNx +OLx ,1-OLy :sNy +OLy )
0061 _RL fMer (1-OLx :sNx +OLx ,1-OLy :sNy +OLy )
0062
6d78fc5463 Gael* 0063 IF ( diffKh .GT. 0. _d 0 ) THEN
37de51ebf5 Mart* 0064 #ifdef ALLOW_DIAGNOSTICS
0065
0066 IF ( useDiagnostics ) THEN
0067 diagSufx = SEAICE_DIAG_SUFX ( tracerIdentity , myThid )
0068 ENDIF
0069 #endif
f12f84b0ce Jean* 0070
0071 k = 1
4e4ad91a39 Jean* 0072 DO j =1-OLy ,sNy +OLy
0073 DO i =1-OLx ,sNx +OLx
f12f84b0ce Jean* 0074 fZon (i ,j ) = 0. _d 0
0075 fMer (i ,j ) = 0. _d 0
0076 ENDDO
0077 ENDDO
0078
6d78fc5463 Gael* 0079 CALL GAD_DIFF_X (bi ,bj ,k ,xA ,diffKh ,iceFld ,fZon ,myThid )
f12f84b0ce Jean* 0080
6d78fc5463 Gael* 0081 CALL GAD_DIFF_Y (bi ,bj ,k ,yA ,diffKh ,iceFld ,fMer ,myThid )
f12f84b0ce Jean* 0082
4e4ad91a39 Jean* 0083 DO j =1-OLy ,sNy +OLy -1
0084 DO i =1-OLx ,sNx +OLx -1
f12f84b0ce Jean* 0085 gFld (i ,j )= gFld (i ,j )
6d78fc5463 Gael* 0086 & - fac *iceMask (i ,j ,bi ,bj )*recip_rA (i ,j ,bi ,bj )
f12f84b0ce Jean* 0087 & *( (fZon (i +1,j )-fZon (i ,j ))
0088 & + (fMer (i ,j +1)-fMer (i ,j )) )
0089 ENDDO
0090 ENDDO
37de51ebf5 Mart* 0091 #ifdef ALLOW_DIAGNOSTICS
0092
0093
6d78fc5463 Gael* 0094 IF ( useDiagnostics .AND. diffKh .NE. 0. ) THEN
37de51ebf5 Mart* 0095 diagName = 'DFxE' //diagSufx
0096 CALL DIAGNOSTICS_FILL (fZon ,diagName , k ,1, 2,bi ,bj , myThid )
0097 diagName = 'DFyE' //diagSufx
0098 CALL DIAGNOSTICS_FILL (fMer ,diagName , k ,1, 2,bi ,bj , myThid )
0099 ENDIF
0100 #endif
f12f84b0ce Jean* 0101
0102 ENDIF
e0fa1cecbf Mart* 0103 #endif /* ALLOW_GENERIC_ADVDIFF */
f12f84b0ce Jean* 0104
0105 RETURN
0106 END