- Timestamp:
- 2013-07-09T17:41:20+02:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90
r3938 r3963 81 81 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: zs0e 82 82 REAL(wp) :: zchk_v_i, zchk_smv, zchk_fs, zchk_fw, zchk_v_i_b, zchk_smv_b, zchk_fs_b, zchk_fw_b ! Check conservation (C Rousset) 83 REAL(wp) :: zchk_vmin, zchk_amin, zchk_amax ! Check errors (C Rousset) 83 84 ! mass and salt flux (clem) 84 85 REAL(wp), POINTER, DIMENSION(:,:,:) :: zviold ! old ice volume... … … 170 171 zusnit = 1.0 / REAL( initad ) 171 172 IF( zcfl > 0.5 .AND. lwp ) & 172 WRITE(numout,*) 'lim_trp _2: CFL violation at day ', nday, ', cfl = ', zcfl, &173 WRITE(numout,*) 'lim_trp : CFL violation at day ', nday, ', cfl = ', zcfl, & 173 174 & ': the ice time stepping is split in two' 174 175 … … 430 431 DO ji = 1, jpi 431 432 432 IF ( v_i(ji,jj,jl) > 0. ) THEN433 IF ( v_i(ji,jj,jl) > 0._wp ) THEN 433 434 zvi = v_i(ji,jj,jl) 434 435 zvs = v_s(ji,jj,jl) … … 437 438 438 439 IF ( ( zdv > 0.0 .AND. ht_i(ji,jj,jl) > zhimax(ji,jj,jl) .AND. SUM( zaiold(ji,jj,1:jpl) ) < 0.80 ) .OR. & 439 440 & ( zdv < 0.0 .AND. ht_i(ji,jj,jl) > zhimax(ji,jj,jl) ) ) THEN 440 441 ht_i(ji,jj,jl) = MIN( zhimax(ji,jj,jl), hi_max(jl) ) 441 442 zindh = MAX( rzero, SIGN( rone, ht_i(ji,jj,jl) - epsi10 ) ) … … 447 448 ENDIF 448 449 449 ! zindh = MAX( rzero, SIGN( rone, ht_i(ji,jj,jl) - epsi10 ) )450 v_i(ji,jj,jl) = a_i(ji,jj,jl) * ht_i(ji,jj,jl)451 v_s(ji,jj,jl) = a_i(ji,jj,jl) * ht_s(ji,jj,jl)452 453 ! Update mass fluxes (clem)450 ! small correction due to *zindh for a_i 451 v_i(ji,jj,jl) = zindh * v_i(ji,jj,jl) 452 v_s(ji,jj,jl) = zindh * v_s(ji,jj,jl) 453 454 ! Update mass fluxes 454 455 rdmicif(ji,jj) = rdmicif(ji,jj) + ( v_i(ji,jj,jl) - zvi ) * rhoic 455 456 rdmsnif(ji,jj) = rdmsnif(ji,jj) + ( v_s(ji,jj,jl) - zvs ) * rhosn … … 587 588 zchk_smv = ( glob_sum( SUM( smv_i(:,:,:), dim=3 ) * area(:,:) * tms(:,:) ) - zchk_smv_b ) / rdt_ice + ( zchk_fs / rhoic ) 588 589 590 zchk_vmin = glob_min(v_i) 591 zchk_amax = glob_max(SUM(a_i,dim=3)) 592 zchk_amin = glob_min(a_i) 593 589 594 IF(lwp) THEN 590 IF ( 591 IF ( 592 IF ( MINVAL( v_i(:,:,:) ) < 0. ) WRITE(numout,*) 'violation v_i<0 [mm] (limtrp) = ',(MINVAL(v_i)* 1.e-3)593 IF ( MINVAL( a_i(:,:,:) ) < 0. ) WRITE(numout,*) 'violation a_i<0 (limtrp) = ',MINVAL(a_i)595 IF ( ABS( zchk_v_i ) > 1.e-5 ) WRITE(numout,*) 'violation volume [m3/day] (limtrp) = ',(zchk_v_i * 86400.) 596 IF ( ABS( zchk_smv ) > 1.e-4 ) WRITE(numout,*) 'violation saline [psu*m3/day] (limtrp) = ',(zchk_smv * 86400.) 597 IF ( zchk_vmin < 0. ) WRITE(numout,*) 'violation v_i<0 [mm] (limtrp) = ',(zchk_vmin * 1.e-3) 598 IF ( zchk_amin < 0. ) WRITE(numout,*) 'violation a_i<0 (limtrp) = ',zchk_amin 594 599 ENDIF 595 600 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.