LMDZ
phys_output_write_mod.F90
Go to the documentation of this file.
1 !
2 ! $Header$
3 !
5 
9 
10  ! Author: Abderrahmane IDELKADI (original include file)
11  ! Author: Laurent FAIRHEAD (transformation to module/subroutine)
12  ! Author: Ulysse GERARD (effective implementation)
13 
14 CONTAINS
15 
16  ! ug Routine pour définir (los du premier passageà) ET sortir les variables
17  SUBROUTINE phys_output_write(itap, pdtphys, paprs, pphis, &
18  pplay, lmax_th, aerosol_couple, &
19  ok_ade, ok_aie, ivap, new_aod, ok_sync, &
20  ptconv, read_climoz, clevstd, ptconvth, &
21  d_t, qx, d_qx, zmasse, flag_aerosol, flag_aerosol_strat, ok_cdnc)
22 
23  ! This subroutine does the actual writing of diagnostics that were
24  ! defined and initialised in phys_output_mod.F90
25 
26  USE dimphy, only: klon, klev, klevp1, nslay
27  USE mod_grid_phy_lmdz, ONLY : nbp_lon, nbp_lat
75  o_delta_tsurf, &
77  o_kh , o_kh_x , o_kh_w , &
132  o_ptconv, o_ratqs, o_dtthe, &
134  o_f_th, o_e_th, o_w_th, o_q_th, &
152  o_hus, o_hur, o_ua, o_va, o_wap, &
154  o_uxv, o_vxq, o_vxt, o_wxq, o_vxphi, &
155  o_wxt, o_uxu, o_vxv, o_txt, o_trac, &
163 
165  qsol, z0m, z0h, fevap, agesno, &
167  topsw, toplw, toplw0, swup, swdn, &
174  delta_tsurf, &
175  wstar, cape, ema_pcb, ema_pct, &
181  lwup, lwdn, lwup0, coefm, &
190 
193  zu10m, zv10m, zq2m, zustar, zxqsurf, &
198  t2m, fluxt, fluxlat, fsollw, fsolsw, &
200  cldh, cldt, jrnt, cldljn, cldmjn, cldhjn, &
201  cldtjn, cldq, flwp, fiwp, ue, ve, uq, vq, &
202  plcl, plfc, wbeff, upwd, dnwd, dnwd0, prw, &
209  kh ,kh_x ,kh_w , &
210  wake_h, &
217  pmflxr, pmflxs, prfl, psfl, re, fl, rh2m, &
218  qsat2m, tpote, tpot, d_ts, od550aer, &
232 !jyg<
233 !! ql_seri, zphi, u_seri, v_seri, omega, cldfra, &
234  ql_seri, tr_seri, &
235  zphi, u_seri, v_seri, omega, cldfra, &
237  rneb, rnebjn, zx_rh, d_t_dyn, d_q_dyn, &
238  d_u_dyn, d_v_dyn, d_t_con, d_t_ajsb, d_t_ajs, &
239  d_u_ajs, d_v_ajs, &
240  d_u_con, d_v_con, d_q_con, d_q_ajs, d_t_lsc, &
241  d_t_lwr,d_t_lw0,d_t_swr,d_t_sw0, &
242  d_t_eva, d_q_lsc, beta_prec, d_t_lscth, &
243  d_t_lscst, d_q_lscth, d_q_lscst, plul_th, &
244  plul_st, d_t_vdf, d_t_diss, d_q_vdf, d_q_eva, &
245  zw2, fraca, zmax_th, d_q_ajsb, d_t_ec, d_u_vdf, &
246  d_v_vdf, d_u_oro, d_v_oro, d_t_oro, d_u_lif, &
247  d_v_lif, d_t_lif, du_gwd_hines, dv_gwd_hines, d_t_hin, &
248  dv_gwd_rando, dv_gwd_front, &
249  east_gwstress, west_gwstress, &
250  d_q_ch4, pmfd, pmfu, ref_liq, ref_ice, rhwritestd
251 
258  USE pbl_surface_mod, only: snow
259  USE indice_sol_mod, only: nbsrf
260  USE infotrac_phy, only: nqtot, nqo, type_trac
261  USE geometry_mod, only: cell_area
263 ! USE aero_mod, only: naero_spc
264  USE aero_mod, only: naero_tot, id_strat_phy
265  USE ioipsl, only: histend, histsync
267  USE netcdf, only: nf90_fill_real
269 
270 
271 #ifdef CPP_XIOS
272  ! ug Pour les sorties XIOS
273  USE xios, ONLY: xios_update_calendar
274  USE wxios, only: wxios_closedef, missing_val
275 #endif
276  USE phys_cal_mod, only : mth_len
277 
278 
279  IMPLICIT NONE
280 
281 
282  include "clesphys.h"
283  include "thermcell.h"
284  include "compbl.h"
285  include "YOMCST.h"
286 
287  ! Input
288  INTEGER :: itap, ivap, read_climoz
289  INTEGER, DIMENSION(klon) :: lmax_th
290  LOGICAL :: aerosol_couple, ok_sync
291  LOGICAL :: ok_ade, ok_aie, new_aod
292  LOGICAL, DIMENSION(klon, klev) :: ptconv, ptconvth
293  REAL :: pdtphys
294  CHARACTER (LEN=4), DIMENSION(nlevSTD) :: clevSTD
295  REAL, DIMENSION(klon,nlevSTD) :: zx_tmp_fi3d_STD
296  REAL, DIMENSION(klon) :: pphis
297  REAL, DIMENSION(klon, klev) :: pplay, d_t
298  REAL, DIMENSION(klon, klev+1) :: paprs
299  REAL, DIMENSION(klon,klev,nqtot) :: qx, d_qx
300  REAL, DIMENSION(klon, klev) :: zmasse
301  LOGICAL :: flag_aerosol_strat
302  INTEGER :: flag_aerosol
303  LOGICAL :: ok_cdnc
304  REAL, DIMENSION(3) :: freq_moyNMC
305 
306  ! Local
307  INTEGER :: itau_w
308  INTEGER :: i, iinit, iinitend=1, iff, iq, nsrf, k, ll, naero
309  REAL, DIMENSION (klon) :: zx_tmp_fi2d
310  REAL, DIMENSION (klon,klev) :: zx_tmp_fi3d, zpt_conv
311  REAL, DIMENSION (klon,klev+1) :: zx_tmp_fi3d1
312  CHARACTER (LEN=4) :: bb2
313  INTEGER, DIMENSION(nbp_lon*nbp_lat) :: ndex2d
314  INTEGER, DIMENSION(nbp_lon*nbp_lat*klev) :: ndex3d
315  REAL, PARAMETER :: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2
316 ! REAL, PARAMETER :: missing_val=nf90_fill_real
317 #ifndef CPP_XIOS
318  REAL :: missing_val
319 #endif
320  REAL, PARAMETER :: un_jour=86400.
321 
322  ! On calcul le nouveau tau:
323  itau_w = itau_phy + itap + start_time * day_step_phy
324  ! On le donne à iophy pour que les histwrite y aient accès:
325  CALL set_itau_iophy(itau_w)
326 
327  IF(.NOT.vars_defined) THEN
328  iinitend = 2
329  ELSE
330  iinitend = 1
331  ENDIF
332 
333  ! ug la boucle qui suit ne sert qu'une fois, pour l'initialisation, sinon il n'y a toujours qu'un seul passage:
334  DO iinit=1, iinitend
335 #ifdef CPP_XIOS
336  !$OMP MASTER
337  IF (vars_defined) THEN
338  if (prt_level >= 10) then
339  write(lunout,*)"phys_output_write: call xios_update_calendar, itau_w=",itau_w
340  endif
341 ! CALL xios_update_calendar(itau_w)
342  CALL xios_update_calendar(itap)
343  END IF
344  !$OMP END MASTER
345  !$OMP BARRIER
346 #endif
347  ! On procède à l'écriture ou à la définition des nombreuses variables:
348 !!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
349  CALL histwrite_phy(o_phis, pphis)
351 
352  IF (vars_defined) THEN
353  DO i=1, klon
354  zx_tmp_fi2d(i)=pctsrf(i,is_ter)+pctsrf(i,is_lic)
355  ENDDO
356  ENDIF
357 
358  CALL histwrite_phy(o_contfracatm, zx_tmp_fi2d)
359  CALL histwrite_phy(o_contfracor, pctsrf(:,is_ter))
361 !!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
364  CALL histwrite_phy(o_pt0, pt0)
365  CALL histwrite_phy(o_slp, slp)
367  CALL histwrite_phy(o_t2m, zt2m)
372 
373  IF (vars_defined) THEN
374  DO i=1, klon
375  zx_tmp_fi2d(i)=sqrt(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
376  ENDDO
377  ENDIF
378  CALL histwrite_phy(o_wind10m, zx_tmp_fi2d)
379 
380  IF (vars_defined) THEN
381  DO i=1, klon
382  zx_tmp_fi2d(i)=sqrt(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
383  ENDDO
384  ENDIF
385  CALL histwrite_phy(o_wind10max, zx_tmp_fi2d)
386 
388 
389  IF (vars_defined) THEN
390  DO i = 1, klon
391  zx_tmp_fi2d(i) = pctsrf(i,is_sic)
392  ENDDO
393  ENDIF
394  CALL histwrite_phy(o_sicf, zx_tmp_fi2d)
395  CALL histwrite_phy(o_q2m, zq2m)
397  CALL histwrite_phy(o_u10m, zu10m)
398  CALL histwrite_phy(o_v10m, zv10m)
399 
400  IF (vars_defined) THEN
401  DO i = 1, klon
402  zx_tmp_fi2d(i) = paprs(i,1)
403  ENDDO
404  ENDIF
405  CALL histwrite_phy(o_psol, zx_tmp_fi2d)
406  CALL histwrite_phy(o_mass, zmasse)
408 
409  IF (.NOT. ok_veget) THEN
410  CALL histwrite_phy(o_qsol, qsol)
411  ENDIF
412 
413  IF (vars_defined) THEN
414  DO i = 1, klon
415  zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
416  ENDDO
417  ENDIF
418 
419  CALL histwrite_phy(o_precip, zx_tmp_fi2d)
421 
422  IF (vars_defined) THEN
423  DO i = 1, klon
424  zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
425  ENDDO
426  ENDIF
427  CALL histwrite_phy(o_plul, zx_tmp_fi2d)
428 
429  IF (vars_defined) THEN
430  DO i = 1, klon
431  zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
432  ENDDO
433  ENDIF
434  CALL histwrite_phy(o_pluc, zx_tmp_fi2d)
438  CALL histwrite_phy(o_evap, evap)
441  CALL histwrite_phy(o_topl, toplw)
443 
444  IF (vars_defined) THEN
445  zx_tmp_fi2d(:) = swup(:,klevp1)*swradcorr(:)
446  ENDIF
447  CALL histwrite_phy(o_swuptoa, zx_tmp_fi2d)
448 
449  IF (vars_defined) THEN
450  zx_tmp_fi2d(:) = swup0(:,klevp1)*swradcorr(:)
451  ENDIF
452  CALL histwrite_phy(o_swuptoaclr, zx_tmp_fi2d)
453 
454  IF (vars_defined) THEN
455  zx_tmp_fi2d(:) = swdn(:,klevp1)*swradcorr(:)
456  ENDIF
457  CALL histwrite_phy(o_swdntoa, zx_tmp_fi2d)
458 
459  IF (vars_defined) THEN
460  zx_tmp_fi2d(:) = swdn0(:,klevp1)*swradcorr(:)
461  ENDIF
462  CALL histwrite_phy(o_swdntoaclr, zx_tmp_fi2d)
463 
464  IF (vars_defined) THEN
465  zx_tmp_fi2d(:) = topsw(:)*swradcorr(:)-toplw(:)
466  ENDIF
467  CALL histwrite_phy(o_nettop, zx_tmp_fi2d)
478  CALL histwrite_phy(o_soll, sollw)
481 
482  IF (vars_defined) THEN
483  zx_tmp_fi2d(:) = swup(:,1)*swradcorr(:)
484  ENDIF
485  CALL histwrite_phy(o_swupsfc, zx_tmp_fi2d)
486 
487  IF (vars_defined) THEN
488  zx_tmp_fi2d(:) = swup0(:,1)*swradcorr(:)
489  ENDIF
490  CALL histwrite_phy(o_swupsfcclr, zx_tmp_fi2d)
491 
492  IF (vars_defined) THEN
493  zx_tmp_fi2d(:) = swdn(:,1)*swradcorr(:)
494  ENDIF
495  CALL histwrite_phy(o_swdnsfc, zx_tmp_fi2d)
496 
497  IF (vars_defined) THEN
498  zx_tmp_fi2d(:) = swdn0(:,1)*swradcorr(:)
499  ENDIF
500  CALL histwrite_phy(o_swdnsfcclr, zx_tmp_fi2d)
501 
502  IF (vars_defined) THEN
503  zx_tmp_fi2d(:)=sollwdown(:)-sollw(:)
504  ENDIF
505  CALL histwrite_phy(o_lwupsfc, zx_tmp_fi2d)
507 
508  IF (vars_defined) THEN
509  sollwdownclr(1:klon) = -1.*lwdn0(1:klon,1)
510  zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
511  ENDIF
512  CALL histwrite_phy(o_lwupsfcclr, zx_tmp_fi2d)
514  CALL histwrite_phy(o_bils, bils)
517  IF (iflag_ener_conserv>=1) THEN
519  ENDIF
524 
525  IF (vars_defined) THEN
526  zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
527  ENDIF
528  CALL histwrite_phy(o_sens, zx_tmp_fi2d)
529  CALL histwrite_phy(o_fder, fder)
533  IF (vars_defined) THEN
534  zx_tmp_fi2d=0.
535  DO nsrf=1,nbsrf
536  zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxu(:,1,nsrf)
537  ENDDO
538  ENDIF
539  CALL histwrite_phy(o_taux, zx_tmp_fi2d)
540 
541  IF (vars_defined) THEN
542  zx_tmp_fi2d=0.
543  DO nsrf=1,nbsrf
544  zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxv(:,1,nsrf)
545  ENDDO
546  ENDIF
547  CALL histwrite_phy(o_tauy, zx_tmp_fi2d)
548 
549  IF (ok_snow) THEN
557  ENDIF
558 
559  DO nsrf = 1, nbsrf
560  IF (vars_defined) zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
561  CALL histwrite_phy(o_pourc_srf(nsrf), zx_tmp_fi2d)
562  IF (vars_defined) zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
563  CALL histwrite_phy(o_fract_srf(nsrf), zx_tmp_fi2d)
564  IF (vars_defined) zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
565  CALL histwrite_phy(o_taux_srf(nsrf), zx_tmp_fi2d)
566  IF (vars_defined) zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
567  CALL histwrite_phy(o_tauy_srf(nsrf), zx_tmp_fi2d)
568  IF (vars_defined) zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
569  CALL histwrite_phy(o_tsol_srf(nsrf), zx_tmp_fi2d)
570  IF (vars_defined) zx_tmp_fi2d(1 : klon) = evap_pot( 1 : klon, nsrf)
571  CALL histwrite_phy(o_evappot_srf(nsrf), zx_tmp_fi2d)
572  IF (vars_defined) zx_tmp_fi2d(1 : klon) = ustar(1 : klon, nsrf)
573  CALL histwrite_phy(o_ustar_srf(nsrf), zx_tmp_fi2d)
574  IF (vars_defined) zx_tmp_fi2d(1 : klon) = u10m(1 : klon, nsrf)
575  CALL histwrite_phy(o_u10m_srf(nsrf), zx_tmp_fi2d)
576  IF (vars_defined) zx_tmp_fi2d(1 : klon) = v10m(1 : klon, nsrf)
577  CALL histwrite_phy(o_v10m_srf(nsrf), zx_tmp_fi2d)
578  IF (vars_defined) zx_tmp_fi2d(1 : klon) = t2m(1 : klon, nsrf)
579  CALL histwrite_phy(o_t2m_srf(nsrf), zx_tmp_fi2d)
580  IF (vars_defined) zx_tmp_fi2d(1 : klon) = fevap(1 : klon, nsrf)
581  CALL histwrite_phy(o_evap_srf(nsrf), zx_tmp_fi2d)
582  IF (vars_defined) zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
583  CALL histwrite_phy(o_sens_srf(nsrf), zx_tmp_fi2d)
584  IF (vars_defined) zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
585  CALL histwrite_phy(o_lat_srf(nsrf), zx_tmp_fi2d)
586  IF (vars_defined) zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
587  CALL histwrite_phy(o_flw_srf(nsrf), zx_tmp_fi2d)
588  IF (vars_defined) zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
589  CALL histwrite_phy(o_fsw_srf(nsrf), zx_tmp_fi2d)
590  IF (vars_defined) zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
591  CALL histwrite_phy(o_wbils_srf(nsrf), zx_tmp_fi2d)
592  IF (vars_defined) zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
593  CALL histwrite_phy(o_wbilo_srf(nsrf), zx_tmp_fi2d)
594 
595  IF (iflag_pbl > 1) THEN
598  ENDIF
599 !jyg<
600  IF (iflag_pbl > 1 .AND. iflag_wake>=1 .AND. iflag_pbl_split >=1) THEN
602  ENDIF
604 
605  ENDDO
606  DO nsrf=1,nbsrf+1
607  CALL histwrite_phy(o_wstar(nsrf), wstar(1 : klon, nsrf))
608  ENDDO
609 
612  CALL histwrite_phy(o_cldl, cldl)
613  CALL histwrite_phy(o_cldm, cldm)
614  CALL histwrite_phy(o_cldh, cldh)
615  CALL histwrite_phy(o_cldt, cldt)
616  CALL histwrite_phy(o_jrnt, jrnt)
621  CALL histwrite_phy(o_cldq, cldq)
622  IF (vars_defined) zx_tmp_fi2d(1:klon) = flwp(1:klon)
623  CALL histwrite_phy(o_lwp, zx_tmp_fi2d)
624  IF (vars_defined) zx_tmp_fi2d(1:klon) = fiwp(1:klon)
625  CALL histwrite_phy(o_iwp, zx_tmp_fi2d)
626  CALL histwrite_phy(o_ue, ue)
627  CALL histwrite_phy(o_ve, ve)
628  CALL histwrite_phy(o_uq, uq)
629  CALL histwrite_phy(o_vq, vq)
630  IF(iflag_con.GE.3) THEN ! sb
631  CALL histwrite_phy(o_cape, cape)
635  if (iflag_con /= 30) then
636  CALL histwrite_phy(o_plcl, plcl)
637  CALL histwrite_phy(o_plfc, plfc)
639  end if
640 
642 
643  CALL histwrite_phy(o_upwd, upwd)
644  CALL histwrite_phy(o_ma, ma)
645  CALL histwrite_phy(o_dnwd, dnwd)
647  IF (vars_defined) zx_tmp_fi2d=float(itau_con)/float(itap)
648  CALL histwrite_phy(o_ftime_con, zx_tmp_fi2d)
649  IF (vars_defined) THEN
650  IF(iflag_thermals>=1)THEN
651  zx_tmp_fi3d=dnwd+dnwd0+upwd+fm_therm(:,1:klev)
652  ELSE
653  zx_tmp_fi3d=dnwd+dnwd0+upwd
654  ENDIF
655  ENDIF
656  CALL histwrite_phy(o_mc, zx_tmp_fi3d)
657  ENDIF !iflag_con .GE. 3
658  CALL histwrite_phy(o_prw, prw)
663  !IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F
664  ! IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN
665  ! CALL histwrite_phy(nid_files(iff),clef_stations(iff),
666  ! $o_s_capCL%name,itau_w,s_capCL)
667  ! ENDIF
668  ! IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN
669  ! CALL histwrite_phy(nid_files(iff),clef_stations(iff),
670  ! $o_s_oliqCL%name,itau_w,s_oliqCL)
671  ! ENDIF
672  ! IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN
673  ! CALL histwrite_phy(nid_files(iff),clef_stations(iff),
674  ! $o_s_cteiCL%name,itau_w,s_cteiCL)
675  ! ENDIF
676  ! IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN
677  ! CALL histwrite_phy(nid_files(iff),clef_stations(iff),
678  ! $o_s_trmb1%name,itau_w,s_trmb1)
679  ! ENDIF
680  ! IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN
681  ! CALL histwrite_phy(nid_files(iff),clef_stations(iff),
682  ! $o_s_trmb2%name,itau_w,s_trmb2)
683  ! ENDIF
684  ! IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN
685  ! CALL histwrite_phy(nid_files(iff),clef_stations(iff),
686  ! $o_s_trmb3%name,itau_w,s_trmb3)
687  ! ENDIF
688 
689 #ifdef CPP_IOIPSL
690 #ifndef CPP_XIOS
691  IF (.NOT.ok_all_xml) THEN
692  ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX:
693  ! Champs interpolles sur des niveaux de pression
694  missing_val=missing_val_nf90
695  DO iff=1, nfiles
696  ll=0
697  DO k=1, nlevstd
698  bb2=clevstd(k)
699  IF(bb2.EQ."850".OR.bb2.EQ."700".OR. &
700  bb2.EQ."500".OR.bb2.EQ."200".OR. &
701  bb2.EQ."100".OR. &
702  bb2.EQ."50".OR.bb2.EQ."10") THEN
703 
704  ! a refaire correctement !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
705  ll=ll+1
706  CALL histwrite_phy(o_ustdlevs(ll),uwritestd(:,k,iff), iff)
707  CALL histwrite_phy(o_vstdlevs(ll),vwritestd(:,k,iff), iff)
708  CALL histwrite_phy(o_wstdlevs(ll),wwritestd(:,k,iff), iff)
709  CALL histwrite_phy(o_zstdlevs(ll),phiwritestd(:,k,iff), iff)
710  CALL histwrite_phy(o_qstdlevs(ll),qwritestd(:,k,iff), iff)
711  CALL histwrite_phy(o_tstdlevs(ll),twritestd(:,k,iff), iff)
712 
713  ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
714  ENDDO
715  ENDDO
716  ENDIF
717 #endif
718 #endif
719 #ifdef CPP_XIOS
720  IF(ok_all_xml) THEN
721 !XIOS CALL xios_get_field_attr("u850",default_value=missing_val)
722 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
723  ll=0
724  DO k=1, nlevstd
725  bb2=clevstd(k)
726  IF(bb2.EQ."850".OR.bb2.EQ."700".OR. &
727  bb2.EQ."500".OR.bb2.EQ."200".OR. &
728  bb2.EQ."100".OR. &
729  bb2.EQ."50".OR.bb2.EQ."10") THEN
730  ll=ll+1
737  ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
738  ENDDO
739  ENDIF
740 #endif
741  IF (vars_defined) THEN
742  DO i=1, klon
743  IF (pctsrf(i,is_oce).GT.epsfra.OR. &
744  pctsrf(i,is_sic).GT.epsfra) THEN
745  zx_tmp_fi2d(i) = (ftsol(i, is_oce) * pctsrf(i,is_oce)+ &
746  ftsol(i, is_sic) * pctsrf(i,is_sic))/ &
747  (pctsrf(i,is_oce)+pctsrf(i,is_sic))
748  ELSE
749  zx_tmp_fi2d(i) = 273.15
750  ENDIF
751  ENDDO
752  ENDIF
753  CALL histwrite_phy(o_t_oce_sic, zx_tmp_fi2d)
754 
755  ! Couplage convection-couche limite
756  IF (iflag_con.GE.3) THEN
757  IF (iflag_coupl>=1) THEN
760  ENDIF !iflag_coupl>=1
761  ENDIF !(iflag_con.GE.3)
762  ! Wakes
763  IF (iflag_con.EQ.3) THEN
764  IF (iflag_wake>=1) THEN
767  IF (iflag_pbl_split>=1) THEN
768  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dtvdf_x(1:klon,1:klev)/pdtphys
769  CALL histwrite_phy(o_dtvdf_x ,zx_tmp_fi3d)
770  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dtvdf_w(1:klon,1:klev)/pdtphys
771  CALL histwrite_phy(o_dtvdf_w ,zx_tmp_fi3d)
772  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dqvdf_x(1:klon,1:klev)/pdtphys
773  CALL histwrite_phy(o_dqvdf_x ,zx_tmp_fi3d)
774  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=dqvdf_w(1:klon,1:klev)/pdtphys
775  CALL histwrite_phy(o_dqvdf_w ,zx_tmp_fi3d)
776  CALL histwrite_phy(o_sens_x ,sens_x )
777  CALL histwrite_phy(o_sens_w ,sens_w )
785  CALL histwrite_phy(o_kh ,kh )
786  CALL histwrite_phy(o_kh_x ,kh_x )
787  CALL histwrite_phy(o_kh_w ,kh_w )
788  ENDIF ! (iflag_pbl_split>=1)
789  CALL histwrite_phy(o_ale, ale)
790  CALL histwrite_phy(o_alp, alp)
791  CALL histwrite_phy(o_cin, cin)
798  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_wake(1:klon,1:klev) &
799  /pdtphys
800  CALL histwrite_phy(o_dtwak, zx_tmp_fi3d)
801  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys
802  CALL histwrite_phy(o_dqwak, zx_tmp_fi3d)
803  ENDIF ! iflag_wake>=1
804  CALL histwrite_phy(o_ftd, ftd)
805  CALL histwrite_phy(o_fqd, fqd)
806  ENDIF !(iflag_con.EQ.3)
807  IF (iflag_con.EQ.3.OR.iflag_con.EQ.30) THEN
808  ! sortie RomP convection descente insaturee iflag_con=30
809  ! etendue a iflag_con=3 (jyg)
813  ENDIF !(iflag_con.EQ.3.or.iflag_con.EQ.30)
814 !!! nrlmd le 10/04/2012
815  IF (iflag_trig_bl>=1) THEN
816  CALL histwrite_phy(o_n2, n2)
817  CALL histwrite_phy(o_s2, s2)
822  ENDIF !(iflag_trig_bl>=1)
823  IF (iflag_clos_bl>=1) THEN
830  ENDIF !(iflag_clos_bl>=1)
831 !!! fin nrlmd le 10/04/2012
832  ! Output of slab ocean variables
833  IF (type_ocean=='slab ') THEN
836  IF (nslay.EQ.1) THEN
837  zx_tmp_fi2d(:)=tslab(:,1)
838  CALL histwrite_phy(o_tslab, zx_tmp_fi2d)
839  ELSE
841  END IF
842  IF (version_ocean=='sicINT') THEN
846  END IF
847  ENDIF !type_ocean == force/slab
852  CALL histwrite_phy(o_pr_con_l, pmflxr(:,1:klev))
853  CALL histwrite_phy(o_pr_con_i, pmflxs(:,1:klev))
854  CALL histwrite_phy(o_pr_lsc_l, prfl(:,1:klev))
855  CALL histwrite_phy(o_pr_lsc_i, psfl(:,1:klev))
856  CALL histwrite_phy(o_re, re)
857  CALL histwrite_phy(o_fl, fl)
858  IF (vars_defined) THEN
859  DO i=1, klon
860  zx_tmp_fi2d(i)=min(100.,rh2m(i)*100.)
861  ENDDO
862  ENDIF
863  CALL histwrite_phy(o_rh2m, zx_tmp_fi2d)
864 
865  IF (vars_defined) THEN
866  DO i=1, klon
867  zx_tmp_fi2d(i)=min(100.,rh2m(i)*100.)
868  ENDDO
869  ENDIF
870  CALL histwrite_phy(o_rh2m_min, zx_tmp_fi2d)
871 
872  IF (vars_defined) THEN
873  DO i=1, klon
874  zx_tmp_fi2d(i)=min(100.,rh2m(i)*100.)
875  ENDDO
876  ENDIF
877  CALL histwrite_phy(o_rh2m_max, zx_tmp_fi2d)
878 
880  CALL histwrite_phy(o_tpot, tpot)
882  IF (vars_defined) zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
883  CALL histwrite_phy(o_swnetor, zx_tmp_fi2d)
884  IF (vars_defined) zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol1(1:klon))
885  CALL histwrite_phy(o_swdownor, zx_tmp_fi2d)
889  CALL histwrite_phy(o_dtsvdfo, d_ts(:,is_oce))
890  CALL histwrite_phy(o_dtsvdft, d_ts(:,is_ter))
891  CALL histwrite_phy(o_dtsvdfg, d_ts(:,is_lic))
892  CALL histwrite_phy(o_dtsvdfi, d_ts(:,is_sic))
893  CALL histwrite_phy(o_z0m, z0m(:,nbsrf+1))
894  CALL histwrite_phy(o_z0h, z0h(:,nbsrf+1))
895  ! OD550 per species
896 !--OLIVIER
897 !This is warranted by treating INCA aerosols as offline aerosols
898 ! IF (new_aod .and. (.not. aerosol_couple)) THEN
899  IF (new_aod) THEN
900  IF (flag_aerosol.GT.0) THEN
922  !--STRAT AER
923  ENDIF
924  IF (flag_aerosol.GT.0.OR.flag_aerosol_strat) THEN
925 ! DO naero = 1, naero_spc
926 !--correction mini bug OB
927  DO naero = 1, naero_tot
928  CALL histwrite_phy(o_tausumaero(naero), &
929  tausum_aero(:,2,naero) )
930  END DO
931  ENDIF
932  IF (flag_aerosol_strat) THEN
935  ENDIF
936  ENDIF
937  IF (ok_ade) THEN
946  !====MS forcing diagnostics
947  if (new_aod) then
948  zx_tmp_fi2d(:)=topsw_aero(:,1)*swradcorr(:)
949  CALL histwrite_phy(o_swtoaas_nat,zx_tmp_fi2d)
950  zx_tmp_fi2d(:)=solsw_aero(:,1)*swradcorr(:)
951  CALL histwrite_phy(o_swsrfas_nat,zx_tmp_fi2d)
952  zx_tmp_fi2d(:)=topsw0_aero(:,1)*swradcorr(:)
953  CALL histwrite_phy(o_swtoacs_nat,zx_tmp_fi2d)
954  zx_tmp_fi2d(:)=solsw0_aero(:,1)*swradcorr(:)
955  CALL histwrite_phy(o_swsrfcs_nat,zx_tmp_fi2d)
956  !ant
957  zx_tmp_fi2d(:)=topsw_aero(:,2)*swradcorr(:)
958  CALL histwrite_phy(o_swtoaas_ant,zx_tmp_fi2d)
959  zx_tmp_fi2d(:)=solsw_aero(:,2)*swradcorr(:)
960  CALL histwrite_phy(o_swsrfas_ant,zx_tmp_fi2d)
961  zx_tmp_fi2d(:)=topsw0_aero(:,2)*swradcorr(:)
962  CALL histwrite_phy(o_swtoacs_ant,zx_tmp_fi2d)
963  zx_tmp_fi2d(:)=solsw0_aero(:,2)*swradcorr(:)
964  CALL histwrite_phy(o_swsrfcs_ant,zx_tmp_fi2d)
965  !cf
966  if (.not. aerosol_couple) then
967  zx_tmp_fi2d(:)=topswcf_aero(:,1)*swradcorr(:)
968  CALL histwrite_phy(o_swtoacf_nat,zx_tmp_fi2d)
969  zx_tmp_fi2d(:)=solswcf_aero(:,1)*swradcorr(:)
970  CALL histwrite_phy(o_swsrfcf_nat,zx_tmp_fi2d)
971  zx_tmp_fi2d(:)=topswcf_aero(:,2)*swradcorr(:)
972  CALL histwrite_phy(o_swtoacf_ant,zx_tmp_fi2d)
973  zx_tmp_fi2d(:)=solswcf_aero(:,2)*swradcorr(:)
974  CALL histwrite_phy(o_swsrfcf_ant,zx_tmp_fi2d)
975  zx_tmp_fi2d(:)=topswcf_aero(:,3)*swradcorr(:)
976  CALL histwrite_phy(o_swtoacf_zero,zx_tmp_fi2d)
977  zx_tmp_fi2d(:)=solswcf_aero(:,3)*swradcorr(:)
978  CALL histwrite_phy(o_swsrfcf_zero,zx_tmp_fi2d)
979  endif
980  endif ! new_aod
981  !====MS forcing diagnostics
982  ENDIF
983  IF (ok_aie) THEN
986  ENDIF
987  IF (flag_aerosol.GT.0.AND.ok_cdnc) THEN
993  CALL histwrite_phy(o_lcc, lcc)
998  ENDIF
999  ! Champs 3D:
1000  IF (ok_ade .OR. ok_aie) then
1002  ENDIF
1003  CALL histwrite_phy(o_lwcon, flwc)
1004  CALL histwrite_phy(o_iwcon, fiwc)
1005  CALL histwrite_phy(o_temp, t_seri)
1006  CALL histwrite_phy(o_theta, theta)
1007  CALL histwrite_phy(o_ovapinit, qx(:,:,ivap))
1008  CALL histwrite_phy(o_ovap, q_seri)
1009  CALL histwrite_phy(o_oliq, ql_seri)
1010  CALL histwrite_phy(o_geop, zphi)
1011  CALL histwrite_phy(o_vitu, u_seri)
1012  CALL histwrite_phy(o_vitv, v_seri)
1013  CALL histwrite_phy(o_vitw, omega)
1014  CALL histwrite_phy(o_pres, pplay)
1015  CALL histwrite_phy(o_paprs, paprs(:,1:klev))
1016  CALL histwrite_phy(o_zfull,zphi/rg)
1017 
1018  IF (vars_defined) THEN
1019  zx_tmp_fi3d(:,1)= pphis(:)/rg
1020  DO k = 2, klev
1021  DO i = 1, klon
1022  zx_tmp_fi3d(i,k) = zphi(i,k)/rg + &
1023  (zphi(i,k)-zphi(i,k-1))/rg * &
1024  (paprs(i,k)-pplay(i,k))/(pplay(i,k)-pplay(i,k-1))
1025  ENDDO
1026  ENDDO
1027  ENDIF
1028  CALL histwrite_phy(o_zhalf, zx_tmp_fi3d)
1029  CALL histwrite_phy(o_rneb, cldfra)
1031  CALL histwrite_phy(o_rnebls, rneb)
1032  IF (vars_defined) THEN
1033  DO k=1, klev
1034  DO i=1, klon
1035  zx_tmp_fi3d(i,k)=cldfra(i,k)*jrnt(i)
1036  ENDDO
1037  ENDDO
1038  ENDIF
1039  CALL histwrite_phy(o_rnebjn, zx_tmp_fi3d)
1040  CALL histwrite_phy(o_rhum, zx_rh)
1041  CALL histwrite_phy(o_ozone, &
1042  wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
1043 
1044  IF (read_climoz == 2) THEN
1046  wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd)
1047  ENDIF
1048 
1049  CALL histwrite_phy(o_dtphy, d_t)
1050  CALL histwrite_phy(o_dqphy, d_qx(:,:,ivap))
1051  DO nsrf=1, nbsrf
1052  IF (vars_defined) zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf)
1053  CALL histwrite_phy(o_albe_srf(nsrf), zx_tmp_fi2d)
1054  IF (vars_defined) zx_tmp_fi2d(1 : klon) = z0m( 1 : klon, nsrf)
1055  CALL histwrite_phy(o_z0m_srf(nsrf), zx_tmp_fi2d)
1056  IF (vars_defined) zx_tmp_fi2d(1 : klon) = z0h( 1 : klon, nsrf)
1057  CALL histwrite_phy(o_z0h_srf(nsrf), zx_tmp_fi2d)
1058  IF (vars_defined) zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
1059  CALL histwrite_phy(o_ages_srf(nsrf), zx_tmp_fi2d)
1060  IF (vars_defined) zx_tmp_fi2d(1 : klon) = snow( 1 : klon, nsrf)
1061  CALL histwrite_phy(o_snow_srf(nsrf), zx_tmp_fi2d)
1062  ENDDO !nsrf=1, nbsrf
1065  !FH Sorties pour la couche limite
1066  if (iflag_pbl>1) then
1067  zx_tmp_fi3d=0.
1068  IF (vars_defined) THEN
1069  do nsrf=1,nbsrf
1070  do k=1,klev
1071  zx_tmp_fi3d(:,k)=zx_tmp_fi3d(:,k) &
1072  +pctsrf(:,nsrf)*pbl_tke(:,k,nsrf)
1073  enddo
1074  enddo
1075  ENDIF
1076  CALL histwrite_phy(o_tke, zx_tmp_fi3d)
1077 
1078  CALL histwrite_phy(o_tke_max, zx_tmp_fi3d)
1079  ENDIF
1080 
1081  CALL histwrite_phy(o_kz, coefh(:,:,is_ave))
1082 
1083  CALL histwrite_phy(o_kz_max, coefh(:,:,is_ave))
1084 
1086  CALL histwrite_phy(o_dtdyn, d_t_dyn)
1087  CALL histwrite_phy(o_dqdyn, d_q_dyn)
1088  CALL histwrite_phy(o_dudyn, d_u_dyn)
1089  CALL histwrite_phy(o_dvdyn, d_v_dyn)
1090 
1091  IF (vars_defined) THEN
1092  zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
1093  ENDIF
1094  CALL histwrite_phy(o_dtcon, zx_tmp_fi3d)
1095  if(iflag_thermals.eq.0)then
1096  IF (vars_defined) THEN
1097  zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
1098  d_t_ajsb(1:klon,1:klev)/pdtphys
1099  ENDIF
1100  CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
1101  else if(iflag_thermals.ge.1.and.iflag_wake.EQ.1)then
1102  IF (vars_defined) THEN
1103  zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
1104  d_t_ajs(1:klon,1:klev)/pdtphys + &
1105  d_t_wake(1:klon,1:klev)/pdtphys
1106  ENDIF
1107  CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
1108  endif
1109  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
1110  CALL histwrite_phy(o_ducon, zx_tmp_fi3d)
1111  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_con(1:klon,1:klev)/pdtphys
1112  CALL histwrite_phy(o_dvcon, zx_tmp_fi3d)
1113  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
1114  CALL histwrite_phy(o_dqcon, zx_tmp_fi3d)
1115 
1116  IF(iflag_thermals.EQ.0) THEN
1117  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
1118  CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
1119  ELSE IF(iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
1120  IF (vars_defined) THEN
1121  zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys + &
1122  d_q_ajs(1:klon,1:klev)/pdtphys + &
1123  d_q_wake(1:klon,1:klev)/pdtphys
1124  ENDIF
1125  CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
1126  ENDIF
1127 
1128  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
1129  CALL histwrite_phy(o_dtlsc, zx_tmp_fi3d)
1130  IF (vars_defined) zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+ &
1131  d_t_eva(1:klon,1:klev))/pdtphys
1132  CALL histwrite_phy(o_dtlschr, zx_tmp_fi3d)
1133  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
1134  CALL histwrite_phy(o_dqlsc, zx_tmp_fi3d)
1135  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=beta_prec(1:klon,1:klev)
1136  CALL histwrite_phy(o_beta_prec, zx_tmp_fi3d)
1137 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1138  ! Sorties specifiques a la separation thermiques/non thermiques
1139  if (iflag_thermals>=1) then
1140  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscth(1:klon,1:klev)/pdtphys
1141  CALL histwrite_phy(o_dtlscth, zx_tmp_fi3d)
1142  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lscst(1:klon,1:klev)/pdtphys
1143  CALL histwrite_phy(o_dtlscst, zx_tmp_fi3d)
1144  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscth(1:klon,1:klev)/pdtphys
1145  CALL histwrite_phy(o_dqlscth, zx_tmp_fi3d)
1146  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lscst(1:klon,1:klev)/pdtphys
1147  CALL histwrite_phy(o_dqlscst, zx_tmp_fi3d)
1148  CALL histwrite_phy(o_plulth, plul_th)
1149  CALL histwrite_phy(o_plulst, plul_st)
1150  IF (vars_defined) THEN
1151  do k=1,klev
1152  do i=1,klon
1153  if (ptconvth(i,k)) then
1154  zx_tmp_fi3d(i,k)=1.
1155  else
1156  zx_tmp_fi3d(i,k)=0.
1157  endif
1158  enddo
1159  enddo
1160  ENDIF
1161  CALL histwrite_phy(o_ptconvth, zx_tmp_fi3d)
1162  IF (vars_defined) THEN
1163  do i=1,klon
1164  zx_tmp_fi2d(1:klon)=lmax_th(:)
1165  enddo
1166  ENDIF
1167  CALL histwrite_phy(o_lmaxth, zx_tmp_fi2d)
1168  endif ! iflag_thermals>=1
1169 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1170  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
1171  CALL histwrite_phy(o_dtvdf, zx_tmp_fi3d)
1172  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_diss(1:klon,1:klev)/pdtphys
1173  CALL histwrite_phy(o_dtdis, zx_tmp_fi3d)
1174  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
1175  CALL histwrite_phy(o_dqvdf, zx_tmp_fi3d)
1176  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
1177  CALL histwrite_phy(o_dteva, zx_tmp_fi3d)
1178  IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
1179  CALL histwrite_phy(o_dqeva, zx_tmp_fi3d)
1180  zpt_conv = 0.
1181  WHERE (ptconv) zpt_conv = 1.
1182  CALL histwrite_phy(o_ptconv, zpt_conv)
1183  CALL histwrite_phy(o_ratqs, ratqs)
1184  IF (vars_defined) THEN
1185  zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys - &
1186  d_t_ajsb(1:klon,1:klev)/pdtphys
1187  ENDIF
1188  CALL histwrite_phy(o_dtthe, zx_tmp_fi3d)
1189  IF (vars_defined) THEN
1190  zx_tmp_fi3d(1:klon,1:klev)=d_u_ajs(1:klon,1:klev)/pdtphys
1191  ENDIF
1192  CALL histwrite_phy(o_duthe, zx_tmp_fi3d)
1193  IF (vars_defined) THEN
1194  zx_tmp_fi3d(1:klon,1:klev)=d_v_ajs(1:klon,1:klev)/pdtphys
1195  ENDIF
1196  CALL histwrite_phy(o_dvthe, zx_tmp_fi3d)
1197 
1198  IF (iflag_thermals>=1) THEN
1199  ! Pour l instant 0 a y reflichir pour les thermiques
1200  zx_tmp_fi2d=0.
1201  CALL histwrite_phy(o_ftime_th, zx_tmp_fi2d)
1204  CALL histwrite_phy(o_w_th, zw2)
1205  CALL histwrite_phy(o_q_th, zqasc)
1206  CALL histwrite_phy(o_a_th, fraca)
1208  CALL histwrite_phy(o_f0_th, f0)
1209  CALL histwrite_phy(o_zmax_th, zmax_th)
1210  IF (vars_defined) THEN
1211  zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys - &
1212  d_q_ajsb(1:klon,1:klev)/pdtphys
1213  ENDIF
1214  CALL histwrite_phy(o_dqthe, zx_tmp_fi3d)
1215  ENDIF !iflag_thermals
1216  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys
1217  CALL histwrite_phy(o_dtajs, zx_tmp_fi3d)
1218  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys
1219  CALL histwrite_phy(o_dqajs, zx_tmp_fi3d)
1220  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys
1221  CALL histwrite_phy(o_dtswr, zx_tmp_fi3d)
1222  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_sw0(1:klon,1:klev)/pdtphys
1223  CALL histwrite_phy(o_dtsw0, zx_tmp_fi3d)
1224  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lwr(1:klon,1:klev)/pdtphys
1225  CALL histwrite_phy(o_dtlwr, zx_tmp_fi3d)
1226  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lw0(1:klon,1:klev)/pdtphys
1227  CALL histwrite_phy(o_dtlw0, zx_tmp_fi3d)
1228  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)/pdtphys
1229  CALL histwrite_phy(o_dtec, zx_tmp_fi3d)
1230  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
1231  CALL histwrite_phy(o_duvdf, zx_tmp_fi3d)
1232  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
1233  CALL histwrite_phy(o_dvvdf, zx_tmp_fi3d)
1234  IF (ok_orodr) THEN
1235  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
1236  CALL histwrite_phy(o_duoro, zx_tmp_fi3d)
1237  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
1238  CALL histwrite_phy(o_dvoro, zx_tmp_fi3d)
1239  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys
1240  CALL histwrite_phy(o_dtoro, zx_tmp_fi3d)
1241  ENDIF
1242  IF (ok_orolf) THEN
1243  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
1244  CALL histwrite_phy(o_dulif, zx_tmp_fi3d)
1245 
1246  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
1247  CALL histwrite_phy(o_dvlif, zx_tmp_fi3d)
1248 
1249  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lif(1:klon,1:klev)/pdtphys
1250  CALL histwrite_phy(o_dtlif, zx_tmp_fi3d)
1251  ENDIF
1252 
1253  IF (ok_hines) THEN
1254  CALL histwrite_phy(o_du_gwd_hines, du_gwd_hines/pdtphys)
1255  CALL histwrite_phy(o_dv_gwd_hines, dv_gwd_hines/pdtphys)
1256  IF(vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys
1257  CALL histwrite_phy(o_dthin, zx_tmp_fi3d)
1260  end IF
1261 
1262  if (.not. ok_hines .and. ok_gwd_rando) then
1263  CALL histwrite_phy(o_du_gwd_front, du_gwd_front / pdtphys)
1264  CALL histwrite_phy(o_dv_gwd_front, dv_gwd_front / pdtphys)
1267  ENDIF
1268 
1269  IF (ok_gwd_rando) then
1270  CALL histwrite_phy(o_du_gwd_rando, du_gwd_rando / pdtphys)
1271  CALL histwrite_phy(o_dv_gwd_rando, dv_gwd_rando / pdtphys)
1274  CALL histwrite_phy(o_east_gwstress, east_gwstress )
1275  CALL histwrite_phy(o_west_gwstress, west_gwstress )
1276  end IF
1277 
1278  IF (ok_qch4) then
1279  CALL histwrite_phy(o_dqch4, d_q_ch4 / pdtphys)
1280  ENDIF
1281 
1282  DO k=1, klevp1
1283  zx_tmp_fi3d1(:,k)=swup(:,k)*swradcorr(:)
1284  ENDDO
1285  CALL histwrite_phy(o_rsu, zx_tmp_fi3d1)
1286  DO k=1, klevp1
1287  zx_tmp_fi3d1(:,k)=swdn(:,k)*swradcorr(:)
1288  ENDDO
1289  CALL histwrite_phy(o_rsd, zx_tmp_fi3d1)
1290  DO k=1, klevp1
1291  zx_tmp_fi3d1(:,k)=swup0(:,k)*swradcorr(:)
1292  ENDDO
1293  CALL histwrite_phy(o_rsucs, zx_tmp_fi3d1)
1294  DO k=1, klevp1
1295  zx_tmp_fi3d1(:,k)=swdn0(:,k)*swradcorr(:)
1296  ENDDO
1297  CALL histwrite_phy(o_rsdcs, zx_tmp_fi3d1)
1298 
1299  CALL histwrite_phy(o_rlu, lwup)
1300  CALL histwrite_phy(o_rld, lwdn)
1301  CALL histwrite_phy(o_rlucs, lwup0)
1302  CALL histwrite_phy(o_rldcs, lwdn0)
1303 
1304  IF(vars_defined) THEN
1305  zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+ &
1306  d_t_dyn(1:klon,1:klev)
1307  ENDIF
1308  CALL histwrite_phy(o_tnt, zx_tmp_fi3d)
1309 
1310  IF(vars_defined) THEN
1311  zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys + &
1312  d_t_lwr(1:klon,1:klev)/pdtphys
1313  ENDIF
1314  CALL histwrite_phy(o_tntr, zx_tmp_fi3d)
1315  IF(vars_defined) THEN
1316  zx_tmp_fi3d(1:klon,1:klev)= (d_t_lsc(1:klon,1:klev)+ &
1317  d_t_eva(1:klon,1:klev)+ &
1318  d_t_vdf(1:klon,1:klev))/pdtphys
1319  ENDIF
1320  CALL histwrite_phy(o_tntscpbl, zx_tmp_fi3d)
1321  IF(vars_defined) THEN
1322  zx_tmp_fi3d(1:klon,1:klev)=d_qx(1:klon,1:klev,ivap)+ &
1323  d_q_dyn(1:klon,1:klev)
1324  ENDIF
1325  CALL histwrite_phy(o_tnhus, zx_tmp_fi3d)
1326  IF(vars_defined) THEN
1327  zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys+ &
1328  d_q_eva(1:klon,1:klev)/pdtphys
1329  ENDIF
1330  CALL histwrite_phy(o_tnhusscpbl, zx_tmp_fi3d)
1331  CALL histwrite_phy(o_evu, coefm(:,:,is_ave))
1332  IF(vars_defined) THEN
1333  zx_tmp_fi3d(1:klon,1:klev)=q_seri(1:klon,1:klev)+ &
1334  ql_seri(1:klon,1:klev)
1335  ENDIF
1336  CALL histwrite_phy(o_h2o, zx_tmp_fi3d)
1337  if (iflag_con >= 3) then
1338  IF(vars_defined) THEN
1339  zx_tmp_fi3d(1:klon,1:klev)=-1 * (dnwd(1:klon,1:klev)+ &
1340  dnwd0(1:klon,1:klev))
1341  ENDIF
1342  CALL histwrite_phy(o_mcd, zx_tmp_fi3d)
1343  IF(vars_defined) THEN
1344  zx_tmp_fi3d(1:klon,1:klev)=upwd(1:klon,1:klev) + &
1345  dnwd(1:klon,1:klev)+ dnwd0(1:klon,1:klev)
1346  ENDIF
1347  CALL histwrite_phy(o_dmc, zx_tmp_fi3d)
1348  else if (iflag_con == 2) then
1349  CALL histwrite_phy(o_mcd, pmfd)
1350  CALL histwrite_phy(o_dmc, pmfu + pmfd)
1351  end if
1352  CALL histwrite_phy(o_ref_liq, ref_liq)
1353  CALL histwrite_phy(o_ref_ice, ref_ice)
1354  if (rco2_per.NE.rco2_act.OR.rch4_per.NE.rch4_act.OR. &
1355  rn2o_per.NE.rn2o_act.OR.rcfc11_per.NE.rcfc11_act.OR. &
1356  rcfc12_per.NE.rcfc12_act) THEN
1357  IF(vars_defined) zx_tmp_fi2d(:) = swupp(:,klevp1)*swradcorr(:)
1358  CALL histwrite_phy(o_rsut4co2, zx_tmp_fi2d)
1359  IF(vars_defined) zx_tmp_fi2d(:) = lwupp(:,klevp1)
1360  CALL histwrite_phy(o_rlut4co2, zx_tmp_fi2d)
1361  IF(vars_defined) zx_tmp_fi2d(:) = swup0p(:,klevp1)*swradcorr(:)
1362  CALL histwrite_phy(o_rsutcs4co2, zx_tmp_fi2d)
1363  IF(vars_defined) zx_tmp_fi2d(:) = lwup0p(:,klevp1)
1364  CALL histwrite_phy(o_rlutcs4co2, zx_tmp_fi2d)
1365  DO k=1, klevp1
1366  zx_tmp_fi3d1(:,k)=swupp(:,k)*swradcorr(:)
1367  ENDDO
1368  CALL histwrite_phy(o_rsu4co2, zx_tmp_fi3d1)
1369  DO k=1, klevp1
1370  zx_tmp_fi3d1(:,k)=swup0p(:,k)*swradcorr(:)
1371  ENDDO
1372  CALL histwrite_phy(o_rsucs4co2, zx_tmp_fi3d1)
1373  DO k=1, klevp1
1374  zx_tmp_fi3d1(:,k)=swdnp(:,k)*swradcorr(:)
1375  ENDDO
1376  CALL histwrite_phy(o_rsd4co2, zx_tmp_fi3d1)
1377  DO k=1, klevp1
1378  zx_tmp_fi3d1(:,k)=swdn0p(:,k)*swradcorr(:)
1379  ENDDO
1380  CALL histwrite_phy(o_rsdcs4co2, zx_tmp_fi3d1)
1385  ENDIF
1386 !!!!!!!!!!!! Sorties niveaux de pression NMC !!!!!!!!!!!!!!!!!!!!
1387 #ifdef CPP_IOIPSL
1388 #ifndef CPP_XIOS
1389  IF (.NOT.ok_all_xml) THEN
1390  ! ATTENTION, LES ANCIENS HISTWRITE ONT ETES CONSERVES EN ATTENDANT MIEUX:
1391  ! Champs interpolles sur des niveaux de pression
1392  missing_val=missing_val_nf90
1393  DO iff=7, nfiles
1394 
1395  CALL histwrite_phy(o_tnondef,tnondef(:,:,iff-6),iff)
1396  CALL histwrite_phy(o_ta,twritestd(:,:,iff-6),iff)
1397  CALL histwrite_phy(o_zg,phiwritestd(:,:,iff-6),iff)
1398  CALL histwrite_phy(o_hus,qwritestd(:,:,iff-6),iff)
1399  CALL histwrite_phy(o_hur,rhwritestd(:,:,iff-6),iff)
1400  CALL histwrite_phy(o_ua,uwritestd(:,:,iff-6),iff)
1401  CALL histwrite_phy(o_va,vwritestd(:,:,iff-6),iff)
1402  CALL histwrite_phy(o_wap,wwritestd(:,:,iff-6),iff)
1403  IF(vars_defined) THEN
1404  DO k=1, nlevstd
1405  DO i=1, klon
1406  IF(tnondef(i,k,iff-6).NE.missing_val) THEN
1407  IF(freq_outnmc(iff-6).LT.0) THEN
1408  freq_moynmc(iff-6)=(mth_len*un_jour)/freq_calnmc(iff-6)
1409  ELSE
1410  freq_moynmc(iff-6)=freq_outnmc(iff-6)/freq_calnmc(iff-6)
1411  ENDIF
1412  zx_tmp_fi3d_std(i,k) = (100.*tnondef(i,k,iff-6))/freq_moynmc(iff-6)
1413  ELSE
1414  zx_tmp_fi3d_std(i,k) = missing_val
1415  ENDIF
1416  ENDDO
1417  ENDDO
1418  ENDIF
1419  CALL histwrite_phy(o_psbg,zx_tmp_fi3d_std,iff)
1420  IF(vars_defined) THEN
1421  DO k=1, nlevstd
1422  DO i=1, klon
1423  IF(o3sumstd(i,k,iff-6).NE.missing_val) THEN
1424  zx_tmp_fi3d_std(i,k) = o3sumstd(i,k,iff-6) * 1.e+9
1425  ELSE
1426  zx_tmp_fi3d_std(i,k) = missing_val
1427  ENDIF
1428  ENDDO
1429  ENDDO !k=1, nlevSTD
1430  ENDIF
1431  CALL histwrite_phy(o_tro3,zx_tmp_fi3d_std,iff)
1432  if (read_climoz == 2) THEN
1433  IF(vars_defined) THEN
1434  DO k=1, nlevstd
1435  DO i=1, klon
1436  IF(o3daysumstd(i,k,iff-6).NE.missing_val) THEN
1437  zx_tmp_fi3d_std(i,k) = o3daysumstd(i,k,iff-6) * 1.e+9
1438  ELSE
1439  zx_tmp_fi3d_std(i,k) = missing_val
1440  ENDIF
1441  ENDDO
1442  ENDDO !k=1, nlevSTD
1443  ENDIF
1444  CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_std,iff)
1445  endif
1446  CALL histwrite_phy(o_uxv,uvsumstd(:,:,iff-6),iff)
1447  CALL histwrite_phy(o_vxq,vqsumstd(:,:,iff-6),iff)
1448  CALL histwrite_phy(o_vxt,vtsumstd(:,:,iff-6),iff)
1449  CALL histwrite_phy(o_wxq,wqsumstd(:,:,iff-6),iff)
1450  CALL histwrite_phy(o_vxphi,vphisumstd(:,:,iff-6),iff)
1451  CALL histwrite_phy(o_wxt,wtsumstd(:,:,iff-6),iff)
1452  CALL histwrite_phy(o_uxu,u2sumstd(:,:,iff-6),iff)
1453  CALL histwrite_phy(o_vxv,v2sumstd(:,:,iff-6),iff)
1454  CALL histwrite_phy(o_txt,t2sumstd(:,:,iff-6),iff)
1455  ENDDO !nfiles
1456  ENDIF
1457 #endif
1458 #endif
1459 #ifdef CPP_XIOS
1460  IF(ok_all_xml) THEN
1461 ! DO iff=7, nfiles
1462 
1463 ! CALL histwrite_phy(o_tnondef,tnondef(:,:,3))
1464  CALL histwrite_phy(o_ta,tlevstd(:,:))
1465  CALL histwrite_phy(o_zg,philevstd(:,:))
1466  CALL histwrite_phy(o_hus,qlevstd(:,:))
1467  CALL histwrite_phy(o_hur,rhlevstd(:,:))
1468  CALL histwrite_phy(o_ua,ulevstd(:,:))
1469  CALL histwrite_phy(o_va,vlevstd(:,:))
1470  CALL histwrite_phy(o_wap,wlevstd(:,:))
1471 ! IF(vars_defined) THEN
1472 ! DO k=1, nlevSTD
1473 ! DO i=1, klon
1474 ! IF(tnondef(i,k,3).NE.missing_val) THEN
1475 ! IF(freq_outNMC(iff-6).LT.0) THEN
1476 ! freq_moyNMC(iff-6)=(mth_len*un_jour)/freq_calNMC(iff-6)
1477 ! ELSE
1478 ! freq_moyNMC(iff-6)=freq_outNMC(iff-6)/freq_calNMC(iff-6)
1479 ! ENDIF
1480 ! zx_tmp_fi3d_STD(i,k) = (100.*tnondef(i,k,3))/freq_moyNMC(iff-6)
1481 ! ELSE
1482 ! zx_tmp_fi3d_STD(i,k) = missing_val
1483 ! ENDIF
1484 ! ENDDO
1485 ! ENDDO
1486 ! ENDIF
1487 ! CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD)
1488  IF(vars_defined) THEN
1489  DO k=1, nlevstd
1490  DO i=1, klon
1491  IF(o3std(i,k).NE.missing_val) THEN
1492  zx_tmp_fi3d_std(i,k) = o3std(i,k) * 1.e+9
1493  ELSE
1494  zx_tmp_fi3d_std(i,k) = missing_val
1495  ENDIF
1496  ENDDO
1497  ENDDO !k=1, nlevSTD
1498  ENDIF
1499  CALL histwrite_phy(o_tro3,zx_tmp_fi3d_std)
1500  if (read_climoz == 2) THEN
1501  IF(vars_defined) THEN
1502  DO k=1, nlevstd
1503  DO i=1, klon
1504  IF(o3daystd(i,k).NE.missing_val) THEN
1505  zx_tmp_fi3d_std(i,k) = o3daystd(i,k) * 1.e+9
1506  ELSE
1507  zx_tmp_fi3d_std(i,k) = missing_val
1508  ENDIF
1509  ENDDO
1510  ENDDO !k=1, nlevSTD
1511  ENDIF
1512  CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_std)
1513  endif
1514  CALL histwrite_phy(o_uxv,uvstd(:,:))
1515  CALL histwrite_phy(o_vxq,vqstd(:,:))
1516  CALL histwrite_phy(o_vxt,vtstd(:,:))
1517  CALL histwrite_phy(o_wxq,wqstd(:,:))
1518  CALL histwrite_phy(o_vxphi,vphistd(:,:))
1519  CALL histwrite_phy(o_wxt,wtstd(:,:))
1520  CALL histwrite_phy(o_uxu,u2std(:,:))
1521  CALL histwrite_phy(o_vxv,v2std(:,:))
1522  CALL histwrite_phy(o_txt,t2std(:,:))
1523 ! ENDDO !nfiles
1524  ENDIF
1525 #endif
1526 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1527  IF (nqtot.GE.nqo+1) THEN
1528  DO iq=nqo+1,nqtot
1529  IF (type_trac == 'lmdz' .OR. type_trac == 'repr') THEN
1530 
1531 !jyg<
1532 !! CALL histwrite_phy(o_trac(iq-nqo), qx(:,:,iq))
1533  CALL histwrite_phy(o_trac(iq-nqo), tr_seri(:,:,iq-nqo))
1535  CALL histwrite_phy(o_dtr_vdf(iq-nqo),d_tr_cl(:,:,iq-nqo))
1536  CALL histwrite_phy(o_dtr_the(iq-nqo),d_tr_th(:,:,iq-nqo))
1537  CALL histwrite_phy(o_dtr_con(iq-nqo),d_tr_cv(:,:,iq-nqo))
1540  CALL histwrite_phy(o_dtr_insc(iq-nqo),d_tr_insc(:,:,iq-nqo))
1541  CALL histwrite_phy(o_dtr_bcscav(iq-nqo),d_tr_bcscav(:,:,iq-nqo))
1542  CALL histwrite_phy(o_dtr_evapls(iq-nqo),d_tr_evapls(:,:,iq-nqo))
1543  CALL histwrite_phy(o_dtr_ls(iq-nqo),d_tr_ls(:,:,iq-nqo))
1544  CALL histwrite_phy(o_dtr_trsp(iq-nqo),d_tr_trsp(:,:,iq-nqo))
1545  CALL histwrite_phy(o_dtr_sscav(iq-nqo),d_tr_sscav(:,:,iq-nqo))
1546  CALL histwrite_phy(o_dtr_sat(iq-nqo),d_tr_sat(:,:,iq-nqo))
1547  CALL histwrite_phy(o_dtr_uscav(iq-nqo),d_tr_uscav(:,:,iq-nqo))
1548  zx_tmp_fi2d=0.
1549  IF(vars_defined) THEN
1550  DO k=1,klev
1551 !jyg<
1552 !! zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*qx(:,k,iq)
1553  zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+zmasse(:,k)*tr_seri(:,k,iq-nqo)
1555  ENDDO
1556  ENDIF
1557  CALL histwrite_phy(o_trac_cum(iq-nqo), zx_tmp_fi2d)
1558  endif
1559  ENDDO
1560  ENDIF
1561 
1562  IF(.NOT.vars_defined) THEN
1563  !$OMP MASTER
1564 #ifndef CPP_IOIPSL_NO_OUTPUT
1565  DO iff=1,nfiles
1566  IF (clef_files(iff)) THEN
1567  CALL histend(nid_files(iff))
1568  ndex2d = 0
1569  ndex3d = 0
1570 
1571  ENDIF ! clef_files
1572  ENDDO ! iff
1573 #endif
1574 #ifdef CPP_XIOS
1575  !On finalise l'initialisation:
1576  CALL wxios_closedef()
1577 #endif
1578 
1579  !$OMP END MASTER
1580  !$OMP BARRIER
1581  vars_defined = .true.
1582 
1583  END IF
1584 
1585  END DO
1586 
1587  IF(vars_defined) THEN
1588  ! On synchronise les fichiers pour IOIPSL
1589 #ifndef CPP_IOIPSL_NO_OUTPUT
1590  !$OMP MASTER
1591  DO iff=1,nfiles
1592  IF (ok_sync .AND. clef_files(iff)) THEN
1593  CALL histsync(nid_files(iff))
1594  ENDIF
1595  END DO
1596  !$OMP END MASTER
1597 #endif
1598  ENDIF
1599 
1600  END SUBROUTINE phys_output_write
1601 
1602 END MODULE phys_output_write_mod
real, dimension(:,:), allocatable, save tlevstd
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL &zphi geo500!IM on interpole a chaque pas de temps le & swdn0
type(ctrl_out), dimension(:), allocatable, save o_dtr_sat
real, dimension(:,:), allocatable, save fsollw
!$Header!c include clesph0 h c COMMON clesph0 ok_orolf
Definition: clesph0.h:6
real, dimension(:,:,:), allocatable, save v2sumstd
type(ctrl_out), dimension(:), allocatable, save o_dtr_vdf
real, dimension(:), allocatable, save rh2m
real, dimension(:), allocatable, save ale_bl_stat
real, dimension(:,:,:), allocatable, save d_tr_trsp
Definition: phytrac_mod.F90:33
real, dimension(:), allocatable, save ema_pcb
real, dimension(:,:), allocatable, save vtstd
real, dimension(:), allocatable, save zustar
real, dimension(:,:), allocatable, save topsw_aero
real, dimension(:), allocatable, save sollwdownclr
type(ctrl_out), save o_swsrfcf_zero
real, dimension(:), allocatable, save, public tice
real, dimension(:), allocatable, save proba_notrig
real, dimension(:), allocatable, save zxfluxlat_w
type(ctrl_out), save o_east_gwstress
real, dimension(:), allocatable, save alp_bl_conv
real, dimension(:), allocatable, save topsw
real, dimension(:), allocatable, save cdragm_w
real, dimension(:,:), allocatable, save fiwc
real, dimension(:,:), allocatable, save du_gwd_front
real, dimension(:), allocatable, save zxsnow
real, dimension(:), allocatable, save sconcdust
integer, parameter is_ter
real, dimension(:,:), allocatable, save wtstd
real, dimension(:), allocatable bils_latent
real, dimension(:,:), allocatable, save concno3
real, dimension(:), allocatable, save snow_lsc
real, dimension(:), allocatable, save kh
type(ctrl_out), dimension(4), save o_flw_srf
real, dimension(:), allocatable, save f0
!$Id ***************************************!ECRITURE DU pphis CALL zmasse
Definition: write_histrac.h:11
real, dimension(:), allocatable, save, public slab_bilg
type(ctrl_out), dimension(4), save o_u10m_srf
nsplit_thermals!nrlmd le iflag_clos_bl tau_trig_deep real::s_trig!fin nrlmd le fact_thermals_ed_dz iflag_wake iflag_thermals_closure common ctherm1 iflag_thermals_closure common ctherm2 fact_thermals_ed_dz common ctherm4 iflag_coupl
Definition: thermcell.h:12
real, dimension(:), allocatable, save bils
real, dimension(:), allocatable, save sens
real, dimension(:), allocatable, save zxfqcalving
real, dimension(:,:), allocatable, save wfbils
!$Header!c include clesph0 h c COMMON clesph0 ok_orodr
Definition: clesph0.h:6
real, dimension(:), allocatable, save ale_wake
real, dimension(:), allocatable, save snow_fall
!$Id ok_orolf LOGICAL ok_limitvrai LOGICAL ok_all_xml INTEGER iflag_con
Definition: clesphys.h:12
real, dimension(:), allocatable, save alp_bl_det
real, dimension(:), allocatable, save lwdn200clr
real, dimension(:), allocatable, save cldl
real, dimension(:,:), allocatable, save fl
type(ctrl_out), dimension(4), save o_albe_srf
real, dimension(:), allocatable, save sens_w
real, dimension(:,:), allocatable, save wake_deltaq
real, dimension(:), allocatable, save alp_wake
real, dimension(:), allocatable, save nday_rain
real, dimension(:), allocatable, save albsol3_lic
type(ctrl_out), save o_ozone_light
real, dimension(:), allocatable, save od550lt1aer
type(ctrl_out), save o_vstr_gwd_rando
type(ctrl_out), dimension(4), save o_wbils_srf
real, dimension(:,:), allocatable, save uvstd
integer, dimension(nfiles), save nid_files
real, dimension(:,:), allocatable, save lwup0p
nsplit_thermals!nrlmd le iflag_clos_bl tau_trig_deep real::s_trig!fin nrlmd le fact_thermals_ed_dz iflag_wake iflag_thermals_closure common ctherm1 iflag_thermals_closure common ctherm2 fact_thermals_ed_dz common ctherm4 iflag_wake common ctherm5 iflag_thermals_optflux!nrlmd le common ctherm6 iflag_trig_bl
Definition: thermcell.h:12
type(ctrl_out), dimension(4), save o_tke_srf
real, dimension(:), allocatable bils_enthalp
real, dimension(:,:), allocatable, save falb1
logical, save ok_veget
real, dimension(:,:), allocatable, save vphistd
type(ctrl_out), save o_od550lt1aer
real, dimension(:), allocatable, save rain_fall
real, dimension(:), allocatable, save tpot
real, dimension(:,:,:), allocatable, save d_tr_cv
Definition: phytrac_mod.F90:27
real, dimension(:,:,:), allocatable, save o3sumstd
real, dimension(:,:), allocatable, save topswcf_aero
real, dimension(:,:), allocatable, save dnwd
integer, dimension(:), allocatable, save itau_con
real, dimension(:,:,:), allocatable, save twritestd
real, dimension(:), allocatable, save weak_inversion
type(ctrl_out), save o_west_gwstress
real, dimension(:,:), allocatable, save swdn0p
type(ctrl_out), dimension(4), save o_z0h_srf
real, dimension(:,:), allocatable, save wlevstd
real, dimension(:), allocatable, save sollwad_aero
real, dimension(:), allocatable, save kh_x
real, dimension(:), allocatable, save jrnt
type(ctrl_out), save o_ale_bl_stat
real, dimension(:), allocatable, save sconcso4
real, dimension(:,:,:), allocatable, save d_tr_lessi_nucl
Definition: phytrac_mod.F90:43
real, dimension(:,:), allocatable, save ftd
type(ctrl_out), dimension(:), allocatable, save o_dtr_sscav
type(ctrl_out), dimension(4), save o_t2m_srf
real, dimension(:), allocatable, save s2
real, dimension(:), allocatable, save cdragm
real, dimension(:,:), allocatable, save vprecip
integer, save day_step_phy
type(ctrl_out), save o_bils_latent
integer, parameter is_ave
real, dimension(:), allocatable, save slp
type(ctrl_out), save o_swsrfas_nat
real, dimension(:), allocatable, save solsw0
character(len=6), save version_ocean
integer, save klon
Definition: dimphy.F90:3
real, dimension(:), allocatable bils_diss
real, dimension(:,:), allocatable, save lcc3dstra
real, dimension(:), allocatable, save qsnow
real, dimension(:), allocatable, save n2
real, dimension(:), allocatable, save cdragh
real, dimension(:), allocatable, save zt2m
type(ctrl_out), save o_swtoacf_nat
type(ctrl_out), save o_ustr_gwd_rando
real, dimension(:,:), allocatable, save ec550aer
real, parameter missing_val_nf90
real, dimension(:,:,:), allocatable, save d_tr_cl
Definition: phytrac_mod.F90:25
real, dimension(:,:,:), allocatable, save u2sumstd
real, dimension(:,:), allocatable, save t2std
real, dimension(:), allocatable, save solswad0_aero
real, dimension(:), allocatable, save cldnvi
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL &zphi geo500!IM on interpole a chaque pas de temps le SWdn200clr CALL SWup200clr CALL LWdn200clr CALL & lwup0
real, dimension(:), allocatable, save solswad_aero
real, dimension(:,:), allocatable, save pctsrf
real, dimension(:), allocatable bils_ech
real, dimension(:,:), allocatable, save swup0p
real, dimension(:), allocatable, save loaddust
real, dimension(:), allocatable, save wbeff
real, dimension(:), allocatable, save cldm
real, dimension(:), allocatable, save radsol
real, dimension(:,:), allocatable, save entr_therm
integer, save klev
Definition: dimphy.F90:7
real, dimension(:), allocatable, save zfra_o
type(ctrl_out), save o_swtoacf_ant
real, dimension(:,:,:), allocatable, save vqsumstd
real, dimension(:), allocatable, save od865aer
real, dimension(:), allocatable, save vq
c c $Id c c calculs statistiques distribution nuage ftion du regime dynamique c c Ce calcul doit etre fait a partir de valeurs mensuelles CALL nbregdyn DO k
Definition: calcul_REGDYN.h:12
!$Id iflag_pbl_split common compbl iflag_pbl
Definition: compbl.h:7
real, dimension(:), allocatable, save qsol
real, dimension(:), allocatable zustr_gwd_hines
real, dimension(:,:), allocatable, save d_q_wake
type(ctrl_out), dimension(5), save o_wstar
type(ctrl_out), dimension(:), allocatable, save o_dtr_lessi_impa
integer, save mth_len
real, dimension(:), allocatable, save ve
real, dimension(:,:), allocatable, save qlevstd
type(ctrl_out), dimension(:), allocatable, save o_dtr_con
real, dimension(:,:), allocatable, save lwdnp
real, dimension(:,:), allocatable, save cldtau
!$Id itau_phy
Definition: temps.h:15
real, dimension(:,:,:), allocatable, save pbl_tke
real, dimension(:), allocatable, save sollw
real, dimension(:), allocatable, save cape
type(ctrl_out), dimension(:), allocatable, save o_dtr_uscav
real, dimension(:), allocatable, save lwup200clr
type(ctrl_out), dimension(naero_tot), save o_tausumaero
real, dimension(:,:), allocatable, save d_t_wake
type(ctrl_out), save o_alp_bl_fluct_m
real, dimension(:,:), allocatable, save rnebcon
real, dimension(:), allocatable, save albsol1
real, dimension(:,:,:), allocatable, save d_tr_bcscav
Definition: phytrac_mod.F90:30
real, dimension(:), allocatable, save sconcbc
real, dimension(:), allocatable, save dthmin
real, dimension(:,:), allocatable, save u2std
type(ctrl_out), dimension(4), save o_wbilo_srf
real, dimension(:,:,:), allocatable, save wtsumstd
real, dimension(:), allocatable, save snowhgt
real, dimension(:,:), allocatable, save scdnc
type(ctrl_out), save o_t2m_min_mon
real, dimension(:,:), allocatable, save v2std
real, dimension(:), allocatable, save rain_con
type(ctrl_out), dimension(:), allocatable, save o_dtr_bcscav
real, dimension(:,:,:), allocatable, save tnondef
real, dimension(:,:), allocatable, save solsw0_aero
type(ctrl_out), save o_tausumaero_lw
real, dimension(:), allocatable, save sissnow
real, dimension(:), allocatable, save sollwdown
type(ctrl_out), dimension(:), allocatable, save o_dtr_trsp
real, dimension(:,:), allocatable, save concoa
real, dimension(:,:,:), allocatable, save wwritestd
real, dimension(:), allocatable, save cldh
real, dimension(:), allocatable, save slab_wfbils
nrlmd+jyg
type(ctrl_out), dimension(4), save o_evap_srf
real, dimension(:), allocatable, save wake_s
real, dimension(:,:), allocatable, save pmflxs
real, dimension(:,:,:), allocatable, save d_tr_evapls
Definition: phytrac_mod.F90:31
real, dimension(:,:,:), allocatable, save fluxu
real, dimension(:,:), allocatable, save pmflxr
real, dimension(:), allocatable, save ale_bl
real, dimension(:), allocatable, save pt0
real, dimension(:), allocatable, save toplwad0_aero
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL &zphi geo500!IM on interpole a chaque pas de temps le SWdn200clr CALL SWup200clr CALL & lwdn0
real, dimension(:), allocatable, save topsw0
real, dimension(:), allocatable, save snow_con
real, dimension(:), allocatable, save rain_lsc
real, dimension(:,:), allocatable, save fluxlat
real, dimension(:,:), allocatable, save evap_pot
real, dimension(:,:), allocatable, save lwdn0p
real, dimension(:,:,:), allocatable, save d_tr_uscav
Definition: phytrac_mod.F90:36
real, dimension(:,:), allocatable, save lcc3dcon
real, dimension(:), allocatable zvstr_gwd_front
real, dimension(:), allocatable, save swup200
real, dimension(:), allocatable, save s_lcl
real, dimension(:,:), allocatable, save t2m
real, dimension(:,:), allocatable, save philevstd
type(ctrl_out), dimension(:), allocatable, save o_trac_cum
real, dimension(:), allocatable, save t2m_max_mon
real, dimension(:,:), allocatable, save delta_tsurf
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL &zphi geo500!IM on interpole a chaque pas de temps le SWdn200clr CALL & swup0
real, dimension(:), allocatable, save zxfqfonte
real, dimension(:), allocatable, save zxtsol
real, dimension(:), allocatable zvstr_gwd_hines
real, dimension(:,:,:), allocatable, save wake_delta_pbl_tke
real, dimension(:,:), allocatable, save dtvdf_w
real, dimension(:), allocatable, save alp_bl
real, dimension(:), allocatable, save ema_cbmf
real, dimension(:,:), allocatable, save lcc3d
real, dimension(:), allocatable, save toplw
real, dimension(:,:,:), allocatable, save coefh
real, dimension(:,:), allocatable, save z0m
real, dimension(:), allocatable, save solswai_aero
real, dimension(:), allocatable, save qsat2m
real, dimension(:), allocatable, save cdragh_w
real, dimension(:,:), allocatable, save upwd
type(ctrl_out), save o_contfracor
type(ctrl_out), save o_swsrfas_ant
real, dimension(:,:), allocatable, save dqvdf_w
real, dimension(:,:,:), allocatable, save qwritestd
real, dimension(:), allocatable, save, public seaice
real, dimension(:), allocatable, save zv10m
real, dimension(:), allocatable, save uq
type(ctrl_out), dimension(4), save o_snow_srf
type(ctrl_out), save o_swtoacf_zero
real, dimension(:,:,:), allocatable, save d_tr_sscav
Definition: phytrac_mod.F90:34
real, dimension(:), allocatable, save plcl
real, dimension(:), allocatable, save loadbc
real, dimension(:,:), allocatable, save lwdn
real, dimension(:,:), allocatable, save cldemi
type(ctrl_out), dimension(4), save o_evappot_srf
real, dimension(:), allocatable, save zxffonte
real, dimension(:,:,:), allocatable, save fluxv
real, dimension(:), allocatable, save evap
real, dimension(:,:), allocatable, save rhlevstd
integer, parameter is_lic
real, dimension(:), allocatable, save sconcss
real, dimension(:,:), allocatable, save re
real, dimension(:,:), allocatable, save wfbilo
real, dimension(:,:), allocatable, save topsw0_aero
integer, save nqtot
Definition: infotrac_phy.F90:8
real, dimension(:), allocatable, save swradcorr
type(ctrl_out), dimension(4), save o_ages_srf
real, dimension(:,:,:), allocatable, save o3daysumstd
real, dimension(:), allocatable, save cldtjn
type(ctrl_out), dimension(4), save o_taux_srf
type(ctrl_out), save o_swtoaas_ant
real, dimension(:,:), allocatable, save wdtraina
real, dimension(:), allocatable, save lcc
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL pplay
Definition: calcul_STDlev.h:26
type(ctrl_out), save o_ale
nrlmd+jyg
real, dimension(:,:), allocatable, save fm_therm
real, dimension(:), allocatable, save solsw
real, dimension(:,:,:), allocatable, save d_tr_insc
Definition: phytrac_mod.F90:29
real, dimension(:,:,:), allocatable, save uvsumstd
type(ctrl_out), dimension(4), save o_sens_srf
subroutine set_itau_iophy(ito)
Definition: iophy.F90:36
!FH On elimine toutes les clefs physiques dans la dynamique prt_level
type(ctrl_out), save o_swtoacs_nat
real, dimension(:), allocatable, save flwp
real, dimension(:), allocatable, save alp_bl_fluct_m
subroutine phys_output_write(itap, pdtphys, paprs, pphis, pplay, lmax_th, aerosol_couple, ok_ade, ok_aie, ivap, new_aod, ok_sync, ptconv, read_climoz, clevSTD, ptconvth, d_t, qx, d_qx, zmasse, flag_aerosol, flag_aerosol_strat, ok_cdnc)
real, dimension(:,:,:), allocatable, save wo
real, dimension(:), allocatable, save sollwai_aero
real, dimension(:,:), allocatable, save reffclws
type(ctrl_out), save o_ale_bl_trig
real, dimension(:,:), allocatable, save, public tslab
real, dimension(:,:), allocatable, save concss
real, dimension(:), allocatable, save toplwad_aero
c c $Id c nsrf
integer, parameter nlevstd
type(ctrl_out), dimension(:), allocatable, save o_dtr_insc
integer, save nslay
Definition: dimphy.F90:11
real, dimension(:), allocatable, save toplw0
real, dimension(:), allocatable, save t2m_min_mon
real, dimension(:), allocatable, save alp_bl_stat
real, dimension(:), allocatable, save swdn200clr
real, dimension(:), allocatable, save gustiness
real, dimension(:,:), allocatable, save u10m
type(ctrl_out), save o_contfracatm
type(ctrl_out), dimension(:), allocatable, save o_dtr_evapls
real, dimension(:,:), allocatable, save vqstd
real, dimension(:), allocatable, save s_therm
real, dimension(:), allocatable, save runoff
real, dimension(:), allocatable, save topswad0_aero
real, dimension(:,:), allocatable, save q_seri
real, dimension(:,:), allocatable, save v10m
real, dimension(:,:), allocatable, save clwcon0
real, dimension(:), allocatable, save zxfluxlat_x
real, dimension(:,:), allocatable, save swdn
real, dimension(:,:,:), allocatable, save d_tr_th
Definition: phytrac_mod.F90:41
real, dimension(:), allocatable, save zu10m
type(ctrl_out), save o_ustr_gwd_hines
real, dimension(:), allocatable, save ema_pct
real, dimension(:,:), allocatable, save lwupp
real, dimension(:,:,:), allocatable, save vwritestd
type(ctrl_out), save o_alp_bl_stat
real, dimension(:), allocatable, save cldncl
real, dimension(:), allocatable, save toplwai_aero
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
type(ctrl_out), dimension(7), save o_wstdlevs
real, dimension(:,:,:), allocatable, save coefm
real, dimension(:), allocatable, save sollwad0_aero
real, dimension(:), allocatable, save cldmjn
character(len=6), save type_ocean
real, dimension(:), allocatable, save sconcno3
real, dimension(:), allocatable, save albsol2
!$Id Turb_fcg!implicit none!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc!cette routine permet d obtenir hq et ainsi de!pouvoir calculer la convergence et le cisaillement dans la physiq!cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc INTEGER klev REAL ll
Definition: 1Dconv.h:27
real, dimension(:), allocatable, save ue
type(ctrl_out), dimension(:), allocatable, save o_dtr_lessi_nucl
type(ctrl_out), dimension(7), save o_tstdlevs
real, dimension(:), allocatable, save loadso4
real, dimension(:), allocatable, save cdragm_x
type(ctrl_out), dimension(4), save o_tsol_srf
real, dimension(:,:), allocatable, save, public snow
integer, parameter nfiles
integer, save klevp1
Definition: dimphy.F90:8
nsplit_thermals!nrlmd le iflag_clos_bl tau_trig_deep real::s_trig!fin nrlmd le fact_thermals_ed_dz iflag_wake iflag_thermals_closure common ctherm1 iflag_thermals
Definition: thermcell.h:12
integer, parameter nbsrf
real, dimension(:,:,:), allocatable, save tausum_aero
real, dimension(:,:), allocatable, save prfl
type(ctrl_out), save o_t2m_max_mon
real, dimension(:), allocatable, save topswai_aero
real, dimension(:,:), allocatable, save wstar
real, dimension(:,:), allocatable, save ustar
real, parameter epsfra
real, dimension(:,:), allocatable, save solsw_aero
real, dimension(:), allocatable, save od550aer
real, dimension(:), allocatable, save ale
type(ctrl_out), dimension(:), allocatable, save o_dtr_ls
type(ctrl_out), save o_wind10max
type(ctrl_out), dimension(7), save o_ustdlevs
real, dimension(:), allocatable, save reffclwtop
real, dimension(:), allocatable bils_kinetic
type(ctrl_out), dimension(4), save o_fsw_srf
real, dimension(:), allocatable, save absvisaer
real, dimension(:,:), allocatable, save du_gwd_rando
real, dimension(:), allocatable, save wake_pe
real, dimension(:,:,:), allocatable, save fluxt
real, dimension(:,:,:), allocatable, save t2sumstd
logical, save ok_snow
real, dimension(:), allocatable, save cin
real, dimension(:), allocatable, save cldt
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL & u_seri
Definition: calcul_STDlev.h:26
real, dimension(:), allocatable, save plfc
real, dimension(:,:), allocatable, save agesno
real, dimension(:,:), allocatable, save dqvdf_x
real, dimension(:,:), allocatable, save concbc
real, dimension(:,:), allocatable, save swup
real, dimension(:), allocatable, save alp_bl_fluct_tke
real, dimension(:,:,:), allocatable, save vphisumstd
real, dimension(:,:), allocatable, save ratqs
real, dimension(:), allocatable zvstr_gwd_rando
real, dimension(:), allocatable, save ale_bl_trig
real, dimension(:,:), allocatable, save psfl
type(ctrl_out), save o_swtoacs_ant
real, dimension(:), allocatable zustr_gwd_front
type(ctrl_out), dimension(4), save o_lat_srf
type(ctrl_out), dimension(7), save o_zstdlevs
real, dimension(:,:), allocatable, save t_seri
type(ctrl_out), save o_swtoaas_nat
real, dimension(:), allocatable, save wake_h
jyg+nrlmd
real, dimension(:), allocatable, save loadss
type(ctrl_out), save o_swsrfcf_nat
character(len=4), save type_trac
type(ctrl_out), save o_ustr_gwd_front
real, dimension(:,:), allocatable, save swdnp
real, dimension(:,:,:), allocatable, save uwritestd
real, dimension(:), allocatable, save cldljn
real, dimension(:,:), allocatable, save wdtrainm
type(ctrl_out), save o_proba_notrig
real, dimension(:,:), allocatable, save dnwd0
type(ctrl_out), dimension(4), save o_z0m_srf
real, dimension(:), allocatable, save zxqsurf
real, dimension(:), allocatable, save prw
integer, parameter is_sic
real, dimension(:,:), allocatable, save solswcf_aero
real, dimension(:), allocatable, save fiwp
real, dimension(:,:), allocatable, save wqstd
type(ctrl_out), dimension(4), save o_v10m_srf
real, dimension(:,:), allocatable, save flwc
type(ctrl_out), dimension(4), save o_ustar_srf
type(ctrl_out), save o_alp_bl_fluct_tke
real, dimension(:), allocatable, save lwup200
real, dimension(:,:), allocatable, save dtvdf_x
jyg Sorties ferret
real, dimension(:), allocatable, save s_pblh
real, dimension(:,:), allocatable, save fevap
type(ctrl_out), dimension(7), save o_vstdlevs
real, dimension(:,:), allocatable, save concso4
real, dimension(:), allocatable, save to_ice
real, dimension(:), allocatable, save swdn200
type(ctrl_out), save o_vstr_gwd_hines
type(ctrl_out), save o_vstr_gwd_front
type(ctrl_out), dimension(4), save o_fract_srf
type(ctrl_out), dimension(4), save o_tke_max_srf
type(ctrl_out), save o_delta_tsurf
real, dimension(:), allocatable, save kh_w
real, dimension(:), allocatable, save lwdn200
real, dimension(:,:), allocatable, save z0h
real, dimension(:,:,:), allocatable, save wqsumstd
real, dimension(:), allocatable, save topswad_aero
real, dimension(:,:), allocatable, save reffclwc
type(ctrl_out), dimension(4), save o_dltpbltke_srf
real, dimension(:,:,:), allocatable, save d_tr_sat
Definition: phytrac_mod.F90:35
real, dimension(:), allocatable, save cldq
real, dimension(:,:), allocatable, save vlevstd
type(ctrl_out), save o_random_notrig
integer, parameter naero_tot
Definition: aero_mod.F90:10
real, dimension(:,:), allocatable, save ftsol
real, dimension(:), allocatable, save random_notrig
logical, dimension(nfiles), save clef_files
real, dimension(:), allocatable, save sens_x
real, dimension(:,:), allocatable, save ma
real, dimension(:,:), allocatable, save wake_omg
type(ctrl_out), dimension(4), save o_pourc_srf
real, dimension(:), allocatable, save ptstar
real, dimension(:,:), allocatable, save concdust
real, dimension(:), allocatable zustr_gwd_rando
type(ctrl_out), dimension(4), save o_tauy_srf
real, dimension(:), allocatable, save fder
real, dimension(:,:), allocatable, save zqasc
!$Id start_time
Definition: temps.h:15
real, dimension(:,:,:), allocatable, save phiwritestd
type(ctrl_out), dimension(:), allocatable, save o_trac
Definition: dimphy.F90:1
real, dimension(:,:,:), allocatable, save d_tr_ls
Definition: phytrac_mod.F90:32
type(ctrl_out), save o_alp_bl_conv
real, dimension(:,:), allocatable, save swupp
real, dimension(:,:), allocatable, save lwup
type(ctrl_out), save o_swsrfcf_ant
real, dimension(:,:), allocatable, save theta
real, dimension(:), allocatable, save sconcoa
real, dimension(:,:), allocatable, save d_ts
real, dimension(:,:), allocatable, save o3daystd
real, dimension(:,:), allocatable, save o3std
real, dimension(:), allocatable bils_tke
integer, parameter id_strat_phy
Definition: aero_mod.F90:27
real, dimension(:), allocatable, save loadoa
integer, parameter is_oce
real, dimension(:), allocatable, save swup200clr
integer, save nqo
real, dimension(:,:,:), allocatable, save vtsumstd
Definition: iophy.F90:4
real, dimension(:), allocatable, save paire_ter
real, dimension(:,:), allocatable, save ulevstd
real, dimension(:), allocatable, save cdragh_x
real, dimension(:), allocatable, save alp
real, dimension(:,:), allocatable, save detr_therm
real, dimension(:), allocatable, save cell_area
type(ctrl_out), save o_swsrfcs_nat
real, dimension(:), allocatable, save zxfluxlat
real, dimension(:,:), allocatable, save fqd
type(ctrl_out), save o_bils_kinetic
real, dimension(:), allocatable, save cldhjn
real, dimension(:), allocatable, save, public slab_bils
!$Header!gestion des impressions de sorties et de débogage la sortie standard prt_level COMMON comprint lunout
Definition: iniprint.h:7
type(ctrl_out), save o_tro3_daylight
real, dimension(:), allocatable, save snow_o
real rg
Definition: comcstphy.h:1
real, dimension(:), allocatable, save sollw0
type(ctrl_out), dimension(7), save o_qstdlevs
real, dimension(:,:,:), allocatable, save d_tr_lessi_impa
Definition: phytrac_mod.F90:42
real, dimension(:), allocatable bils_ec
real, dimension(:), allocatable, save s_pblt
real, dimension(:,:), allocatable, save fsolsw
type(ctrl_out), save o_swsrfcs_ant
real, dimension(:), allocatable, save tpote
type(ctrl_out), dimension(:), allocatable, save o_dtr_the
type(ctrl_out), save o_bils_enthalp
real, dimension(:,:), allocatable, save wake_deltat
real, dimension(:), allocatable, save zq2m