MODULE output_physiqex_mod CONTAINS SUBROUTINE output_physiqex(debut,zjulian,pdtphys,presnivs,paprs,u,v,t,qx,cf,zqr,zqs,zqg,ptke,theta) USE dimphy, ONLY: klon,klev USE iophy, ONLY: histbeg_phy,histwrite_phy USE ioipsl, ONLY: histvert,histdef,histend,histsync USE lmdz_phys_para, ONLY: jj_nb USE lmdz_ioipsl_getin_p, ONLY: getin_p USE lmdz_grid_phy, ONLY: nbp_lon,nbp_lat USE iophy, ONLY: init_iophy_new USE lmdz_geometry, ONLY: latitude_deg, longitude_deg USE infotrac_phy, ONLY: nqtot IMPLICIT NONE logical, INTENT(IN) :: debut REAL, INTENT(IN) :: pdtphys,zjulian REAL,INTENT(IN) :: presnivs(klev) ! pseudo-pressure (Pa) of mid-layers REAL,INTENT(IN) :: u(klon,klev) ! eastward zonal wind (m/s) REAL,INTENT(IN) :: v(klon,klev) ! northward meridional wind (m/s) REAL,INTENT(IN) :: t(klon,klev) ! temperature (K) REAL,INTENT(IN) :: theta(klon,klev) ! temperature (K) REAL,INTENT(IN) :: paprs(klon,klev+1) ! interlayer pressure (Pa) REAL,INTENT(IN) :: qx(klon,klev,nqtot) !tracers REAL,INTENT(IN) :: cf(klon,klev) !cloud fraction REAL,INTENT(IN) :: zqr(klon,klev) !rain specifiq content REAL,INTENT(IN) :: zqs(klon,klev) !snow specifiq content REAL,INTENT(IN) :: zqg(klon,klev) !graupel specifiq content REAL,INTENT(IN) :: ptke(klon,klev) !tke REAL :: t_ops ! frequency of the IOIPSL operations (eg average over...) REAL :: t_wrt ! frequency of the IOIPSL outputs INTEGER :: zvertid ! vertical coordinate ID REAL :: dtime INTEGER,save :: iwrite_phys=1 ! output every iwrite_phys physics step !$OMP THREADPRIVATE(iwrite_phys) INTEGER :: nhori ! horizontal coordinate ID INTEGER,save :: nid_hist ! output file ID !$OMP THREADPRIVATE(nid_hist) INTEGER, save :: itau=0 !$OMP THREADPRIVATE(itau) INTEGER, save :: ioex=1 PRINT*,'nnnnnnn ',nid_hist,debut,itau IF(debut)THEN CALL getin_p("iwrite_phys",iwrite_phys) !$OMP MASTER CALL iophys_ini(pdtphys) !$OMP END MASTER !$OMP BARRIER END IF itau=itau+1 IF (modulo(itau,iwrite_phys)==0) THEN CALL iophys_ecrit('temp',klev,'Temperature','K',t) CALL iophys_ecrit('u',klev,'zonal wind','m/s',u) CALL iophys_ecrit('v',klev,'meridinal wind','m/s',v) CALL iophys_ecrit('ps',1,'Surface pressure','Pa',paprs(:,1)) CALL iophys_ecrit('qv',klev,'Water vapor specifiq content', 'kg/kg', qx(:,:,1)) CALL iophys_ecrit('qc',klev,'Cloud liquid water specifiq content', 'kg/kg', qx(:,:,2)) CALL iophys_ecrit('qi',klev,'Cloud solid water specifiq content', 'kg/kg', qx(:,:,3)) CALL iophys_ecrit('CF',klev,'Cloud fraction', '0-1', cf) CALL iophys_ecrit('qr',klev,'Rain specifiq content', 'kg/kg', zqr) CALL iophys_ecrit('qs',klev,'Snow specifiq content', 'kg/kg', zqs) CALL iophys_ecrit('qg',klev,'Graupel specifiq content', 'kg/kg', zqg) CALL iophys_ecrit('TKE',klev,'TKE', 'm2/s2', ptke) CALL iophys_ecrit('theta',klev,'Temperature potentielle', 'K', theta) END IF END SUBROUTINE output_physiqex END MODULE output_physiqex_mod