New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 15803 – NEMO

Changeset 15803


Ignore:
Timestamp:
2022-04-26T14:32:50+02:00 (2 years ago)
Author:
annkeen
Message:

Change default ice_cvg.nc output to be mean rather than maximum

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  
    10681068      REAL(wp)          ::   zresm           ! local real  
    10691069      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 
    10711074      !!---------------------------------------------------------------------- 
     1075      ll_maxcvg = .FALSE. 
    10721076 
    10731077      ! create file 
     
    10931097      ! time 
    10941098      it = ( kt - nit000 ) * kitermax + kiter 
    1095        
    1096       ! convergence 
     1099 
     1100     ! convergence 
    10971101      IF( kiter == 1 ) THEN ! remove the first iteration for calculations of convergence (always very large) 
    10981102         zresm = 0._wp 
    10991103      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), & 
    11031109                  &               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 
    11091129 
    11101130      IF( lwm ) THEN 
     
    11161136       
    11171137   END SUBROUTINE rhg_cvg_eap 
    1118  
    11191138 
    11201139   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  
    985985      REAL(wp)          ::   zresm           ! local real  
    986986      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 
    988991      !!---------------------------------------------------------------------- 
     992      ll_maxcvg = .FALSE. 
    989993 
    990994      ! create file 
     
    10151019         zresm = 0._wp 
    10161020      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), & 
    10201026                  &               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 
    10251044      ENDIF 
    10261045 
Note: See TracChangeset for help on using the changeset viewer.