--- trunk/Sources/phylmd/physiq.f 2016/03/11 18:47:26 178 +++ trunk/Sources/phylmd/physiq.f 2016/03/29 15:20:23 189 @@ -21,7 +21,7 @@ use calltherm_m, only: calltherm USE clesphys, ONLY: cdhmax, cdmmax, ecrit_hf, ecrit_ins, ecrit_mth, & ecrit_reg, ecrit_tra, ksta, ksta_ter, ok_kzmin - USE clesphys2, ONLY: cycle_diurne, iflag_con, nbapp_rad, new_oliq, & + USE clesphys2, ONLY: cycle_diurne, conv_emanuel, nbapp_rad, new_oliq, & ok_orodr, ok_orolf USE clmain_m, ONLY: clmain use clouds_gno_m, only: clouds_gno @@ -108,9 +108,6 @@ LOGICAL:: firstcal = .true. - LOGICAL ok_gust ! pour activer l'effet des gust sur flux surface - PARAMETER (ok_gust = .FALSE.) - LOGICAL, PARAMETER:: check = .FALSE. ! Verifier la conservation du modele en eau @@ -148,12 +145,6 @@ REAL lwup0(klon, llm + 1), lwup(klon, llm + 1) SAVE lwdn0, lwdn, lwup0, lwup - ! Amip2 - ! variables a une pression donnee - - integer nlevSTD - PARAMETER(nlevSTD = 17) - ! prw: precipitable water real prw(klon) @@ -162,11 +153,6 @@ REAL flwp(klon), fiwp(klon) REAL flwc(klon, llm), fiwc(klon, llm) - INTEGER kmax, lmax - PARAMETER(kmax = 8, lmax = 8) - INTEGER kmaxm1, lmaxm1 - PARAMETER(kmaxm1 = kmax - 1, lmaxm1 = lmax - 1) - ! Variables propres a la physique INTEGER, save:: radpas @@ -208,23 +194,15 @@ REAL zulow(klon), zvlow(klon) INTEGER igwd, itest(klon) - REAL agesno(klon, nbsrf) - SAVE agesno ! age de la neige + REAL, save:: agesno(klon, nbsrf) ! age de la neige + REAL, save:: run_off_lic_0(klon) - REAL run_off_lic_0(klon) - SAVE run_off_lic_0 - !KE43 - ! Variables liees a la convection de K. Emanuel (sb): - - REAL Ma(klon, llm) ! undilute upward mass flux - SAVE Ma - REAL qcondc(klon, llm) ! in-cld water content from convect - SAVE qcondc + ! Variables li\'ees \`a la convection d'Emanuel : + REAL, save:: Ma(klon, llm) ! undilute upward mass flux + REAL, save:: qcondc(klon, llm) ! in-cld water content from convect REAL, save:: sig1(klon, llm), w01(klon, llm) - REAL, save:: wd(klon) - - ! Variables pour la couche limite (al1): + ! Variables pour la couche limite (Alain Lahellec) : REAL cdragh(klon) ! drag coefficient pour T and Q REAL cdragm(klon) ! drag coefficient pour vent @@ -331,7 +309,7 @@ REAL, PARAMETER:: t_coup = 234. REAL zphi(klon, llm) - ! cf. AM Variables pour la CLA (hbtm2) + ! cf. Anne Mathieu variables pour la couche limite atmosphérique (hbtm) REAL, SAVE:: pblh(klon, nbsrf) ! Hauteur de couche limite REAL, SAVE:: plcl(klon, nbsrf) ! Niveau de condensation de la CLA @@ -343,7 +321,7 @@ REAL, SAVE:: trmb1(klon, nbsrf) ! deep_cape REAL, SAVE:: trmb2(klon, nbsrf) ! inhibition REAL, SAVE:: trmb3(klon, nbsrf) ! Point Omega - ! Grdeurs de sorties + ! Grandeurs de sorties REAL s_pblh(klon), s_lcl(klon), s_capCL(klon) REAL s_oliqCL(klon), s_cteiCL(klon), s_pblt(klon) REAL s_therm(klon), s_trmb1(klon), s_trmb2(klon) @@ -381,9 +359,11 @@ REAL prfl(klon, llm + 1), psfl(klon, llm + 1) INTEGER, save:: ibas_con(klon), itop_con(klon) + real ema_pct(klon) ! Emanuel pressure at cloud top, in Pa REAL rain_con(klon), rain_lsc(klon) - REAL snow_con(klon), snow_lsc(klon) + REAL, save:: snow_con(klon) ! neige (mm / s) + real snow_lsc(klon) REAL d_ts(klon, nbsrf) REAL d_u_vdf(klon, llm), d_v_vdf(klon, llm) @@ -486,7 +466,6 @@ SAVE ffonte SAVE fqcalving SAVE rain_con - SAVE snow_con SAVE topswai SAVE topswad SAVE solswai @@ -497,7 +476,6 @@ real zmasse(klon, llm) ! (column-density of mass of air in a cell, in kg m-2) - real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 integer, save:: ncid_startphy, itau_phy namelist /physiq_nml/ ok_journe, ok_mensuel, ok_instan, fact_cldcon, & @@ -579,7 +557,7 @@ CALL printflag(radpas, ok_journe, ok_instan, ok_region) ! Initialisation pour le sch\'ema de convection d'Emanuel : - IF (iflag_con >= 3) THEN + IF (conv_emanuel) THEN ibas_con = 1 itop_con = 1 ENDIF @@ -856,32 +834,17 @@ ! Appeler la convection (au choix) - if (iflag_con == 2) then - conv_q = d_q_dyn + d_q_vdf / dtphys - conv_t = d_t_dyn + d_t_vdf / dtphys - z_avant = sum((q_seri + ql_seri) * zmasse, dim=2) - CALL conflx(dtphys, paprs, play, t_seri(:, llm:1:- 1), & - q_seri(:, llm:1:- 1), conv_t, conv_q, zxfluxq(:, 1), omega, & - d_t_con, d_q_con, rain_con, snow_con, mfu(:, llm:1:- 1), & - mfd(:, llm:1:- 1), pen_u, pde_u, pen_d, pde_d, kcbot, kctop, & - kdtop, pmflxr, pmflxs) - WHERE (rain_con < 0.) rain_con = 0. - WHERE (snow_con < 0.) snow_con = 0. - ibas_con = llm + 1 - kcbot - itop_con = llm + 1 - kctop - else - ! iflag_con >= 3 - + if (conv_emanuel) then da = 0. mp = 0. phi = 0. CALL concvl(dtphys, paprs, play, t_seri, q_seri, u_seri, v_seri, sig1, & - w01, d_t_con, d_q_con, d_u_con, d_v_con, rain_con, snow_con, & - ibas_con, itop_con, upwd, dnwd, dnwd0, Ma, cape, iflagctrl, & - qcondc, wd, pmflxr, pmflxs, da, phi, mp) + w01, d_t_con, d_q_con, d_u_con, d_v_con, rain_con, ibas_con, & + itop_con, upwd, dnwd, dnwd0, Ma, cape, iflagctrl, qcondc, pmflxr, & + da, phi, mp) + snow_con = 0. clwcon0 = qcondc mfu = upwd + dnwd - IF (.NOT. ok_gust) wd = 0. IF (thermcep) THEN zqsat = MIN(0.5, r2es * FOEEW(t_seri, rtt >= t_seri) / play) @@ -895,11 +858,25 @@ call clouds_gno(klon, llm, q_seri, zqsat, clwcon0, ptconv, ratqsc, & rnebcon0) + forall (i = 1:klon) ema_pct(i) = paprs(i,itop_con(i) + 1) mfd = 0. pen_u = 0. pen_d = 0. pde_d = 0. pde_u = 0. + else + conv_q = d_q_dyn + d_q_vdf / dtphys + conv_t = d_t_dyn + d_t_vdf / dtphys + z_avant = sum((q_seri + ql_seri) * zmasse, dim=2) + CALL conflx(dtphys, paprs, play, t_seri(:, llm:1:- 1), & + q_seri(:, llm:1:- 1), conv_t, conv_q, zxfluxq(:, 1), omega, & + d_t_con, d_q_con, rain_con, snow_con, mfu(:, llm:1:- 1), & + mfd(:, llm:1:- 1), pen_u, pde_u, pen_d, pde_d, kcbot, kctop, & + kdtop, pmflxr, pmflxs) + WHERE (rain_con < 0.) rain_con = 0. + WHERE (snow_con < 0.) snow_con = 0. + ibas_con = llm + 1 - kcbot + itop_con = llm + 1 - kctop END if DO k = 1, llm @@ -933,7 +910,7 @@ print *, "Precip = ", zx_t ENDIF - IF (iflag_con == 2) THEN + IF (.not. conv_emanuel) THEN z_apres = sum((q_seri + ql_seri) * zmasse, dim=2) z_factor = (z_avant - (rain_con + snow_con) * dtphys) / z_apres DO k = 1, llm @@ -1397,6 +1374,7 @@ ! Ecriture des sorties use dimens_m, only: iim, jjm + use gr_phy_write_m, only: gr_phy_write USE histsync_m, ONLY: histsync USE histwrite_m, ONLY: histwrite @@ -1410,208 +1388,213 @@ itau_w = itau_phy + itap - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, pphis, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(pphis) CALL histwrite(nid_ins, "phis", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, airephy, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(airephy) CALL histwrite(nid_ins, "aire", itau_w, zx_tmp_2d) DO i = 1, klon zx_tmp_fi2d(i) = paprs(i, 1) ENDDO - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "psol", itau_w, zx_tmp_2d) DO i = 1, klon zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) ENDDO - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "precip", itau_w, zx_tmp_2d) DO i = 1, klon zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i) ENDDO - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "plul", itau_w, zx_tmp_2d) DO i = 1, klon zx_tmp_fi2d(i) = rain_con(i) + snow_con(i) ENDDO - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "pluc", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zxtsol, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zxtsol) CALL histwrite(nid_ins, "tsol", itau_w, zx_tmp_2d) !ccIM - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zt2m, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zt2m) CALL histwrite(nid_ins, "t2m", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zq2m, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zq2m) CALL histwrite(nid_ins, "q2m", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zu10m, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zu10m) CALL histwrite(nid_ins, "u10m", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zv10m, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zv10m) CALL histwrite(nid_ins, "v10m", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, snow_fall, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(snow_fall) CALL histwrite(nid_ins, "snow", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, cdragm, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(cdragm) CALL histwrite(nid_ins, "cdrm", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, cdragh, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(cdragh) CALL histwrite(nid_ins, "cdrh", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, toplw, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(toplw) CALL histwrite(nid_ins, "topl", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, evap, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(evap) CALL histwrite(nid_ins, "evap", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, solsw, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(solsw) CALL histwrite(nid_ins, "sols", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, sollw, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(sollw) CALL histwrite(nid_ins, "soll", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, sollwdown, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(sollwdown) CALL histwrite(nid_ins, "solldown", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, bils, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(bils) CALL histwrite(nid_ins, "bils", itau_w, zx_tmp_2d) zx_tmp_fi2d(1:klon) = - sens(1:klon) - ! CALL gr_fi_ecrit(1, klon, iim, jjm + 1, sens, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + ! zx_tmp_2d = gr_phy_write(sens) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "sens", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, fder, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(fder) CALL histwrite(nid_ins, "fder", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, d_ts(1, is_oce), zx_tmp_2d) + zx_tmp_2d = gr_phy_write(d_ts(:, is_oce)) CALL histwrite(nid_ins, "dtsvdfo", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, d_ts(1, is_ter), zx_tmp_2d) + zx_tmp_2d = gr_phy_write(d_ts(:, is_ter)) CALL histwrite(nid_ins, "dtsvdft", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, d_ts(1, is_lic), zx_tmp_2d) + zx_tmp_2d = gr_phy_write(d_ts(:, is_lic)) CALL histwrite(nid_ins, "dtsvdfg", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, d_ts(1, is_sic), zx_tmp_2d) + zx_tmp_2d = gr_phy_write(d_ts(:, is_sic)) CALL histwrite(nid_ins, "dtsvdfi", itau_w, zx_tmp_2d) DO nsrf = 1, nbsrf !XXX zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, nsrf)*100. - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "pourc_"//clnsurf(nsrf), itau_w, & zx_tmp_2d) zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, nsrf) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "fract_"//clnsurf(nsrf), itau_w, & zx_tmp_2d) zx_tmp_fi2d(1 : klon) = fluxt(1 : klon, 1, nsrf) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "sens_"//clnsurf(nsrf), itau_w, & zx_tmp_2d) zx_tmp_fi2d(1 : klon) = fluxlat(1 : klon, nsrf) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "lat_"//clnsurf(nsrf), itau_w, & zx_tmp_2d) zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, nsrf) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "tsol_"//clnsurf(nsrf), itau_w, & zx_tmp_2d) zx_tmp_fi2d(1 : klon) = fluxu(1 : klon, 1, nsrf) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "taux_"//clnsurf(nsrf), itau_w, & zx_tmp_2d) zx_tmp_fi2d(1 : klon) = fluxv(1 : klon, 1, nsrf) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "tauy_"//clnsurf(nsrf), itau_w, & zx_tmp_2d) zx_tmp_fi2d(1 : klon) = frugs(1 : klon, nsrf) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "rugs_"//clnsurf(nsrf), itau_w, & zx_tmp_2d) zx_tmp_fi2d(1 : klon) = falbe(:, nsrf) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) CALL histwrite(nid_ins, "albe_"//clnsurf(nsrf), itau_w, & zx_tmp_2d) END DO - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, albsol, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(albsol) CALL histwrite(nid_ins, "albs", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zxrugs, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(zxrugs) CALL histwrite(nid_ins, "rugs", itau_w, zx_tmp_2d) !HBTM2 - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_pblh, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(s_pblh) CALL histwrite(nid_ins, "s_pblh", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_pblt, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(s_pblt) CALL histwrite(nid_ins, "s_pblt", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_lcl, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(s_lcl) CALL histwrite(nid_ins, "s_lcl", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_capCL, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(s_capCL) CALL histwrite(nid_ins, "s_capCL", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_oliqCL, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(s_oliqCL) CALL histwrite(nid_ins, "s_oliqCL", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_cteiCL, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(s_cteiCL) CALL histwrite(nid_ins, "s_cteiCL", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_therm, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(s_therm) CALL histwrite(nid_ins, "s_therm", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_trmb1, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(s_trmb1) CALL histwrite(nid_ins, "s_trmb1", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_trmb2, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(s_trmb2) CALL histwrite(nid_ins, "s_trmb2", itau_w, zx_tmp_2d) - CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_trmb3, zx_tmp_2d) + zx_tmp_2d = gr_phy_write(s_trmb3) CALL histwrite(nid_ins, "s_trmb3", itau_w, zx_tmp_2d) + if (conv_emanuel) then + zx_tmp_2d = gr_phy_write(ema_pct) + CALL histwrite(nid_ins, "ptop", itau_w, zx_tmp_2d) + end if + ! Champs 3D: - CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, t_seri, zx_tmp_3d) + zx_tmp_3d = gr_phy_write(t_seri) CALL histwrite(nid_ins, "temp", itau_w, zx_tmp_3d) - CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, u_seri, zx_tmp_3d) + zx_tmp_3d = gr_phy_write(u_seri) CALL histwrite(nid_ins, "vitu", itau_w, zx_tmp_3d) - CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, v_seri, zx_tmp_3d) + zx_tmp_3d = gr_phy_write(v_seri) CALL histwrite(nid_ins, "vitv", itau_w, zx_tmp_3d) - CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, zphi, zx_tmp_3d) + zx_tmp_3d = gr_phy_write(zphi) CALL histwrite(nid_ins, "geop", itau_w, zx_tmp_3d) - CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, play, zx_tmp_3d) + zx_tmp_3d = gr_phy_write(play) CALL histwrite(nid_ins, "pres", itau_w, zx_tmp_3d) - CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, d_t_vdf, zx_tmp_3d) + zx_tmp_3d = gr_phy_write(d_t_vdf) CALL histwrite(nid_ins, "dtvdf", itau_w, zx_tmp_3d) - CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, d_q_vdf, zx_tmp_3d) + zx_tmp_3d = gr_phy_write(d_q_vdf) CALL histwrite(nid_ins, "dqvdf", itau_w, zx_tmp_3d) - CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, zx_rh, zx_tmp_3d) + zx_tmp_3d = gr_phy_write(zx_rh) CALL histwrite(nid_ins, "rhum", itau_w, zx_tmp_3d) call histsync(nid_ins)