Opened 13 years ago

Closed 13 years ago

Last modified 3 years ago

#78 closed Bug (fixed)

BUGS lim_rhg in LIM3

Reported by: nemo_user Owned by: nemo
Priority: normal Milestone:
Component: LIM3 Version: release-2
Severity: Keywords: LIM*
Cc:

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)

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

Correct a bug in ice rheology, see ticket #78

Attachments (1)

limrhg.F90 (38.0 KB) - added by nemo_user 13 years ago.
modified limrhg.F90

Download all attachments as: .zip

Change History (5)

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

comment:4 Changed 3 years ago by nemo

  • Keywords LIM* added
Note: See TracTickets for help on using tickets.