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_red.F90

    r4018 r4035  
    88
    99subroutine moldiff_red(ngrid,nlayer,nq,pplay,pplev,pt,pdt,pq,pdq,&
    10                        ptimestep,zzlay,pdteuv,pdtconduc,pdqdiff,&
     10                       ptimestep,pdqdiff,&
    1111                       PhiEscH,PhiEscH2,PhiEscD)
    1212
     
    3131      integer,intent(in) :: nlayer ! number of atmospheric layers
    3232      integer,intent(in) :: nq ! number of advected tracers
    33       real ptimestep
    34       real pplay(ngrid,nlayer)
    35       real zzlay(ngrid,nlayer)
    36       real pplev(ngrid,nlayer+1)
    37       real pq(ngrid,nlayer,nq)
    38       real pdq(ngrid,nlayer,nq)
    39       real pt(ngrid,nlayer)
    40       real pdt(ngrid,nlayer)
    41       real pdteuv(ngrid,nlayer)
    42       real pdtconduc(ngrid,nlayer)
    43       real pdqdiff(ngrid,nlayer,nq)
    44       real*8 PhiEscH,PhiEscH2,PhiEscD
     33      real,intent(in) :: ptimestep ! physics time step (s)
     34      real,intent(in) :: pplay(ngrid,nlayer) ! mid-layer pressure (Pa)
     35      real,intent(in) :: pplev(ngrid,nlayer+1) ! pressure (Pa) at layer boundaries
     36      real,intent(in) :: pq(ngrid,nlayer,nq) ! input tracer mmr (kg/kg_air)
     37      real,intent(in) :: pdq(ngrid,nlayer,nq) ! input tendency on tracers (kg/kg_air/s)
     38      real,intent(in) :: pt(ngrid,nlayer) ! input temperature (K)
     39      real,intent(in) :: pdt(ngrid,nlayer) ! input tendency on temperature (K/s)
     40      real,intent(out) :: pdqdiff(ngrid,nlayer,nq) ! tendency on tracers (kg/kg_air/s)
     41      real*8,intent(out) :: PhiEscH,PhiEscH2,PhiEscD
    4542!
    4643! Local
     
    255252!     &  ,tt,ptimestep,nlayer,ig)
    256253        do l=1,nlayer
    257           tt(l)=pt(ig,l)*1D0+(pdt(ig,l)*dble(ptimestep)+                &
    258                               pdtconduc(ig,l)*dble(ptimestep)+          &
    259                               pdteuv(ig,l)*dble(ptimestep))
     254          tt(l)=pt(ig,l)*1D0+(pdt(ig,l)*dble(ptimestep))
    260255          ! to cach Nans...
    261256          if (tt(l).ne.tt(l)) then
    262257            print*,'Err TMNEW',ig,l,tt(l),pt(ig,l),                     &
    263               pdt(ig,l),pdtconduc(ig,l),pdteuv(ig,l),dble(ptimestep)
     258              pdt(ig,l),dble(ptimestep)
    264259          endif
    265260        enddo ! of do l=1,nlayer
     
    322317        Print*,'Zmax too high',ig,zmax,zmin
    323318        do l=1,nlayer
    324         print*,'old',zz(l),pt(ig,l),pdteuv(ig,l),pdq(ig,l,:)
     319        print*,'old',zz(l),pt(ig,l),pdt(ig,l),pdq(ig,l,:)
    325320        print*,'l',l,rhot(l),tt(l),pp(l),massemoy(l),qq(l,:)
    326321        enddo
Note: See TracChangeset for help on using the changeset viewer.