Changeset 3966 for trunk/LMDZ.PLUTO/libf


Ignore:
Timestamp:
Nov 20, 2025, 2:17:48 PM (3 weeks ago)
Author:
debatzbr
Message:

Pluto PCM: Add sanity check in the radiatif transfer (usefull for debug mode).
BBT

Location:
trunk/LMDZ.PLUTO/libf/phypluto
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO/libf/phypluto/aeroptproperties.F90

    r3802 r3966  
    656656                  qscatrefVISgrid(j,1,iaer)=qscatrefVISgrid(j,1,iaer) /  &
    657657                                normd(j,1,iaer,idomain)
    658                   omegrefVISgrid(j,1,iaer)=qscatrefVISgrid(j,1,iaer) /   &
     658                  if (qrefVISgrid(j,1,iaer).gt.0.d0) then
     659                    omegrefVISgrid(j,1,iaer)=qscatrefVISgrid(j,1,iaer) / &
    659660                               qrefVISgrid(j,1,iaer)
     661                  else
     662                    omegrefVISgrid(j,1,iaer)=0.
     663                  endif
    660664                  DO m=1,L_NSPECTV
    661665                    qextVISgrid(j,1,m,iaer)=qextVISgrid(j,1,m,iaer) /    &
     
    663667                    qscatVISgrid(j,1,m,iaer)=qscatVISgrid(j,1,m,iaer) /  &
    664668                                normd(j,1,iaer,idomain)
    665                     gVISgrid(j,1,m,iaer)=gVISgrid(j,1,m,iaer) /          &
     669                    if (qscatVISgrid(j,1,m,iaer).gt.0.d0) then
     670                      gVISgrid(j,1,m,iaer)=gVISgrid(j,1,m,iaer) /        &
    666671                                qscatVISgrid(j,1,m,iaer) /               &
    667672                                normd(j,1,iaer,idomain)
    668 
    669                     qsqrefVISgrid(j,1,m,iaer)=qextVISgrid(j,1,m,iaer) /  &
     673                    else
     674                      gVISgrid(j,1,m,iaer)=0.
     675                    endif
     676
     677                    if (qrefVISgrid(j,1,iaer).gt.0.d0) then
     678                      qsqrefVISgrid(j,1,m,iaer)=qextVISgrid(j,1,m,iaer) /&
    670679                                qrefVISgrid(j,1,iaer)
    671                     omegVISgrid(j,1,m,iaer)=qscatVISgrid(j,1,m,iaer) /   &
     680                    else
     681                      qsqrefVISgrid(j,1,m,iaer)=0.
     682                    endif
     683                    if (qextVISgrid(j,1,m,iaer).gt.0.d0) then
     684                      omegVISgrid(j,1,m,iaer)=qscatVISgrid(j,1,m,iaer) / &
    672685                                qextVISgrid(j,1,m,iaer)
     686                    else
     687                      omegVISgrid(j,1,m,iaer)=0.
     688                    endif
    673689                  ENDDO
    674690                ELSE                   ! INFRARED DOMAIN ----------
     
    772788                  qscatrefIRgrid(j,1,iaer)=qscatrefIRgrid(j,1,iaer) /  &
    773789                                normd(j,1,iaer,idomain)
    774                   omegrefIRgrid(j,1,iaer)=qscatrefIRgrid(j,1,iaer) /   &
     790                  if (qrefIRgrid(j,1,iaer).gt.0.d0) then
     791                    omegrefIRgrid(j,1,iaer)=qscatrefIRgrid(j,1,iaer) / &
    775792                               qrefIRgrid(j,1,iaer)
     793                  else
     794                    omegrefIRgrid(j,1,iaer)=0.
     795                  endif
    776796                  DO m=1,L_NSPECTI
    777797                    qextIRgrid(j,1,m,iaer)=qextIRgrid(j,1,m,iaer) /    &
     
    779799                    qscatIRgrid(j,1,m,iaer)=qscatIRgrid(j,1,m,iaer) /  &
    780800                                normd(j,1,iaer,idomain)
    781                     gIRgrid(j,1,m,iaer)=gIRgrid(j,1,m,iaer) /          &
     801                   
     802                    if (qscatIRgrid(j,1,m,iaer).gt.0.d0) then
     803                      gIRgrid(j,1,m,iaer)=gIRgrid(j,1,m,iaer) /        &
    782804                                qscatIRgrid(j,1,m,iaer) /              &
    783805                                normd(j,1,iaer,idomain)
    784 
    785                     qsqrefIRgrid(j,1,m,iaer)=qextIRgrid(j,1,m,iaer) /  &
     806                    else
     807                      gIRgrid(j,1,m,iaer)=0.
     808                    endif
     809
     810                    if (qrefIRgrid(j,1,iaer).gt.0.d0) then
     811                      qsqrefIRgrid(j,1,m,iaer)=qextIRgrid(j,1,m,iaer) /&
    786812                                qrefVISgrid(j,1,iaer)
    787                     omegIRgrid(j,1,m,iaer)=qscatIRgrid(j,1,m,iaer) /   &
     813                    else
     814                      qsqrefIRgrid(j,1,m,iaer)=0.
     815                    endif
     816                    if (qextIRgrid(j,1,m,iaer).gt.0.d0) then
     817                      omegIRgrid(j,1,m,iaer)=qscatIRgrid(j,1,m,iaer) / &
    788818                                qextIRgrid(j,1,m,iaer)
     819                    else
     820                      omegIRgrid(j,1,m,iaer)=0.
     821                    endif
    789822                  ENDDO
    790823                ENDIF                  ! --------------------------
  • trunk/LMDZ.PLUTO/libf/phypluto/callcorrk.F90

    r3959 r3966  
    723723               ! As 'dtau_aer' is at reference (visible) wavelenght we scale it as
    724724               ! it will be multplied by qxi/v in optci/v
    725                temp=dtau_aer(ig,L_NLAYRAD-k,iaer)/QREFvis3d(ig,L_NLAYRAD-k,iaer)
     725               if (QREFvis3d(ig,L_NLAYRAD-k,iaer).gt.0.d0) then
     726                  temp=dtau_aer(ig,L_NLAYRAD-k,iaer)/QREFvis3d(ig,L_NLAYRAD-k,iaer)
     727               else
     728                  temp=0.
     729               endif
    726730               tauaero(2*k+2,iaer)=max(temp*pweight,0.d0)
    727731               tauaero(2*k+3,iaer)=max(temp-tauaero(2*k+2,iaer),0.d0)
Note: See TracChangeset for help on using the changeset viewer.