Changeset 15803 for NEMO/branches/UKMO/NEMO_4.0.4_EAP_rheology_fix/src/ICE
- Timestamp:
- 2022-04-26T14:32:50+02:00 (2 years ago)
- Location:
- NEMO/branches/UKMO/NEMO_4.0.4_EAP_rheology_fix/src/ICE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.4_EAP_rheology_fix/src/ICE/icedyn_rhg_eap.F90
r15743 r15803 1068 1068 REAL(wp) :: zresm ! local real 1069 1069 CHARACTER(len=20) :: clname 1070 REAL(wp), DIMENSION(jpi,jpj) :: zres ! check convergence 1070 LOGICAL :: ll_maxcvg 1071 REAL(wp), DIMENSION(jpi,jpj) :: zres1 ! check convergence 1072 REAL(wp), DIMENSION(jpi,jpj) :: zres2 ! check convergence 1073 REAL(wp), DIMENSION(2) :: ztmp 1071 1074 !!---------------------------------------------------------------------- 1075 ll_maxcvg = .FALSE. 1072 1076 1073 1077 ! create file … … 1093 1097 ! time 1094 1098 it = ( kt - nit000 ) * kitermax + kiter 1095 1096 1099 1100 ! convergence 1097 1101 IF( kiter == 1 ) THEN ! remove the first iteration for calculations of convergence (always very large) 1098 1102 zresm = 0._wp 1099 1103 ELSE 1100 DO jj = 1, jpj 1101 DO ji = 1, jpi 1102 zres(ji,jj) = MAX( ABS( pu(ji,jj) - pub(ji,jj) ) * umask(ji,jj,1), & 1104 zresm = 0._wp 1105 IF( ll_maxcvg ) THEN ! error max over the domain 1106 DO jj = 1, jpj 1107 DO ji = 1, jpi 1108 zres1(ji,jj) = MAX( ABS( pu(ji,jj) - pub(ji,jj) ) * umask(ji,jj,1), & 1103 1109 & ABS( pv(ji,jj) - pvb(ji,jj) ) * vmask(ji,jj,1) ) * zmsk15(ji,jj) 1104 END DO 1105 END DO 1106 zresm = MAXVAL( zres ) 1107 CALL mpp_max( 'icedyn_rhg_evp', zresm ) ! max over the global domain 1108 ENDIF 1110 zres2(ji,jj) = 0._wp 1111 END DO 1112 END DO 1113 zresm = MAXVAL( zres1 ) 1114 CALL mpp_max( 'icedyn_rhg_evp', zresm ) ! max over the global domain 1115 ELSE ! error averaged over the domain 1116 DO jj = 1, jpj 1117 DO ji = 1, jpi 1118 zres1(ji,jj) = MAX( ABS( pu(ji,jj) - pub(ji,jj) ) * umask(ji,jj,1), & 1119 & ABS( pv(ji,jj) - pvb(ji,jj) ) * vmask(ji,jj,1) ) * zmsk15(ji,jj) 1120 zres2(ji,jj) = zmsk15(ji,jj) 1121 END DO 1122 END DO 1123 ztmp(1) = glob_sum( 'icedyn_rhg_evp', zres1 ) 1124 ztmp(2) = glob_sum( 'icedyn_rhg_evp', zres2 ) 1125 IF( ztmp(2) /= 0._wp ) zresm = ztmp(1) / ztmp(2) 1126 ENDIF 1127 ENDIF 1128 1109 1129 1110 1130 IF( lwm ) THEN … … 1116 1136 1117 1137 END SUBROUTINE rhg_cvg_eap 1118 1119 1138 1120 1139 SUBROUTINE update_stress_rdg( ksub, kndte, pdivu, ptension, pshear, pa11, pa12, & -
NEMO/branches/UKMO/NEMO_4.0.4_EAP_rheology_fix/src/ICE/icedyn_rhg_evp.F90
r15742 r15803 985 985 REAL(wp) :: zresm ! local real 986 986 CHARACTER(len=20) :: clname 987 REAL(wp), DIMENSION(jpi,jpj) :: zres ! check convergence 987 LOGICAL :: ll_maxcvg 988 REAL(wp), DIMENSION(jpi,jpj) :: zres1 ! check convergence 989 REAL(wp), DIMENSION(jpi,jpj) :: zres2 ! check convergence 990 REAL(wp), DIMENSION(2) :: ztmp 988 991 !!---------------------------------------------------------------------- 992 ll_maxcvg = .FALSE. 989 993 990 994 ! create file … … 1015 1019 zresm = 0._wp 1016 1020 ELSE 1017 DO jj = 1, jpj 1018 DO ji = 1, jpi 1019 zres(ji,jj) = MAX( ABS( pu(ji,jj) - pub(ji,jj) ) * umask(ji,jj,1), & 1021 zresm = 0._wp 1022 IF( ll_maxcvg ) THEN ! error max over the domain 1023 DO jj = 1, jpj 1024 DO ji = 1, jpi 1025 zres1(ji,jj) = MAX( ABS( pu(ji,jj) - pub(ji,jj) ) * umask(ji,jj,1), & 1020 1026 & ABS( pv(ji,jj) - pvb(ji,jj) ) * vmask(ji,jj,1) ) * zmsk15(ji,jj) 1021 END DO 1022 END DO 1023 zresm = MAXVAL( zres ) 1024 CALL mpp_max( 'icedyn_rhg_evp', zresm ) ! max over the global domain 1027 zres2(ji,jj) = 0._wp 1028 END DO 1029 END DO 1030 zresm = MAXVAL( zres1 ) 1031 CALL mpp_max( 'icedyn_rhg_evp', zresm ) ! max over the global domain 1032 ELSE ! error averaged over the domain 1033 DO jj = 1, jpj 1034 DO ji = 1, jpi 1035 zres1(ji,jj) = MAX( ABS( pu(ji,jj) - pub(ji,jj) ) * umask(ji,jj,1), & 1036 & ABS( pv(ji,jj) - pvb(ji,jj) ) * vmask(ji,jj,1) ) * zmsk15(ji,jj) 1037 zres2(ji,jj) = zmsk15(ji,jj) 1038 END DO 1039 END DO 1040 ztmp(1) = glob_sum( 'icedyn_rhg_evp', zres1 ) 1041 ztmp(2) = glob_sum( 'icedyn_rhg_evp', zres2 ) 1042 IF( ztmp(2) /= 0._wp ) zresm = ztmp(1) / ztmp(2) 1043 ENDIF 1025 1044 ENDIF 1026 1045
Note: See TracChangeset
for help on using the changeset viewer.