Changeset 14129 for NEMO/branches
- Timestamp:
- 2020-12-08T11:30:38+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/r14118_ticket2377
- Files:
-
- 4 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/r14118_ticket2377/src/NST/agrif_ice_interp.F90
r14086 r14129 69 69 Agrif_UseSpecialValue = .FALSE. 70 70 ! lbc ???? 71 ! JC: do we really need the 3 lines below ?71 ! 72 72 CALL ice_var_glo2eqv 73 CALL ice_var_zapsmall 74 CALL ice_var_agg(2) 75 76 ! Melt ponds 77 WHERE( a_i > epsi10 ) 78 a_ip_frac(:,:,:) = a_ip(:,:,:) / a_i(:,:,:) 79 ELSEWHERE 80 a_ip_frac(:,:,:) = 0._wp 81 END WHERE 82 WHERE( a_ip > 0._wp ) ! ??????? 83 h_ip(:,:,:) = v_ip(:,:,:) / a_ip(:,:,:) 84 ELSEWHERE 85 h_ip(:,:,:) = 0._wp 86 END WHERE 87 88 tn_ice(:,:,:) = t_su(:,:,:) 89 t1_ice(:,:,:) = t_i (:,:,1,:) 90 73 ! 91 74 END SUBROUTINE agrif_istate_ice 92 75 -
NEMO/branches/2020/r14118_ticket2377/src/NST/agrif_oce_interp.F90
r14086 r14129 651 651 IF( ll_int_cons ) THEN ! Conservative interpolation 652 652 IF ( lk_tint2d_notinterp ) THEN 653 Agrif_UseSpecialValue = .FALSE. 653 654 CALL Agrif_Bc_variable( ub2b_interp_id, calledweight=1._wp, procname=interpub2b_const ) 654 655 CALL Agrif_Bc_variable( vb2b_interp_id, calledweight=1._wp, procname=interpvb2b_const ) 655 656 ! Divergence conserving correction terms: 656 CALL Agrif_Bc_variable( ub2b_cor_id, calledweight=1._wp, procname=ub2b_cor )657 CALL Agrif_Bc_variable( vb2b_cor_id, calledweight=1._wp, procname=vb2b_cor )657 IF ( Agrif_Rhox()>1 ) CALL Agrif_Bc_variable( ub2b_cor_id, calledweight=1._wp, procname=ub2b_cor ) 658 IF ( Agrif_Rhoy()>1 ) CALL Agrif_Bc_variable( vb2b_cor_id, calledweight=1._wp, procname=vb2b_cor ) 658 659 ELSE 659 660 ! order matters here !!!!!! … … 1438 1439 ptab(:,:) = 0._wp 1439 1440 DO ji=i1+1,i2-1 1440 DO jj=j1+1,j2 1441 DO jj=j1+1,j2-1 1441 1442 ptab(ji,jj) = 0.25_wp*( ( vb2_b(ji+1,jj )*e1v(ji+1,jj ) & 1442 1443 & -vb2_b(ji-1,jj )*e1v(ji-1,jj ) ) & … … 1542 1543 ptab(:,:) = 0._wp 1543 1544 DO ji=i1+1,i2-1 1544 DO jj=j1+1,j2 1545 DO jj=j1+1,j2-1 1545 1546 ptab(ji,jj) = 0.25_wp*( ( ub2_b(ji ,jj+1)*e2u(ji ,jj+1) & 1546 1547 & -ub2_b(ji ,jj-1)*e2u(ji ,jj-1) ) & -
NEMO/branches/2020/r14118_ticket2377/src/OCE/DOM/domain.F90
r14090 r14129 34 34 #endif 35 35 USE sshwzv , ONLY : ssh_init_rst ! set initial ssh 36 #if defined key_agrif 37 USE agrif_oce_interp, ONLY : Agrif_istate_ssh ! ssh interpolated from parent 38 #endif 36 39 USE sbc_oce ! surface boundary condition: ocean 37 40 USE trc_oce ! shared ocean & passive tracers variab … … 178 181 ! != ssh initialization 179 182 IF( .NOT.l_offline .AND. .NOT.l_SAS ) THEN 180 CALL ssh_init_rst( Kbb, Kmm, Kaa ) 183 #if defined key_agrif 184 IF ( .NOT.Agrif_root().AND.(ln_init_chfrpar) ) THEN 185 ! Interpolate initial ssh from parent: 186 CALL Agrif_istate_ssh( Kbb, Kmm ) 187 ELSE 188 #endif 189 CALL ssh_init_rst( Kbb, Kmm, Kaa ) 190 #if defined key_agrif 191 ENDIF 192 #endif 181 193 ELSE 182 194 ssh(:,:,:) = 0._wp -
NEMO/branches/2020/r14118_ticket2377/src/OCE/DOM/domvvl.F90
r14086 r14129 2 2 !!====================================================================== 3 3 !! *** MODULE domvvl *** 4 !! Ocean : 4 !! Ocean : 5 5 !!====================================================================== 6 6 !! History : 2.0 ! 2006-06 (B. Levier, L. Marie) original code … … 26 26 USE timing ! Timing 27 27 28 #if defined key_agrif29 USE agrif_oce ! initial state interpolation30 USE agrif_oce_interp31 #endif32 33 28 IMPLICIT NONE 34 29 PRIVATE … … 63 58 !! Default key Old management of time varying vertical coordinate 64 59 !!---------------------------------------------------------------------- 65 60 66 61 !!---------------------------------------------------------------------- 67 62 !! dom_vvl_init : define initial vertical scale factors, depths and column thickness … … 78 73 PUBLIC dom_vvl_sf_update ! called by step.F90 79 74 PUBLIC dom_vvl_interpol ! called by dynnxt.F90 80 75 81 76 !! * Substitutions 82 77 # include "do_loop_substitute.h90" … … 114 109 !!---------------------------------------------------------------------- 115 110 !! *** ROUTINE dom_vvl_init *** 116 !! 111 !! 117 112 !! ** Purpose : Initialization of all scale factors, depths 118 113 !! and water column heights … … 123 118 !! ** Action : - e3t_(n/b) and tilde_e3t_(n/b) 124 119 !! - Regrid: e3[u/v](:,:,:,Kmm) 125 !! e3[u/v](:,:,:,Kmm) 126 !! e3w(:,:,:,Kmm) 120 !! e3[u/v](:,:,:,Kmm) 121 !! e3w(:,:,:,Kmm) 127 122 !! e3[u/v]w_b 128 !! e3[u/v]w_n 123 !! e3[u/v]w_n 129 124 !! gdept(:,:,:,Kmm), gdepw(:,:,:,Kmm) and gde3w 130 125 !! - h(t/u/v)_0 … … 156 151 !!---------------------------------------------------------------------- 157 152 !! *** ROUTINE dom_vvl_init *** 158 !! 159 !! ** Purpose : Interpolation of all scale factors, 153 !! 154 !! ** Purpose : Interpolation of all scale factors, 160 155 !! depths and water column heights 161 156 !! … … 164 159 !! ** Action : - e3t_(n/b) and tilde_e3t_(n/b) 165 160 !! - Regrid: e3(u/v)_n 166 !! e3(u/v)_b 167 !! e3w_n 168 !! e3(u/v)w_b 169 !! e3(u/v)w_n 161 !! e3(u/v)_b 162 !! e3w_n 163 !! e3(u/v)w_b 164 !! e3(u/v)w_n 170 165 !! gdept_n, gdepw_n and gde3w_n 171 166 !! - h(t/u/v)_0 … … 185 180 CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3u(:,:,:,Kbb), 'U' ) ! from T to U 186 181 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3u(:,:,:,Kmm), 'U' ) 187 CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3v(:,:,:,Kbb), 'V' ) ! from T to V 182 CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3v(:,:,:,Kbb), 'V' ) ! from T to V 188 183 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3v(:,:,:,Kmm), 'V' ) 189 184 CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3f(:,:,:), 'F' ) ! from U to F 190 ! ! Vertical interpolation of e3t,u,v 185 ! ! Vertical interpolation of e3t,u,v 191 186 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w (:,:,:,Kmm), 'W' ) ! from T to W 192 187 CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3w (:,:,:,Kbb), 'W' ) … … 210 205 ! zcoef = tmask - wmask ! 0 everywhere tmask = wmask, ie everywhere expect at jk = mikt 211 206 ! ! 1 everywhere from mbkt to mikt + 1 or 1 (if no isf) 212 ! ! 0.5 where jk = mikt 207 ! ! 0.5 where jk = mikt 213 208 !!gm ??????? BUG ? gdept(:,:,:,Kmm) as well as gde3w does not include the thickness of ISF ?? 214 209 zcoef = ( tmask(ji,jj,jk) - wmask(ji,jj,jk) ) 215 210 gdepw(ji,jj,jk,Kmm) = gdepw(ji,jj,jk-1,Kmm) + e3t(ji,jj,jk-1,Kmm) 216 211 gdept(ji,jj,jk,Kmm) = zcoef * ( gdepw(ji,jj,jk ,Kmm) + 0.5 * e3w(ji,jj,jk,Kmm)) & 217 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kmm) + e3w(ji,jj,jk,Kmm)) 212 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kmm) + e3w(ji,jj,jk,Kmm)) 218 213 gde3w(ji,jj,jk) = gdept(ji,jj,jk,Kmm) - ssh(ji,jj,Kmm) 219 214 gdepw(ji,jj,jk,Kbb) = gdepw(ji,jj,jk-1,Kbb) + e3t(ji,jj,jk-1,Kbb) 220 215 gdept(ji,jj,jk,Kbb) = zcoef * ( gdepw(ji,jj,jk ,Kbb) + 0.5 * e3w(ji,jj,jk,Kbb)) & 221 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kbb) + e3w(ji,jj,jk,Kbb)) 216 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kbb) + e3w(ji,jj,jk,Kbb)) 222 217 END_3D 223 218 ! … … 278 273 IF( cn_cfg == "orca" .OR. cn_cfg == "ORCA" ) THEN 279 274 IF( nn_cfg == 3 ) THEN ! ORCA2: Suppress ztilde in the Foxe Basin for ORCA2 280 ii0 = 103 + nn_hls - 1 ; ii1 = 111 + nn_hls - 1 275 ii0 = 103 + nn_hls - 1 ; ii1 = 111 + nn_hls - 1 281 276 ij0 = 128 + nn_hls ; ij1 = 135 + nn_hls 282 277 frq_rst_e3t( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.0_wp … … 290 285 291 286 292 SUBROUTINE dom_vvl_sf_nxt( kt, Kbb, Kmm, Kaa, kcall ) 287 SUBROUTINE dom_vvl_sf_nxt( kt, Kbb, Kmm, Kaa, kcall ) 293 288 !!---------------------------------------------------------------------- 294 289 !! *** ROUTINE dom_vvl_sf_nxt *** 295 !! 290 !! 296 291 !! ** Purpose : - compute the after scale factors used in tra_zdf, dynnxt, 297 292 !! tranxt and dynspg routines 298 293 !! 299 294 !! ** Method : - z_star case: Repartition of ssh INCREMENT proportionnaly to the level thickness. 300 !! - z_tilde_case: after scale factor increment = 295 !! - z_tilde_case: after scale factor increment = 301 296 !! high frequency part of horizontal divergence 302 297 !! + retsoring towards the background grid … … 306 301 !! 307 302 !! ** Action : - hdiv_lf : restoring towards full baroclinic divergence in z_tilde case 308 !! - tilde_e3t_a: after increment of vertical scale factor 303 !! - tilde_e3t_a: after increment of vertical scale factor 309 304 !! in z_tilde case 310 305 !! - e3(t/u/v)_a … … 410 405 un_td(ji,jj,jk) = rn_ahe3 * umask(ji,jj,jk) * e2_e1u(ji,jj) & 411 406 & * ( tilde_e3t_b(ji,jj,jk) - tilde_e3t_b(ji+1,jj ,jk) ) 412 vn_td(ji,jj,jk) = rn_ahe3 * vmask(ji,jj,jk) * e1_e2v(ji,jj) & 407 vn_td(ji,jj,jk) = rn_ahe3 * vmask(ji,jj,jk) * e1_e2v(ji,jj) & 413 408 & * ( tilde_e3t_b(ji,jj,jk) - tilde_e3t_b(ji ,jj+1,jk) ) 414 409 zwu(ji,jj) = zwu(ji,jj) + un_td(ji,jj,jk) … … 455 450 WRITE(numout, *) 'at i, j, k=', ijk_max 456 451 WRITE(numout, *) 'MIN( tilde_e3t_a(:,:,:) / e3t_0(:,:,:) ) =', z_tmin 457 WRITE(numout, *) 'at i, j, k=', ijk_min 452 WRITE(numout, *) 'at i, j, k=', ijk_min 458 453 CALL ctl_stop( 'STOP', 'MAX( ABS( tilde_e3t_a(:,:,: ) ) / e3t_0(:,:,:) ) too high') 459 454 ENDIF … … 571 566 !!---------------------------------------------------------------------- 572 567 !! *** ROUTINE dom_vvl_sf_update *** 573 !! 574 !! ** Purpose : for z tilde case: compute time filter and swap of scale factors 568 !! 569 !! ** Purpose : for z tilde case: compute time filter and swap of scale factors 575 570 !! compute all depths and related variables for next time step 576 571 !! write outputs and restart file … … 582 577 !! ** Action : - tilde_e3t_(b/n) ready for next time step 583 578 !! - Recompute: 584 !! e3(u/v)_b 585 !! e3w(:,:,:,Kmm) 586 !! e3(u/v)w_b 587 !! e3(u/v)w_n 579 !! e3(u/v)_b 580 !! e3w(:,:,:,Kmm) 581 !! e3(u/v)w_b 582 !! e3(u/v)w_n 588 583 !! gdept(:,:,:,Kmm), gdepw(:,:,:,Kmm) and gde3w 589 584 !! h(u/v) and h(u/v)r … … 616 611 tilde_e3t_b(:,:,:) = tilde_e3t_n(:,:,:) 617 612 ELSE 618 tilde_e3t_b(:,:,:) = tilde_e3t_n(:,:,:) & 613 tilde_e3t_b(:,:,:) = tilde_e3t_n(:,:,:) & 619 614 & + rn_atfp * ( tilde_e3t_b(:,:,:) - 2.0_wp * tilde_e3t_n(:,:,:) + tilde_e3t_a(:,:,:) ) 620 615 ENDIF … … 628 623 ! - ML - e3u(:,:,:,Kbb) and e3v(:,:,:,Kbb) are already computed in dynnxt 629 624 ! - JC - hu(:,:,:,Kbb), hv(:,:,:,:,Kbb), hur_b, hvr_b also 630 625 631 626 CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3f(:,:,:), 'F' ) 632 627 633 628 ! Vertical scale factor interpolations 634 629 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w(:,:,:,Kmm), 'W' ) … … 649 644 gdepw(ji,jj,jk,Kmm) = gdepw(ji,jj,jk-1,Kmm) + e3t(ji,jj,jk-1,Kmm) 650 645 gdept(ji,jj,jk,Kmm) = zcoef * ( gdepw(ji,jj,jk ,Kmm) + 0.5 * e3w(ji,jj,jk,Kmm) ) & 651 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kmm) + e3w(ji,jj,jk,Kmm) ) 646 & + (1-zcoef) * ( gdept(ji,jj,jk-1,Kmm) + e3w(ji,jj,jk,Kmm) ) 652 647 gde3w(ji,jj,jk) = gdept(ji,jj,jk,Kmm) - ssh(ji,jj,Kmm) 653 648 END_3D … … 768 763 !!--------------------------------------------------------------------- 769 764 !! *** ROUTINE dom_vvl_rst *** 770 !! 765 !! 771 766 !! ** Purpose : Read or write VVL file in restart file 772 767 !! … … 800 795 IF( ln_rstart ) THEN !== Read the restart file ==! 801 796 ! 802 #if defined key_agrif803 IF ( (.NOT.Agrif_root()).AND.(ln_init_chfrpar) ) THEN804 ! skip reading restart if initialized from parent:805 id3 = -1 ; id4 = -1 ; id5 = -1806 ELSE807 #endif808 797 CALL rst_read_open !* open the restart file if necessary 809 798 ! ! --------- ! … … 815 804 id5 = iom_varid( numror, 'hdiv_lf' , ldstop = .FALSE. ) 816 805 ! 817 #if defined key_agrif818 ENDIF819 #endif820 806 ! !* scale factors 821 807 IF(lwp) WRITE(numout,*) ' Kmm scale factor read in the restart file' 822 808 CALL iom_get( numror, jpdom_auto, 'e3t_n', e3t(:,:,:,Kmm) ) 823 WHERE ( tmask(:,:,:) == 0.0_wp ) 809 WHERE ( tmask(:,:,:) == 0.0_wp ) 824 810 e3t(:,:,:,Kmm) = e3t_0(:,:,:) 825 811 END WHERE … … 830 816 IF(lwp) WRITE(numout,*) ' Kbb scale factor read in the restart file' 831 817 CALL iom_get( numror, jpdom_auto, 'e3t_b', e3t(:,:,:,Kbb) ) 832 WHERE ( tmask(:,:,:) == 0.0_wp ) 818 WHERE ( tmask(:,:,:) == 0.0_wp ) 833 819 e3t(:,:,:,Kbb) = e3t_0(:,:,:) 834 820 END WHERE … … 854 840 CALL iom_get( numror, jpdom_auto, 'tilde_e3t_b', tilde_e3t_b(:,:,:) ) 855 841 ENDIF 856 ELSE 857 tilde_e3t_b(:,:,:) = 0.0_wp858 tilde_e3t_n(:,:,:) = 0.0_wp842 ELSE 843 tilde_e3t_b(:,:,:) = 0.0_wp 844 tilde_e3t_n(:,:,:) = 0.0_wp 859 845 ENDIF 860 846 ! ! ------------ ! … … 864 850 CALL iom_get( numror, jpdom_auto, 'hdiv_lf', hdiv_lf(:,:,:) ) 865 851 ELSE ! array is missing 866 hdiv_lf(:,:,:) = 0.0_wp 852 hdiv_lf(:,:,:) = 0.0_wp 867 853 ENDIF 868 854 ENDIF … … 885 871 ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN ! Create restart file ! 886 872 ! !=======================! 887 #if defined key_agrif888 IF ( .NOT.Agrif_root().AND.(ln_init_chfrpar) ) THEN889 ! Interpolate initial ssh from parent:890 CALL Agrif_istate_ssh( Kbb, Kmm )891 !892 DO jk = 1, jpk893 e3t(:,:,jk,Kmm) = e3t_0(:,:,jk) * ( ht_0(:,:) + ssh(:,:,Kmm) ) &894 & / ( ht_0(:,:) + 1._wp - ssmask(:,:) ) * tmask(:,:,jk) &895 & + e3t_0(:,:,jk) * ( 1._wp - tmask(:,:,jk) )896 END DO897 e3t(:,:,:,Kbb) = e3t(:,:,:,Kmm)898 ENDIF899 #endif900 873 ! 901 874 IF(lwp) WRITE(numout,*) '---- dom_vvl_rst ----' … … 911 884 CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_n', tilde_e3t_n(:,:,:)) 912 885 END IF 913 ! ! -------------! 886 ! ! -------------! 914 887 IF( ln_vvl_ztilde ) THEN ! z_tilde case ! 915 888 ! ! ------------ ! … … 925 898 !!--------------------------------------------------------------------- 926 899 !! *** ROUTINE dom_vvl_ctl *** 927 !! 900 !! 928 901 !! ** Purpose : Control the consistency between namelist options 929 902 !! for vertical coordinate … … 934 907 & ln_vvl_zstar_at_eqtor , rn_ahe3 , rn_rst_e3t , & 935 908 & rn_lf_cutoff , rn_zdef_max , ln_vvl_dbg ! not yet implemented: ln_vvl_kepe 936 !!---------------------------------------------------------------------- 909 !!---------------------------------------------------------------------- 937 910 ! 938 911 READ ( numnam_ref, nam_vvl, IOSTAT = ios, ERR = 901) -
NEMO/branches/2020/r14118_ticket2377/src/OCE/TRA/trazdf.F90
r14072 r14129 83 83 ! JMM avoid negative salinities near river outlet ! Ugly fix 84 84 ! JMM : restore negative salinities to small salinities: 85 WHERE( pts(A2D(0),:,jp_sal,Kaa) < 0._wp ) pts(A2D(0),:,jp_sal,Kaa) = 0.1_wp 85 !!jc: discard this correction in case salinity is not used in eos 86 IF ( .NOT.(ln_seos.AND.(rn_lambda2==0._wp)) ) THEN 87 WHERE( pts(A2D(0),:,jp_sal,Kaa) < 0._wp ) pts(A2D(0),:,jp_sal,Kaa) = 0.1_wp 88 ENDIF 86 89 !!gm 87 90 -
NEMO/branches/2020/r14118_ticket2377/src/OCE/stpctl.F90
r14053 r14129 26 26 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 27 27 USE lib_mpp ! distributed memory computing 28 USE eosbn2 29 ! 28 30 USE netcdf ! NetCDF library 29 30 31 IMPLICIT NONE 31 32 PRIVATE … … 65 66 INTEGER , DIMENSION(9) :: iareasum, iareamin, iareamax 66 67 INTEGER , DIMENSION(3,4) :: iloc ! min/max loc indices 67 REAL(wp) :: zzz 68 REAL(wp) :: zzz, zminsal, zmaxsal ! local real 68 69 REAL(wp), DIMENSION(9) :: zmax, zmaxlocal 69 70 LOGICAL :: ll_wrtstp, ll_colruns, ll_wrtruns, ll_0oce … … 71 72 CHARACTER(len=20) :: clname 72 73 !!---------------------------------------------------------------------- 73 !74 74 IF( nstop > 0 .AND. ngrdstop > -1 ) RETURN ! stpctl was already called by a child grid 75 75 ! … … 180 180 END DO 181 181 IF( kt == nitend ) istatus = NF90_CLOSE(nrunid) 182 END IF182 END IF 183 183 ! !== error handling ==! 184 184 ! !== done by all processes at every time step ==! 185 185 ! 186 IF ( ln_seos.AND.(rn_lambda2==0._wp) ) THEN ! Discard checks on salinity 187 zmaxsal = +1.e38 ! if not used in eos 188 zminsal = -1.e38 189 ELSE 190 zmaxsal = 100._wp 191 zminsal = 0._wp 192 ENDIF 193 ! 186 194 IF( zmax(1) > 20._wp .OR. & ! too large sea surface height ( > 20 m ) 187 195 & zmax(2) > 10._wp .OR. & ! too large velocity ( > 10 m/s) 188 & zmax(3) <= 0._wp.OR. & ! negative or zero sea surface salinity189 & zmax(4) >= 100._wp.OR. & ! too large sea surface salinity ( > 100 )190 & zmax(4) < 0._wp.OR. & ! too large sea surface salinity (keep this line for sea-ice)196 & zmax(3) <= zminsal .OR. & ! negative or zero sea surface salinity 197 & zmax(4) >= zmaxsal .OR. & ! too large sea surface salinity ( > 100 ) 198 & zmax(4) < zminsal .OR. & ! too large sea surface salinity (keep this line for sea-ice) 191 199 & ISNAN( zmax(1) + zmax(2) + zmax(3) ) .OR. & ! NaN encounter in the tests 192 200 & ABS( zmax(1) + zmax(2) + zmax(3) ) > HUGE(1._wp) ) THEN ! Infinity encounter in the tests
Note: See TracChangeset
for help on using the changeset viewer.