Opened 6 years ago

Closed 5 years ago

#441 closed defect (fixed)

floodplains: missing irrigation ipond load

Reported by: ajornet Owned by: somebody
Priority: major Milestone: orchidee_1_9_6
Component: Physical processes Version: trunc
Keywords: irrigmap flood_fracmax nan sechiba Cc:

Description

Orchidee crashes at routing_irrigmap.

The stacktrace below corresponds to Orchidee-MICT. But It applies the same for Orchidee trunk.

Error:

forrtl: error (65): floating invalid
Image              PC                Routine            Line        Source
libintlc.so.5      00002AF457283CF1  tbk_trace_stack_i     Unknown  Unknown
libintlc.so.5      00002AF457281E2B  tbk_string_stack_     Unknown  Unknown
libifcoremt.so.5   00002AF4559485F2  Unknown               Unknown  Unknown
libifcoremt.so.5   00002AF455948446  tbk_stack_trace       Unknown  Unknown
libifcoremt.so.5   00002AF4558A10D0  for__issue_diagno     Unknown  Unknown
libifcoremt.so.5   00002AF4558B3371  for__signal_handl     Unknown  Unknown
libpthread-2.12.s  00002AF4554237E0  Unknown               Unknown  Unknown
orchideedriver     0000000002998574  routing_mp_routin        7934  routing.f90
orchideedriver     00000000027308A7  routing_mp_routin         417  routing.f90
orchideedriver     00000000009A7500  sechiba_mp_sechib         629  sechiba.f90
orchideedriver     0000000000444993  MAIN__                    672  orchideedriver.f90
orchideedriver     000000000041D8DE  Unknown               Unknown  Unknown
libc-2.12.so       00002AF4574F6D1D  __libc_start_main     Unknown  Unknown
orchideedriver     000000000041D7E9  Unknown               Unknown  Unknown

Source code:

    IF (is_root_prc) CALL flinget(fid, 'irrig', iml, jml, lml, tml, 1, 1, irrigated_frac)
    CALL bcast(irrigated_frac)
    IF (is_root_prc) CALL flinget(fid, 'lake', iml, jml, lml, tml, 1, 1, flood_fracmax(:,:,ilake))
    IF (is_root_prc) CALL flinget(fid, 'dam', iml, jml, lml, tml, 1, 1, flood_fracmax(:,:,idam))
    IF (is_root_prc) CALL flinget(fid, 'flood', iml, jml, lml, tml, 1, 1, flood_fracmax(:,:,iflood))
    IF (is_root_prc) CALL flinget(fid, 'swamp', iml, jml, lml, tml, 1, 1, flood_fracmax(:,:,iswamp))
    IF (is_root_prc) CALL flinget(fid, 'saline', iml, jml, lml, tml, 1, 1, flood_fracmax(:,:,isal))
    CALL bcast(flood_fracmax)
    !
    IF (is_root_prc) CALL flinclo(fid)
    !
    ! Set to zero all fraction which are less than 0.5%
    !
    DO ip=1,iml
       DO jp=1,jml
          !
          IF ( irrigated_frac(ip,jp) .LT. undef_sechiba-un) THEN   <---- ERROR HERE, NAN values
             irrigated_frac(ip,jp) = irrigated_frac(ip,jp)/100.
             IF ( irrigated_frac(ip,jp) < 0.005 ) irrigated_frac(ip,jp) = zero
          ENDIF
          !
          DO itype=1,ntype
             IF ( flood_fracmax(ip,jp,itype) .LT. undef_sechiba-1.) THEN
                flood_fracmax(ip,jp,itype) = flood_fracmax(ip,jp,itype)/100
                IF ( flood_fracmax(ip,jp,itype) < 0.005 )  flood_fracmax(ip,jp,itype) = zero
             ENDIF
          ENDDO
          !
       ENDDO
    ENDDO

It turns out itype=6 = ipond has Nan values. That's because it is not loaded nor initialized.
Introducing the line below should be enough:

IF (is_root_prc) CALL flinget(fid, 'pond', iml, jml, lml, tml, 1, 1, flood_fracmax(:,:,ipond))

Change History (1)

comment:1 Changed 5 years ago by jgipsl

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

Done in the trunk [5613]

Note: See TracTickets for help on using tickets.