** 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, 22 Sep 2026 05:15:09 GMT
Content-Type: text/html; charset=utf-8
MITgcm/MITgcm/pkg/monitor/mon_calc_advcfl.F
File indexing completed on 2018-03-02 18:42:19 UTC
view on github raw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
dd92b9a824 Jean* 0001 #include "MONITOR_OPTIONS.h "
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 SUBROUTINE MON_CALC_ADVCFL_TILE (
0014 I myNr , bi , bj ,
0015 I uFld , vFld , wFld , dT_lev ,
0016 O maxCFL ,
0017 I myIter , myThid )
0018
0019
0020
0021
0022
0023 IMPLICIT NONE
0024 #include "SIZE.h "
0025 #include "EEPARAMS.h "
0026 #include "PARAMS.h "
0027 #include "GRID.h "
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041 INTEGER myNr , bi , bj
0042 _RL uFld (1-OLx :sNx +OLx ,1-OLy :sNy +OLy ,myNr )
0043 _RL vFld (1-OLx :sNx +OLx ,1-OLy :sNy +OLy ,myNr )
0044 _RL wFld (1-OLx :sNx +OLx ,1-OLy :sNy +OLy ,myNr )
0045 _RL dT_lev (myNr )
0046 _RL maxCFL (3)
0047 INTEGER myIter , myThid
0048
0049
0050
0051 INTEGER i ,j ,k
9d10313027 Jean* 0052 _RL uTrans (1-OLx :sNx +OLx ,1-OLy :sNy +OLy )
0053 _RL vTrans (1-OLx :sNx +OLx ,1-OLy :sNy +OLy )
0054 _RL rTrans (1-OLx :sNx +OLx ,1-OLy :sNy +OLy )
0055 _RL rTransKp1 , tmpVal , recVol_dT
dd92b9a824 Jean* 0056
0057
0058
0059 maxCFL (1) = 0.
0060 maxCFL (2) = 0.
0061 maxCFL (3) = 0.
0062
9d10313027 Jean* 0063 DO j =1-OLy ,sNy +OLy
0064 DO i =1-OLx ,sNx +OLx
0065 rTrans (i ,j ) = 0.
dd92b9a824 Jean* 0066 ENDDO
0067 ENDDO
0068
0069 DO k =myNr ,1,-1
0070
0071
0072
0073 DO j =1,sNy +1
0074 DO i =1,sNx +1
0075 uTrans (i ,j ) = uFld (i ,j ,k )*dyG (i ,j ,bi ,bj )*deepFacC (k )
0076 & *hFacW (i ,j ,k ,bi ,bj )
0077 vTrans (i ,j ) = vFld (i ,j ,k )*dxG (i ,j ,bi ,bj )*deepFacC (k )
0078 & *hFacS (i ,j ,k ,bi ,bj )
0079 ENDDO
0080 ENDDO
0081 DO j =1,sNy
0082 DO i =1,sNx
0083 recVol_dT = dT_lev (k )
0084 & *recip_rA (i ,j ,bi ,bj )*recip_deepFac2C (k )
0085 & *recip_hFacC (i ,j ,k ,bi ,bj )
0086 tmpVal = (
0087 & + MAX( uTrans (i +1,j ), zeroRL )
0088 & - MIN( uTrans ( i ,j ), zeroRL )
0089 & )*recVol_dT
0090 maxCFL (1) = MAX( maxCFL (1), tmpVal )
0091 tmpVal = (
0092 & + MAX( vTrans (i ,j +1), zeroRL )
0093 & - MIN( vTrans (i , j ), zeroRL )
0094 & )*recVol_dT
0095 maxCFL (2) = MAX( maxCFL (2), tmpVal )
0096 ENDDO
0097 ENDDO
0098
0099
0100
0101 DO j =1,sNy
0102 DO i =1,sNx
9d10313027 Jean* 0103 rTransKp1 = rTrans (i ,j )
dd92b9a824 Jean* 0104 rTrans (i ,j ) = wFld (i ,j ,k )
0105 & *deepFac2F (k )*rhoFacF (k )
0106 recVol_dT = dT_lev (k )
0107 & *recip_deepFac2C (k )*recip_rhoFacC (k )
0108 & *recip_drF (k )*recip_hFacC (i ,j ,k ,bi ,bj )
0109 tmpVal = (
0110 & + MAX( rTrans (i ,j ), zeroRL )
9d10313027 Jean* 0111 & - MIN( rTransKp1 , zeroRL )
dd92b9a824 Jean* 0112 & )*recVol_dT
0113 maxCFL (3) = MAX( maxCFL (3), tmpVal )
0114 ENDDO
0115 ENDDO
0116
0117 ENDDO
0118
0119 RETURN
0120 END
0121
0122
0123
0124
0125
0126
0127 SUBROUTINE MON_CALC_ADVCFL_GLOB (
0128 I maxCFL , myIter , myThid )
0129
0130
0131
0132
0133
0134
0135 IMPLICIT NONE
0136 #include "SIZE.h "
0137 #include "EEPARAMS.h "
0138 #include "PARAMS.h "
0139 #include "MONITOR.h "
0140
0141
0142
0143
0144
0145 _RL maxCFL (3,nSx ,nSy )
0146 INTEGER myIter
0147 INTEGER myThid
0148
0149
0150
0151 INTEGER bi , bj
0152 _RL uCFL , vCFL , wCFL
0153
0154 uCFL = 0.
0155 vCFL = 0.
0156 wCFL = 0.
0157 DO bj =myByLo (myThid ),myByHi (myThid )
0158 DO bi =myBxLo (myThid ),myBxHi (myThid )
0159 uCFL = MAX( uCFL , maxCFL (1,bi ,bj ) )
0160 vCFL = MAX( vCFL , maxCFL (2,bi ,bj ) )
0161 wCFL = MAX( wCFL , maxCFL (3,bi ,bj ) )
0162 ENDDO
0163 ENDDO
0164 _GLOBAL_MAX_RL ( uCFL , myThid )
0165 _GLOBAL_MAX_RL ( vCFL , myThid )
0166 _GLOBAL_MAX_RL ( wCFL , myThid )
0167
0168
0169 _BEGIN_MASTER (myThid )
0170 mon_trAdvCFL (1) = uCFL
0171 mon_trAdvCFL (2) = vCFL
0172 mon_trAdvCFL (3) = wCFL
0173 _END_MASTER (myThid )
0174
0175 RETURN
0176 END