Ignore:
Timestamp:
Apr 3, 2023, 6:17:05 PM (23 months ago)
Author:
romain.vande
Message:

Mars PCM:
Add a new routine to write output called write_output.
It needs to be imported (for example : use write_output_mod, only: write_output)
Then, it requires only 4 arguments : the name of the variable, its title, its units and the variable itself.
It detects the dimension of the variable and decide to output either in diagfi or diagsoil.
It is also compatible with XIOS (xml file needs to be adapted)
Writediagfi and writediagsoil routines are still available in case.
RV

File:
1 edited

Legend:

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

    r2801 r2932  
    2727     &                      qperemin
    2828      use dimradmars_mod, only: naerkind
     29      use write_output_mod, only: write_output
    2930      IMPLICIT NONE
    3031
     
    268269     &                           cloudfrac(:,:)
    269270      !! CLFvarying outputs
    270       CALL WRITEDIAGFI(ngrid,'pqeffice','pqeffice',
    271      &             'kg/kg',3,pqeff(:,:,igcm_h2o_ice))
    272       CALL WRITEDIAGFI(ngrid,'pteff','pteff',
    273      &             'K',3,pteff(:,:))
    274       CALL WRITEDIAGFI(ngrid,'tcond','tcond',
    275      &             'K',3,tcond(:,:))
    276       CALL WRITEDIAGFI(ngrid,'cloudfrac','cloudfrac',
    277      &             'K',3,cloudfrac(:,:))
     271      CALL write_output('pqeffice','pqeffice',
     272     &             'kg/kg',pqeff(:,:,igcm_h2o_ice))
     273      CALL write_output('pteff','pteff',
     274     &             'K',pteff(:,:))
     275      CALL write_output('tcond','tcond',
     276     &             'K',tcond(:,:))
     277      CALL write_output('cloudfrac','cloudfrac',
     278     &             'K',cloudfrac(:,:))
    278279      END IF ! end if (CLFvarying)
    279280c------------------------------------------------------------------
     
    713714#ifndef MESOSCALE
    714715c=======================================================================
    715       call WRITEDIAGFI(ngrid,"pdqice2","pdqcloudice apres microphysique"
    716      &      ,"kg/kg.s-1",3,pdqcloud(1:ngrid,1:nlay,igcm_h2o_ice))
    717       call WRITEDIAGFI(ngrid,"pdqvap2","pdqcloudvap apres microphysique"
    718      &      ,"kg/kg.s-1",3,pdqcloud(1:ngrid,1:nlay,
     716      call write_output("pdqice2","pdqcloudice apres microphysique"
     717     &      ,"kg/kg.s-1",pdqcloud(:,:,igcm_h2o_ice))
     718      call write_output("pdqvap2","pdqcloudvap apres microphysique"
     719     &      ,"kg/kg.s-1",pdqcloud(:,:,
    719720     &      igcm_h2o_vap))
    720721      if (hdo) then
    721       call WRITEDIAGFI(ngrid,"pdqiceD","pdqiceD apres microphysique"
    722      &      ,"kg/kg.s-1",3,pdqcloud(1:ngrid,1:nlay,igcm_hdo_ice))
    723       call WRITEDIAGFI(ngrid,"pdqvapD","pdqvapD apres microphysique"
    724      &      ,"kg/kg.s-1",3,pdqcloud(1:ngrid,1:nlay,
     722      call write_output("pdqiceD","pdqiceD apres microphysique"
     723     &      ,"kg/kg.s-1",pdqcloud(:,:,igcm_hdo_ice))
     724      call write_output("pdqvapD","pdqvapD apres microphysique"
     725     &      ,"kg/kg.s-1",pdqcloud(:,:,
    725726     &      igcm_hdo_vap))
    726727      endif
    727       call WRITEDIAGFI(ngrid,"pdqccn2","pdqcloudccn apres microphysique"
    728      &      ,"kg/kg.s-1",3,pdqcloud(1:ngrid,1:nlay,
     728      call write_output("pdqccn2","pdqcloudccn apres microphysique"
     729     &      ,"kg/kg.s-1",pdqcloud(:,:,
    729730     &      igcm_ccn_mass))
    730       call WRITEDIAGFI(ngrid,"pdqccnN2","pdqcloudccnN apres "//
    731      &      "microphysique","nb/kg.s-1",3,pdqcloud(1:ngrid,1:nlay,
     731      call write_output("pdqccnN2","pdqcloudccnN apres "//
     732     &      "microphysique","nb/kg.s-1",pdqcloud(:,:,
    732733     &      igcm_ccn_number))
    733       call WRITEDIAGFI(ngrid,"pdqdust2", "pdqclouddust apres "//
    734      &      "microphysique","kg/kg.s-1",3,pdqcloud(1:ngrid,1:nlay,
     734      call write_output("pdqdust2", "pdqclouddust apres "//
     735     &      "microphysique","kg/kg.s-1",pdqcloud(:,:,
    735736     &      igcm_dust_mass))
    736       call WRITEDIAGFI(ngrid,"pdqdustN2", "pdqclouddustN apres "//
    737      &      "microphysique","nb/kg.s-1",3,pdqcloud(1:ngrid,1:nlay,
     737      call write_output("pdqdustN2", "pdqclouddustN apres "//
     738     &      "microphysique","nb/kg.s-1",pdqcloud(:,:,
    738739     &      igcm_dust_number))
    739740c=======================================================================
Note: See TracChangeset for help on using the changeset viewer.