Ignore:
Timestamp:
Jan 30, 2026, 12:40:55 PM (4 weeks ago)
Author:
emillour
Message:

Mars PCM:
Cleanup and correction around thermospheric processes: ensure that the
tendencies from previous processes are included before being sent to
the next process (was not the case for conduction).
EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/aeronomars/moldiff_MPF.F90

    r4021 r4035  
    88
    99subroutine moldiff_MPF(ngrid,nlayer,nq,pplay,pplev,pt,pdt,pq,pdq,&
    10                        ptimestep,zzlay,pdteuv,pdtconduc,pdqdiff,&
     10                       ptimestep,pdqdiff,&
    1111                       PhiEscH,PhiEscH2,PhiEscD)
    1212
     
    3232      integer,intent(in) :: nlayer ! number of atmospheric layers
    3333      integer,intent(in) :: nq ! number of advected tracers
    34       real ptimestep
    35       real pplay(ngrid,nlayer)
    36       real zzlay(ngrid,nlayer)
    37       real pplev(ngrid,nlayer+1)
    38       real pq(ngrid,nlayer,nq)
    39       real pdq(ngrid,nlayer,nq)
    40       real pt(ngrid,nlayer)
    41       real pdt(ngrid,nlayer)
    42       real pdteuv(ngrid,nlayer)
    43       real pdtconduc(ngrid,nlayer)
    44       real pdqdiff(ngrid,nlayer,nq)
    45       real*8 PhiEscH,PhiEscH2,PhiEscD
     34      real,intent(in) :: ptimestep ! physics time step (s)
     35      real,intent(in) :: pplay(ngrid,nlayer) ! mid-layer pressure (Pa)
     36      real,intent(in) :: pplev(ngrid,nlayer+1) ! pressure (Pa) at layer boundaries
     37      real,intent(in) :: pq(ngrid,nlayer,nq) ! input tracer mmr (kg/kg_air)
     38      real,intent(in) :: pdq(ngrid,nlayer,nq) ! input tendency on tracers (kg/kg_air/s)
     39      real,intent(in) :: pt(ngrid,nlayer) ! input temperature (K)
     40      real,intent(in) :: pdt(ngrid,nlayer) ! input tendency on temperature (K/s)
     41      real,intent(out) :: pdqdiff(ngrid,nlayer,nq) ! tendency on tracers (kg/kg_air/s)
     42      real*8,intent(out) :: PhiEscH ! escape flux of H (.../s)
     43      real*8,intent(out) :: PhiEscH2 ! escape flux of H2 (.../s)
     44      real*8,intent(out) :: PhiEscD ! escape flux of D (.../s)
    4645!
    4746! Local
     
    271270!     &  ,tt,ptimestep,nlayer,ig)
    272271        do l=1,nlayer
    273           tt(l)=pt(ig,l)*1D0+(pdt(ig,l)*dble(ptimestep)+                &
    274                               pdtconduc(ig,l)*dble(ptimestep)+          &
    275                               pdteuv(ig,l)*dble(ptimestep))
     272          tt(l)=pt(ig,l)*1D0+(pdt(ig,l)*dble(ptimestep))
    276273          ! to cach Nans...
    277274          if (tt(l).ne.tt(l)) then
    278275            print*,'Err TMNEW',ig,l,tt(l),pt(ig,l),                     &
    279               pdt(ig,l),pdtconduc(ig,l),pdteuv(ig,l),dble(ptimestep)
     276              pdt(ig,l),dble(ptimestep)
    280277          endif
    281278        enddo ! of do l=1,nlayer
     
    338335        Print*,'Zmax too high',ig,zmax,zmin
    339336        do l=1,nlayer
    340         print*,'old',zz(l),pt(ig,l),pdteuv(ig,l),pdq(ig,l,:)
     337        print*,'old',zz(l),pt(ig,l),pdt(ig,l),pdq(ig,l,:)
    341338        print*,'l',l,rhot(l),tt(l),pp(l),massemoy(l),qq(l,:)
    342339        enddo
Note: See TracChangeset for help on using the changeset viewer.