Opened 10 years ago

Closed 10 years ago

Last modified 3 years ago

#799 closed Bug (fixed)

small conductivity bug

Reported by: dupontf Owned by: dupontf
Priority: low Milestone:
Component: LIM3 Version: release-3.3
Severity: Keywords: LIM*
Cc:

Description

Hi all,

In LIM3, NEMO3.3 (tag 2528) and lower, there is a small conductivity bug, precisely in limthd_dif.F90 line 397 when using the Pringle et al (2007) formula (thcon_i_swi=1 case) for the interior ice. In this case, the conductivity is computed using the mean properties (salinity and temperature) between 2 layers:

ztcond_i(ji,layer) = rcdic + 0.09*( s_i_b(ji,layer) &

+ s_i_b(ji,layer+1) ) / MIN(-zeps, &
t_i_b(ji,layer)+t_i_b(ji,layer+1)-2.0*rtt) - &
0.011* ( t_i_b(ji,layer) + t_i_b(ji,layer+1) - 2.0*rtt )

However the second term (with the 0.11 coefficient) is missing a ½ factor to get the mean temperature. Expect small effects on thickness.

Fred.

Commit History (1)

ChangesetAuthorTimeChangeLog
2591gm2011-02-18T14:26:28+01:00

v3.3: #799 , correct a LIM3 small bug (limthd_dif)

Change History (3)

comment:1 Changed 10 years ago by dupontf

  • Owner changed from NEMO team to dupontf

comment:2 Changed 10 years ago by gm

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

This is effectively a bug. The solution should also include a multiplication of zeps by a factor of 2 so that the threshold remains the same with and without an averaging between two layers. so both Untersteiner and Pringle formulations are concerned.

         IF ( thcon_i_swi .EQ. 0 ) THEN ! Untersteiner
                  ...
                  ztcond_i(ji,layer) = rcdic + zbeta*( s_i_b(ji,layer) &
                     + s_i_b(ji,layer+1) ) / MIN(-2.0*zeps,     &
                     t_i_b(ji,layer)+t_i_b(ji,layer+1)-2.0*rtt)
                  ...
         ENDIF

         IF ( thcon_i_swi .EQ. 1 ) THEN ! Pringle (0.011/2=0.0055)
                  ...
                  ztcond_i(ji,layer) = rcdic + 0.09*( s_i_b(ji,layer)   &
                     + s_i_b(ji,layer+1) ) / MIN(-2.0*zeps,      &
                     t_i_b(ji,layer)+t_i_b(ji,layer+1)-2.0*rtt) - &
                     0.0055* ( t_i_b(ji,layer) + t_i_b(ji,layer+1) - 2.0*rtt )  
                  ...
         ENDIF

Changed done, see changeset:2591

comment:3 Changed 3 years ago by nemo

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