Ignore:
Timestamp:
Jul 1, 2011, 5:22:34 PM (14 years ago)
Author:
acolaitis
Message:

17/06/2011 == AC

  • Added new settings for the Martian thermals from new LES observations
  • Revamped thermcell's module variables to allow it's removal
  • Minor changes in physiq and meso_physiq for the call to thermals
  • Switched from dynamic to static memory allocation for all thermals variable

to gain computation speed

  • Thermals now output maximum speed, maximum heat flux, and maximum height in thermal plumes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/physiq.F

    r173 r185  
    206206
    207207      CHARACTER*80 fichier
    208       INTEGER l,ig,ierr,igout,iq,i, tapphys
     208      INTEGER l,ig,ierr,igout,iq,i, tapphys,k
     209      LOGICAL end_of_file
    209210
    210211      REAL fluxsurf_lw(ngridmx)      !incident LW (IR) surface flux (W.m-2)
     
    302303c Variables from thermal
    303304
    304       REAL lmax_th_out(ngrid)
    305       REAL wmax_th(ngrid),hfmax_th(ngrid)
    306       REAL pdu_th(ngrid,nlayer),pdv_th(ngrid,nlayer)
    307       REAL pdt_th(ngrid,nlayer),pdq_th(ngrid,nlayer,nq)
    308       INTEGER lmax_th(ngrid)
    309       REAL dtke_th(ngrid,nlayer+1)
    310       REAL dummycol(ngrid)
    311       REAL hfx(ngrid)
     305      REAL lmax_th_out(ngridmx),zmax_th(ngridmx)
     306      REAL wmax_th(ngridmx)
     307      REAL ,SAVE :: hfmax_th(ngridmx)
     308      REAL pdu_th(ngridmx,nlayermx),pdv_th(ngridmx,nlayermx)
     309      REAL pdt_th(ngridmx,nlayermx),pdq_th(ngridmx,nlayermx,nqmx)
     310      INTEGER lmax_th(ngridmx)
     311      REAL dtke_th(ngridmx,nlayermx+1)
     312      REAL dummycol(ngridmx)
    312313
    313314c=======================================================================
     
    562563           ENDIF
    563564
    564 
    565 
    566565        ENDIF ! of if(mod(icount-1,iradia).eq.0)
    567566
     
    578577               fluxrad(ig)=fluxrad_sky(ig)-zplanck(ig)
    579578           ENDDO
    580 
    581579
    582580         DO l=1,nlayer
     
    624622            enddo
    625623         enddo
    626          
     624
    627625c        Calling vdif (Martian version WITH CO2 condensation)
    628626         CALL vdifc(ngrid,nlayer,nq,co2ice,zpopsk,
     
    634632     &        zdqdif,zdqsdif)
    635633
    636           hfx(:) = zflubid(:)-capcal(:)*zdtsdif(:)
    637 
    638634         DO l=1,nlayer
    639635            DO ig=1,ngrid
     
    647643         ENDDO
    648644
    649          DO ig=1,ngrid
    650             zdtsurf(ig)=zdtsurf(ig)+zdtsdif(ig)
    651          ENDDO
     645          DO ig=1,ngrid
     646             zdtsurf(ig)=zdtsurf(ig)+zdtsdif(ig)
     647          ENDDO
    652648
    653649         if (tracer) then
     
    680676      if(calltherm) then
    681677 
    682         call calltherm_interface(ngrid,nlayer,firstcall,
     678        call calltherm_interface(firstcall,
    683679     $ long,lati,zzlev,zzlay,
    684680     $ ptimestep,pu,pv,pt,pq,pdu,pdv,pdt,pdq,q2,
    685      $ pplay,pplev,pphi,nq,zpopsk,
    686      $ pdu_th,pdv_th,pdt_th,pdq_th,lmax_th,dtke_th,hfmax_th,wmax_th)
     681     $ pplay,pplev,pphi,zpopsk,
     682     $ pdu_th,pdv_th,pdt_th,pdq_th,lmax_th,zmax_th,
     683     $ dtke_th,hfmax_th,wmax_th)
    687684 
    688685         DO l=1,nlayer
     
    767764     $              co2ice,albedo,emis,
    768765     $              zdtc,zdtsurfc,pdpsrf,zduc,zdvc,zdqc,
    769      $              fluxsurf_sw,zls)
     766     $              fluxsurf_sw,zls)
    770767
    771768         DO l=1,nlayer
     
    14821479        lmax_th_out(:)=real(lmax_th(:))
    14831480
    1484         call WRITEDIAGFI(ngridmx,'hfx',
    1485      &              'sensible heat flux','W.m-2',
    1486      &                         2,hfx)
    1487 
    14881481        call WRITEDIAGFI(ngridmx,'lmax_th',
    14891482     &              'hauteur du thermique','K',
     
    15341527! THERMALS STUFF 1D
    15351528
    1536         call WRITEDIAGFI(ngridmx,'hfx',
    1537      &              'sensible heat flux','W.m-2',
    1538      &                         0,hfx)
    15391529         if(calltherm) then
    15401530
     
    15801570     &                  tsurf)
    15811571
    1582            call WRITEDIAGFI(ngrid,"fluxsurf_sw",
    1583      &                "Solar radiative flux to surface","W.m-2",0,
    1584      &                fluxsurf_sw_tot)
    1585 
    15861572         call WRITEDIAGFI(ngrid,"pplay","Pressure","Pa",1,zplay)
    15871573         call WRITEDIAGFI(ngrid,"pplev","Pressure","Pa",1,zplev)
Note: See TracChangeset for help on using the changeset viewer.