Ignore:
Timestamp:
Feb 15, 2023, 12:09:56 AM (17 months ago)
Author:
fhourdin
Message:

Correction for singular cases, thermcell_down

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/thermcell_down.F90

    r4437 r4438  
    6565
    6666   ! lmax : indice tel que fu(kmax+1)=0
    67    
    6867   ! Dans ce cas, pas besoin d'initialiser tracd(lmax) ( =trac(lmax) )
    69 
    70    print*,'ON PASSE BIEN PAR LA CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'
    7168   ! Boucle pour le downdraft
    7269   do ilay=nlay,1,-1
    7370      do ig=1,ngrid
    74          if (ilay.le.lmax(ig) .and. lmax(ig)>1) then
     71         !if ( lmax(ig) > nlay - 2 ) stop "les thermiques montent trop haut"
     72         if (ilay.le.lmax(ig) .and. lmax(ig)>1 ) then
    7573            fdn(ig,ilay)=fdn(ig,ilay+1)+edn(ig,ilay)-ddn(ig,ilay)
    76             if ( 1 == 0 ) then
    77                tracd(ig,ilay)=( fdn(ig,ilay+1)*tracd(ig,ilay+1) + edn(ig,ilay)*trac(ig,ilay) ) / (fdn(ig,ilay)+ddn(ig,ilay))
     74            if ( fdn(ig,ilay)+ddn(ig,ilay) > 0. ) then
     75               www=fdn(ig,ilay+1)/ (fdn(ig,ilay)+ddn(ig,ilay))
    7876            else
    79                www=fdn(ig,ilay+1)/ (fdn(ig,ilay)+ddn(ig,ilay))
    80                tracd(ig,ilay)=www*tracd(ig,ilay+1) + (1.-www)*trac(ig,ilay)
     77               www=0.
    8178            endif
     79            tracd(ig,ilay)=www*tracd(ig,ilay+1) + (1.-www)*trac(ig,ilay)
    8280         endif
    8381      enddo
     
    9088         if (ilay.lt.lmax(ig) .and. lmax(ig)>1) then
    9189            fup(ig,ilay+1)=fup(ig,ilay)+eup(ig,ilay)-dup(ig,ilay)
     90            if (fup(ig,ilay+1)+dup(ig,ilay) > 0.) then
     91               www=fup(ig,ilay)/(fup(ig,ilay+1)+dup(ig,ilay))
     92            else
     93               www=0.
     94            endif
    9295            if (ilay == 1 ) then
    9396               tracu(ig,ilay)=trac(ig,ilay)
    9497            else
    95                !tracu(ig,ilay)=( fup(ig,ilay)*tracu(ig,ilay-1) + eup(ig,ilay)*trac(ig,ilay) ) / (fup(ig,ilay+1)+dup(ig,ilay))
    96                !eup(ig,ilay)=fup(ig,ilay+1)-fup(ig,ilay)+dup(ig,ilay)
    97                !tracu(ig,ilay)=( fup(ig,ilay)*tracu(ig,ilay-1) + (fup(ig,ilay+1)-fup(ig,ilay)+dup(ig,ilay))*trac(ig,ilay) ) / (fup(ig,ilay+1)+dup(ig,ilay))
    98                www=fup(ig,ilay)/(fup(ig,ilay+1)+dup(ig,ilay))
    99                !1-www=(fup(ig,ilay+1)+dup(ig,ilay)-fup(ig,ilay))/(fup(ig,ilay+1)+dup(ig,ilay))
    10098               tracu(ig,ilay)=www*tracu(ig,ilay-1)+(1.-www)*trac(ig,ilay)
    10199            endif
     
    182180
    183181   else if (iflag_impl==1) then
    184      write(*,*) 'SCHEMA IMPLICITE EN COURS DE DEVELOPPEMENT !'
    185182     do ilay=1,nlay
    186183       do ig=1,ngrid
Note: See TracChangeset for help on using the changeset viewer.