Custom Query (964 matches)
Results (703 - 705 of 964)
Ticket | Owner | Reporter | Resolution | Summary |
---|---|---|---|---|
#842 | Fixed | VERY IMPORTANT: Corrected bug in MPDATA | ||
Description |
In src:ticket:839 coupled of bugs were introduced to the MPDATA tracer advection in routine step3d_t.F. The following I-loop the wrong range: ! ! If MPDATA, time-step horizontal advection for intermediate diffusive ! tracer, Ta. Otherwise, time-step horizontal advection term. ! Advective fluxes have units of Tunits m3/s. The new tracer has ! units of m Tunits. ! IF (Hadvection(itrc,ng)%MPDATA) THEN DO j=JstrVm2,Jendp2i DO i=IstrUm2,IstrUm2 ... ... END DO END DO We need to have instead: IF (Hadvection(itrc,ng)%MPDATA) THEN DO j=JstrVm2,Jendp2i DO i=IstrUm2,Iendp2i ... END DO END DO The I-range needs to be IstrUm2:Iendp2i. It is a copying and pasting typo. Many thanks to Chuning Wang for reporting this bug. The second bug is due to a combination of CPP option and logical switch in the vertical diffusion term when SPLINES_VDIFF is activated. If MPDATA, the conditional logic is wrong, and the vertical diffusion term is not included. We need to have instead: ! !----------------------------------------------------------------------- ! Time-step vertical diffusion term. !----------------------------------------------------------------------- ! J_LOOP2 : DO j=Jstr,Jend ! start pipelined J-loop DO itrc=1,NT(ng) ltrc=MIN(NAT,itrc) # ifdef SPLINES_VDIFF IF (.not.((Hadvection(itrc,ng)%MPDATA).and. & & (Vadvection(itrc,ng)%MPDATA))) THEN ... ELSE # endif ... # ifdef SPLINES_VDIFF END IF # endif END DO END DO J_LOOP2 Again, many thanks to Chuning Wang for reporting for bringing this logic problem to my attention. There is a wrong combination of the CPP option and IF-conditional. Made similar changes to the TLM, RPM, ADM versions of step3d_t.F. Luckily, the MPDATA is not supported in the adjoint-based algorithms. |
|||
#843 | Fixed | Subscript out of bounds on river tracer source when using HSIMT | ||
Description |
The following error is issued when using HSIMT tracer advection: forrtl: severe (408): fort: (2): Subscript #2 of the array HVOM has value 73 which is greater than the upper bound of 72 Image PC Routine Line Source oceanG 000000000305D9E6 Unknown Unknown Unknown oceanG 00000000014BED29 step3d_t_mod_mp_s 703 step3d_t.f90 oceanG 00000000014622DA step3d_t_mod_mp_s 78 step3d_t.f90 On this particular tile, Hvom is dimensioned (0:326,0:72), but the test goes out to Jendp3 which is 73: IF ((Hadvection(itrc,ng)%MPDATA).or. & & (Hadvection(itrc,ng)%HSIMT)) THEN LapplySrc=(IstrUm2.le.Isrc).and. & & (Isrc.le.Iendp2i).and. & & (JstrVm2.le.Jsrc).and. & & (Jsrc.le.Jendp3) I have HSIMT set for the advection type in this case. This is probably not a new bug and I in fact stumbled on it when trying to track something else down. |
|||
#844 | Done | IMPORTANT: Some enhacements | ||
Description |
Added coupled of enhancements:
|