source: LMDZ6/trunk/libf/phylmd/output_physiqex_mod.f90 @ 5421

Last change on this file since 5421 was 5268, checked in by abarral, 2 months ago

.f90 <-> .F90 depending on cpp key use

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
9      USE dimphy, only : klon,klev
10      USE iophy, only : histbeg_phy,histwrite_phy
11      USE ioipsl, only : histvert,histdef,histend,histsync
12      USE mod_phys_lmdz_para, only : jj_nb
13      USE ioipsl_getin_p_mod, ONLY : getin_p
14      USE mod_grid_phy_lmdz, ONLY: nbp_lon,nbp_lat
15      USE iophy, ONLY : init_iophy_new
16      USE geometry_mod, ONLY: latitude_deg, longitude_deg
[4547]17      USE infotrac_phy, only : nqtot
[4539]18
19
20
21implicit none
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)
[4547]28real,intent(in) :: theta(klon,klev) ! temperature (K)
[4539]29real,intent(in) :: paprs(klon,klev+1) ! interlayer pressure (Pa)
[4547]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
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
41
42integer,save :: iwrite_phys=1 ! output every iwrite_phys physics step
43!$OMP THREADPRIVATE(iwrite_phys)
44integer :: nhori ! horizontal coordinate ID
45integer,save :: nid_hist ! output file ID
46!$OMP THREADPRIVATE(nid_hist)
47integer, save :: itau=0
48!$OMP THREADPRIVATE(itau)
49
[4540]50integer, save :: ioex=1
[4539]51
52
53print*,'nnnnnnn ',nid_hist,debut,itau
54
55if(debut)then
56
[4540]57   call getin_p("iwrite_phys",iwrite_phys)
[4539]58
59   !$OMP MASTER
[4547]60   CALL iophys_ini(pdtphys)
61   !$OMP END MASTER
62   !$OMP BARRIER
[4539]63
64endif
65
66
67itau=itau+1
68
69if (modulo(itau,iwrite_phys)==0) then
[4540]70     call iophys_ecrit('temp',klev,'Temperature','K',t)
[4547]71     call iophys_ecrit('u',klev,'zonal wind','m/s',u)
72     call iophys_ecrit('v',klev,'meridinal wind','m/s',v)
[4540]73     call iophys_ecrit('ps',1,'Surface pressure','Pa',paprs(:,1))
[4547]74     call iophys_ecrit('qv',klev,'Water vapor specifiq content', 'kg/kg', qx(:,:,1))
75     call iophys_ecrit('qc',klev,'Cloud liquid water specifiq content', 'kg/kg', qx(:,:,2))
76     call iophys_ecrit('qi',klev,'Cloud solid water specifiq content', 'kg/kg', qx(:,:,3))
77     call iophys_ecrit('CF',klev,'Cloud fraction', '0-1', cf)
78     call iophys_ecrit('qr',klev,'Rain specifiq content', 'kg/kg', zqr)
79     call iophys_ecrit('qs',klev,'Snow specifiq content', 'kg/kg', zqs)
80     call iophys_ecrit('qg',klev,'Graupel specifiq content', 'kg/kg', zqg)
81     call iophys_ecrit('TKE',klev,'TKE', 'm2/s2', ptke)
82     call iophys_ecrit('theta',klev,'Temperature potentielle', 'K', theta)
[4539]83endif
84
85
86END SUBROUTINE output_physiqex
87END MODULE output_physiqex_mod
Note: See TracBrowser for help on using the repository browser.