source: LMDZ6/branches/Amaury_dev/libf/phylmd/output_physiqex_mod.F90

Last change on this file was 5117, checked in by abarral, 2 months ago

rename modules properly lmdz_*
move some unused files to obsolete/
(lint) uppercase fortran keywords

File size: 2.9 KB
RevLine 
[4539]1MODULE output_physiqex_mod
2
3
4
5CONTAINS
6
[4547]7SUBROUTINE output_physiqex(debut,zjulian,pdtphys,presnivs,paprs,u,v,t,qx,cf,zqr,zqs,zqg,ptke,theta)
[4539]8
[5101]9      USE dimphy, ONLY: klon,klev
10      USE iophy, ONLY: histbeg_phy,histwrite_phy
11      USE ioipsl, ONLY: histvert,histdef,histend,histsync
[5110]12      USE lmdz_phys_para, ONLY: jj_nb
[5112]13      USE lmdz_ioipsl_getin_p, ONLY: getin_p
[5110]14      USE lmdz_grid_phy, ONLY: nbp_lon,nbp_lat
[5101]15      USE iophy, ONLY: init_iophy_new
[5112]16      USE lmdz_geometry, ONLY: latitude_deg, longitude_deg
[5101]17      USE infotrac_phy, ONLY: nqtot
[4539]18
19
20
[5113]21IMPLICIT NONE
[5117]22logical, INTENT(IN) :: debut
23REAL, INTENT(IN) :: pdtphys,zjulian
24REAL,INTENT(IN) :: presnivs(klev) ! pseudo-pressure (Pa) of mid-layers
25REAL,INTENT(IN) :: u(klon,klev) ! eastward zonal wind (m/s)
26REAL,INTENT(IN) :: v(klon,klev) ! northward meridional wind (m/s)
27REAL,INTENT(IN) :: t(klon,klev) ! temperature (K)
28REAL,INTENT(IN) :: theta(klon,klev) ! temperature (K)
29REAL,INTENT(IN) :: paprs(klon,klev+1) ! interlayer pressure (Pa)
30REAL,INTENT(IN) :: qx(klon,klev,nqtot) !tracers
31REAL,INTENT(IN) :: cf(klon,klev) !cloud fraction
32REAL,INTENT(IN) :: zqr(klon,klev) !rain specifiq content
33REAL,INTENT(IN) :: zqs(klon,klev) !snow specifiq content
34REAL,INTENT(IN) :: zqg(klon,klev) !graupel specifiq content
35REAL,INTENT(IN) :: ptke(klon,klev) !tke
[4539]36
[5116]37REAL :: t_ops ! frequency of the IOIPSL operations (eg average over...)
38REAL :: t_wrt ! frequency of the IOIPSL outputs
39INTEGER :: zvertid ! vertical coordinate ID
40REAL :: dtime
[4539]41
[5117]42INTEGER,save :: iwrite_phys=1 ! output every iwrite_phys physics step
[4539]43!$OMP THREADPRIVATE(iwrite_phys)
[5116]44INTEGER :: nhori ! horizontal coordinate ID
[5117]45INTEGER,save :: nid_hist ! output file ID
[4539]46!$OMP THREADPRIVATE(nid_hist)
[5117]47INTEGER, save :: itau=0
[4539]48!$OMP THREADPRIVATE(itau)
49
[5117]50INTEGER, save :: ioex=1
[4539]51
52
[5103]53PRINT*,'nnnnnnn ',nid_hist,debut,itau
[4539]54
[5116]55IF(debut)THEN
[5103]56   CALL getin_p("iwrite_phys",iwrite_phys)
[4539]57
58   !$OMP MASTER
[4547]59   CALL iophys_ini(pdtphys)
60   !$OMP END MASTER
61   !$OMP BARRIER
[4539]62
[5103]63END IF
[4539]64
65
66itau=itau+1
67
[5116]68IF (modulo(itau,iwrite_phys)==0) THEN
[5103]69     CALL iophys_ecrit('temp',klev,'Temperature','K',t)
70     CALL iophys_ecrit('u',klev,'zonal wind','m/s',u)
71     CALL iophys_ecrit('v',klev,'meridinal wind','m/s',v)
72     CALL iophys_ecrit('ps',1,'Surface pressure','Pa',paprs(:,1))
73     CALL iophys_ecrit('qv',klev,'Water vapor specifiq content', 'kg/kg', qx(:,:,1))
74     CALL iophys_ecrit('qc',klev,'Cloud liquid water specifiq content', 'kg/kg', qx(:,:,2))
75     CALL iophys_ecrit('qi',klev,'Cloud solid water specifiq content', 'kg/kg', qx(:,:,3))
76     CALL iophys_ecrit('CF',klev,'Cloud fraction', '0-1', cf)
77     CALL iophys_ecrit('qr',klev,'Rain specifiq content', 'kg/kg', zqr)
78     CALL iophys_ecrit('qs',klev,'Snow specifiq content', 'kg/kg', zqs)
79     CALL iophys_ecrit('qg',klev,'Graupel specifiq content', 'kg/kg', zqg)
80     CALL iophys_ecrit('TKE',klev,'TKE', 'm2/s2', ptke)
81     CALL iophys_ecrit('theta',klev,'Temperature potentielle', 'K', theta)
82END IF
[4539]83
84
85END SUBROUTINE output_physiqex
86END MODULE output_physiqex_mod
Note: See TracBrowser for help on using the repository browser.