Opened 13 years ago

Closed 13 years ago

# BUGS lim_rhg in LIM3

Reported by:reporter: Owned by:owner: The author of the ticket. Person in charge for handling nemo_user nemo normal LIM3 release-2 LIM*

### Description

Salut Claude et / ou Rachid,
Voici donc la correction des deux ou trois bugs dans limrhg.F90 (version LIM3)

(1) on l'avait tous vu, le masque tmi n'est pas indexé dans la boucle
203,204c205,207
ça
! tmi = 1 where there is ice or on land
< tmi(ji,jj) = 1.0 - ( 1.0 - MAX( 0.0 , SIGN ( 1.0 , vt_i(ji,jj) - &
< CALL lbc_lnk( tmi(:,, 'T', 1. )

au lieu de ça
—-

! tmi = 1 where ther is ice or on land
! Claude sees a bug, next line : tmi(ji,jj)
tmi = 1.0 - ( 1.0 - MAX( 0.0 , SIGN ( 1.0 , vt_i(ji,jj) - &

(2) Gilles a vu un problème dans le calcul des vitesses d'océan
278,283c282,283
< ! GG bug
< ! v_oce1(ji,jj) = 0.5*( (v_io(ji,jj)+v_io(ji,jj-1))*e1t(ji+1,jj) &
< ! & +(v_io(ji+1,jj)+v_io(ji+1,jj-1))*e1t(ji,jj)) &
< ! & /(e1t(ji+1,jj)+e1t(ji,jj)) * tmu(ji,jj)
< v_oce1(ji,jj) = 0.5*( (v_io(ji,jj)+v_io(ji,jj-1))*e1t(ji,jj) &
< & +(v_io(ji+1,jj)+v_io(ji+1,jj-1))*e1t(ji+1,jj)) &
—-

v_oce1(ji,jj) = 0.5*( (v_io(ji,jj)+v_io(ji,jj-1))*e1t(ji+1,jj) &

& +(v_io(ji+1,jj)+v_io(ji+1,jj-1))*e1t(ji,jj)) &

286,291c286,287
< ! GG bug
< ! u_oce2(ji,jj) = 0.5*((u_io(ji,jj)+u_io(ji-1,jj))*e2t(ji,jj+1) &
< ! & +(u_io(ji,jj+1)+u_io(ji-1,jj+1))*e2t(ji,jj)) &
< ! & / (e2t(ji,jj+1)+e2t(ji,jj)) * tmv(ji,jj)
< u_oce2(ji,jj) = 0.5*((u_io(ji,jj)+u_io(ji-1,jj))*e2t(ji,jj) &
< & +(u_io(ji,jj+1)+u_io(ji-1,jj+1))*e2t(ji,jj+1)) &
—-

u_oce2(ji,jj) = 0.5*((u_io(ji,jj)+u_io(ji-1,jj))*e2t(ji,jj+1) &

& +(u_io(ji,jj+1)+u_io(ji-1,jj+1))*e2t(ji,jj)) &

512,517c514,515
< ! GG bug
< ! zv_ice1 = 0.5*( (v_ice(ji,jj)+v_ice(ji,jj-1))*e1t(ji+1,jj) &
< ! & +(v_ice(ji+1,jj)+v_ice(ji+1,jj-1))*e1t(ji,jj)) &
< ! & /(e1t(ji+1,jj)+e1t(ji,jj)) * tmu(ji,jj)
< zv_ice1 = 0.5*( (v_ice(ji,jj)+v_ice(ji,jj-1))*e1t(ji,jj) &
< & +(v_ice(ji+1,jj)+v_ice(ji+1,jj-1))*e1t(ji+1,jj)) &
—-

zv_ice1 = 0.5*( (v_ice(ji,jj)+v_ice(ji,jj-1))*e1t(ji+1,jj) &

& +(v_ice(ji+1,jj)+v_ice(ji+1,jj-1))*e1t(ji,jj)) &

539,544c537,538
< ! GG bug
< ! zu_ice2 = 0.5*( (u_ice(ji,jj)+u_ice(ji-1,jj))*e2t(ji,jj+1) &
< ! & + (u_ice(ji,jj+1)+u_ice(ji-1,jj+1))*e2t(ji,jj)) &
< ! & /(e2t(ji,jj+1)+e2t(ji,jj)) * tmv(ji,jj)
< zu_ice2 = 0.5*( (u_ice(ji,jj)+u_ice(ji-1,jj))*e2t(ji,jj) &
< & + (u_ice(ji,jj+1)+u_ice(ji-1,jj+1))*e2t(ji,jj+1)) &
—-

zu_ice2 = 0.5*( (u_ice(ji,jj)+u_ice(ji-1,jj))*e2t(ji,jj+1) &

& + (u_ice(ji,jj+1)+u_ice(ji-1,jj+1))*e2t(ji,jj)) &

566,571c560,561
< ! GG Bug
< ! zu_ice2 = 0.5*( (u_ice(ji,jj)+u_ice(ji-1,jj))*e2t(ji,jj+1) &
< ! & +(u_ice(ji,jj+1)+u_ice(ji-1,jj+1))*e2t(ji,jj)) &
< ! & /(e2t(ji,jj+1)+e2t(ji,jj)) * tmv(ji,jj)
< zu_ice2 = 0.5*( (u_ice(ji,jj)+u_ice(ji-1,jj))*e2t(ji,jj) &
< & +(u_ice(ji,jj+1)+u_ice(ji-1,jj+1))*e2t(ji,jj+1)) &
—-

zu_ice2 = 0.5*( (u_ice(ji,jj)+u_ice(ji-1,jj))*e2t(ji,jj+1) &

& +(u_ice(ji,jj+1)+u_ice(ji-1,jj+1))*e2t(ji,jj)) &

593,598c583,584
< ! GG Bug
< ! zv_ice1 = 0.5*( (v_ice(ji,jj)+v_ice(ji,jj-1))*e1t(ji+1,jj) &
< ! & +(v_ice(ji+1,jj)+v_ice(ji+1,jj-1))*e1t(ji,jj)) &
< ! & /(e1t(ji+1,jj)+e1t(ji,jj)) * tmu(ji,jj)
< zv_ice1 = 0.5*( (v_ice(ji,jj)+v_ice(ji,jj-1))*e1t(ji,jj) &
< & +(v_ice(ji+1,jj)+v_ice(ji+1,jj-1))*e1t(ji+1,jj)) &
—-

zv_ice1 = 0.5*( (v_ice(ji,jj)+v_ice(ji,jj-1))*e1t(ji+1,jj) &

& +(v_ice(ji+1,jj)+v_ice(ji+1,jj-1))*e1t(ji,jj)) &

(3) Enfin, tout ce qui concerne stress_mean_swi est inutile

< !
< !———————————————————————————————————————!
< ! 5) Store stress tensor and its invariants
< !———————————————————————————————————————!
< !
< ! * Invariants of the stress tensor are required for limitd_me
< ! * Store the stress tensor for the next time step
< ! accelerates convergence and improves stability
< DO jj = k_j1+1, k_jpj-1
< DO ji = 2, jpim1
< divu_i(ji,jj) = zdd(ji,jj)
< delta_i(ji,jj) = deltat (ji,jj)
< shear_i(ji,jj) = zds (ji,jj)
< stress1_i(ji,jj) = zs1(ji,jj)
< stress2_i(ji,jj) = zs2(ji,jj)
< stress12_i(ji,jj) = zs12(ji,jj)
—-

! MV This should be removed as it is the same as previous lines
! ! dynamical invariants
! IF ( stress_mean_swi .EQ. 0 ) THEN
! the following should not be necessary

DO jj = k_j1+1, k_jpj-1

DO ji = 2, jpim1

divu_i(ji,jj) = zdd(ji,jj)
delta_i(ji,jj) = deltat (ji,jj)
shear_i(ji,jj) = zds (ji,jj)

END DO

723c712
< END DO
—-

! ENDIF

725d713
< ! Lateral boundary condition
728a717,731

! Store the stress tensor for next time step
! this accelerates convergence and improves stability
IF ( stress_mean_swi .EQ. 1 ) THEN

DO jj = k_j1+1, k_jpj-1

DO ji = 2, jpim1

stress1_i(ji,jj) = zs1(ji,jj)
stress2_i(ji,jj) = zs2(ji,jj)
stress12_i(ji,jj) = zs12(ji,jj)

END DO

END DO

ENDIF

! Lateral boundary condition

### Commit History (1)

ChangesetTimeChangeLog
866rblod2008-03-14T15:44:32+01:00

Correct a bug in ice rheology, see ticket #78

### Changed 13 years ago by nemo_user

modified limrhg.F90

### comment:1 Changed 13 years ago by rblod

• Resolution set to fixed
• Status changed from new to closed

### comment:2 Changed 4 years ago by nicolasmartin

• Milestone LIM 3.0 deleted

Milestone LIM 3.0 deleted

### comment:3 Changed 4 years ago by nicolasmartin

• Keywords rheology removed