Ignore:
Timestamp:
Apr 2, 2019, 8:23:14 PM (6 years ago)
Author:
mvals
Message:

Mars GCM:

  • correction of the Van Leer scheme in vlz_fi.F, used by the sedimentation routine, and rocketduststorm_mod.F90 (particular case

evoked previously --> update)
MV

Location:
trunk/LMDZ.MARS/libf/phymars
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/rocketduststorm_mod.F90

    r2100 r2119  
    569569       wq(nlay+1)=0.
    570570
    571 !      1) Compute wq where w < 0 (up) (NOT USEFUL FOR SEDIMENTATION)     
     571!      Surface flux up:
     572       if(w(1).lt.0.) wq(1)=0. ! warning : not always valid
     573
     574       do l = 1,nlay-1  ! loop different than when w>0
     575
     576!      1) Compute wq where w < 0 (up)
    572577!      ===============================
    573578
    574 !      Surface flux up:
    575          if(w(1).lt.0.) wq(1)=0. ! warning : not always valid
    576 
    577        do l = 1,nlay-1  ! loop different than when w>0
    578579         if(w(l+1).le.0)then
    579580
     
    607608                wq(l+1) = -MQtot
    608609             end if
    609 
    610              if ( masse(l)*q(l) .lt. -(wq(l+1)-wq(l)) ) then  ! particular case when the vertical velocity is very strong in the layer and null below (wq(l)=0)
    611                wq(l+1) = wq(l)-masse(l)*q(l)
    612              end if
    613 
    614           endif
    615          endif  ! w<0 (up)
    616        enddo
    617 
    618        do l = 1,nlay-1  ! loop different than when w>0
    619 
    620           q(l)=q(l) +  (wq(l+1)-wq(l))/masse(l)
    621 
    622        enddo
     610          endif ! (-w(l+1).le.masse(l))
    623611     
    624 !      2) Compute wq where w > 0 (down) (ALWAYS FOR SEDIMENTATION)     
     612!      2) Compute wq where w > 0 (down)    
    625613!      ===============================
    626614
    627 !      Initialisation wq = 0 to consider now only downward flux
    628          wq(:)=0. !
    629 
    630        do l = 1,nlay          ! loop different than when w<0
    631 
    632          if(w(l).gt.0.)then
     615         else if(w(l).gt.0.)then
    633616
    634617!         Regular scheme (transfered mass < 1 layer)
     
    637620            sigw=w(l)/masse(l)
    638621            wq(l)=w(l)*(q(l)+0.5*(1.-sigw)*dzq(l))
    639 !            write(*,*),'TB14 wq after up',wq(1,:)
    640622           
    641623
     
    662644                wq(l) = MQtot
    663645            end if
    664 
    665              if ( masse(l)*q(l) .lt. -(wq(l+1)-wq(l)) ) then  ! particular case when the vertical velocity is very strong in the layer and null above (wq(l+1)=0)
    666                wq(l) = wq(l+1)+masse(l)*q(l)
    667              end if
    668 
    669646          end if
    670          end if ! w>0 (down)
    671        enddo
     647
     648         end if ! w<0 (up)
     649
     650       enddo ! l = 1,nlay-1
    672651       
    673652       do l = 1,nlay          ! loop different than when w<0
     653
     654!         it cannot entrain more than available mass !
     655          if ( (wq(l+1)-wq(l)) .lt. -(masse(l)*q(l)) ) then
     656            wq(l+1) = wq(l)-masse(l)*q(l)
     657          end if
    674658
    675659          q(l)=q(l) +  (wq(l+1)-wq(l))/masse(l)
  • trunk/LMDZ.MARS/libf/phymars/vlz_fi.F

    r2112 r2119  
    123123            end if
    124124
    125 c            it cannot entrain more than available mass !
    126              if ( masse(ij,l)*q(ij,l) .lt. -(wq(ij,l+1)-wq(ij,l)) ) then
    127                wq(ij,l) = wq(ij,l+1)+masse(ij,l)*q(ij,l)
    128              end if
    129 
    130125          end if
    131126         end if
     
    176171             end if
    177172
    178 c            it cannot entrain more than available mass !
    179              if ( masse(ij,l)*q(ij,l) .lt. -(wq(ij,l+1)-wq(ij,l)) ) then
    180                wq(ij,l+1) = wq(ij,l)-masse(ij,l)*q(ij,l)
    181              end if
    182 
    183173          endif
    184174         endif
     
    196186ccccc       masse(ij,l)=newmasse
    197187
     188c            it cannot entrain more than available mass !
     189            if ( (wq(ij,l+1)-wq(ij,l)) .lt. -(masse(ij,l)*q(ij,l)) ) then
     190              wq(ij,l+1) = wq(ij,l)-masse(ij,l)*q(ij,l)
     191            end if
     192
    198193            q(ij,l)=q(ij,l) +  (wq(ij,l+1)-wq(ij,l))/masse(ij,l)
    199194
Note: See TracChangeset for help on using the changeset viewer.