21 |
use calltherm_m, only: calltherm |
use calltherm_m, only: calltherm |
22 |
USE clesphys, ONLY: cdhmax, cdmmax, ecrit_hf, ecrit_ins, ecrit_mth, & |
USE clesphys, ONLY: cdhmax, cdmmax, ecrit_hf, ecrit_ins, ecrit_mth, & |
23 |
ecrit_reg, ecrit_tra, ksta, ksta_ter, ok_kzmin |
ecrit_reg, ecrit_tra, ksta, ksta_ter, ok_kzmin |
24 |
USE clesphys2, ONLY: cycle_diurne, iflag_con, nbapp_rad, new_oliq, & |
USE clesphys2, ONLY: cycle_diurne, conv_emanuel, nbapp_rad, new_oliq, & |
25 |
ok_orodr, ok_orolf |
ok_orodr, ok_orolf |
26 |
USE clmain_m, ONLY: clmain |
USE clmain_m, ONLY: clmain |
27 |
use clouds_gno_m, only: clouds_gno |
use clouds_gno_m, only: clouds_gno |
108 |
|
|
109 |
LOGICAL:: firstcal = .true. |
LOGICAL:: firstcal = .true. |
110 |
|
|
|
LOGICAL ok_gust ! pour activer l'effet des gust sur flux surface |
|
|
PARAMETER (ok_gust = .FALSE.) |
|
|
|
|
111 |
LOGICAL, PARAMETER:: check = .FALSE. |
LOGICAL, PARAMETER:: check = .FALSE. |
112 |
! Verifier la conservation du modele en eau |
! Verifier la conservation du modele en eau |
113 |
|
|
145 |
REAL lwup0(klon, llm + 1), lwup(klon, llm + 1) |
REAL lwup0(klon, llm + 1), lwup(klon, llm + 1) |
146 |
SAVE lwdn0, lwdn, lwup0, lwup |
SAVE lwdn0, lwdn, lwup0, lwup |
147 |
|
|
|
! Amip2 |
|
|
! variables a une pression donnee |
|
|
|
|
|
integer nlevSTD |
|
|
PARAMETER(nlevSTD = 17) |
|
|
|
|
148 |
! prw: precipitable water |
! prw: precipitable water |
149 |
real prw(klon) |
real prw(klon) |
150 |
|
|
153 |
REAL flwp(klon), fiwp(klon) |
REAL flwp(klon), fiwp(klon) |
154 |
REAL flwc(klon, llm), fiwc(klon, llm) |
REAL flwc(klon, llm), fiwc(klon, llm) |
155 |
|
|
|
INTEGER kmax, lmax |
|
|
PARAMETER(kmax = 8, lmax = 8) |
|
|
INTEGER kmaxm1, lmaxm1 |
|
|
PARAMETER(kmaxm1 = kmax - 1, lmaxm1 = lmax - 1) |
|
|
|
|
156 |
! Variables propres a la physique |
! Variables propres a la physique |
157 |
|
|
158 |
INTEGER, save:: radpas |
INTEGER, save:: radpas |
194 |
REAL zulow(klon), zvlow(klon) |
REAL zulow(klon), zvlow(klon) |
195 |
INTEGER igwd, itest(klon) |
INTEGER igwd, itest(klon) |
196 |
|
|
197 |
REAL agesno(klon, nbsrf) |
REAL, save:: agesno(klon, nbsrf) ! age de la neige |
198 |
SAVE agesno ! age de la neige |
REAL, save:: run_off_lic_0(klon) |
199 |
|
|
200 |
REAL run_off_lic_0(klon) |
! Variables li\'ees \`a la convection d'Emanuel : |
201 |
SAVE run_off_lic_0 |
REAL, save:: Ma(klon, llm) ! undilute upward mass flux |
202 |
!KE43 |
REAL, save:: qcondc(klon, llm) ! in-cld water content from convect |
|
! 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 |
|
203 |
REAL, save:: sig1(klon, llm), w01(klon, llm) |
REAL, save:: sig1(klon, llm), w01(klon, llm) |
|
REAL, save:: wd(klon) |
|
|
|
|
|
! Variables pour la couche limite (al1): |
|
204 |
|
|
205 |
|
! Variables pour la couche limite (Alain Lahellec) : |
206 |
REAL cdragh(klon) ! drag coefficient pour T and Q |
REAL cdragh(klon) ! drag coefficient pour T and Q |
207 |
REAL cdragm(klon) ! drag coefficient pour vent |
REAL cdragm(klon) ! drag coefficient pour vent |
208 |
|
|
309 |
REAL, PARAMETER:: t_coup = 234. |
REAL, PARAMETER:: t_coup = 234. |
310 |
REAL zphi(klon, llm) |
REAL zphi(klon, llm) |
311 |
|
|
312 |
! cf. AM Variables pour la CLA (hbtm2) |
! cf. Anne Mathieu variables pour la couche limite atmosphérique (hbtm) |
313 |
|
|
314 |
REAL, SAVE:: pblh(klon, nbsrf) ! Hauteur de couche limite |
REAL, SAVE:: pblh(klon, nbsrf) ! Hauteur de couche limite |
315 |
REAL, SAVE:: plcl(klon, nbsrf) ! Niveau de condensation de la CLA |
REAL, SAVE:: plcl(klon, nbsrf) ! Niveau de condensation de la CLA |
321 |
REAL, SAVE:: trmb1(klon, nbsrf) ! deep_cape |
REAL, SAVE:: trmb1(klon, nbsrf) ! deep_cape |
322 |
REAL, SAVE:: trmb2(klon, nbsrf) ! inhibition |
REAL, SAVE:: trmb2(klon, nbsrf) ! inhibition |
323 |
REAL, SAVE:: trmb3(klon, nbsrf) ! Point Omega |
REAL, SAVE:: trmb3(klon, nbsrf) ! Point Omega |
324 |
! Grdeurs de sorties |
! Grandeurs de sorties |
325 |
REAL s_pblh(klon), s_lcl(klon), s_capCL(klon) |
REAL s_pblh(klon), s_lcl(klon), s_capCL(klon) |
326 |
REAL s_oliqCL(klon), s_cteiCL(klon), s_pblt(klon) |
REAL s_oliqCL(klon), s_cteiCL(klon), s_pblt(klon) |
327 |
REAL s_therm(klon), s_trmb1(klon), s_trmb2(klon) |
REAL s_therm(klon), s_trmb1(klon), s_trmb2(klon) |
359 |
REAL prfl(klon, llm + 1), psfl(klon, llm + 1) |
REAL prfl(klon, llm + 1), psfl(klon, llm + 1) |
360 |
|
|
361 |
INTEGER, save:: ibas_con(klon), itop_con(klon) |
INTEGER, save:: ibas_con(klon), itop_con(klon) |
362 |
|
real ema_pct(klon) ! Emanuel pressure at cloud top, in Pa |
363 |
|
|
364 |
REAL rain_con(klon), rain_lsc(klon) |
REAL rain_con(klon), rain_lsc(klon) |
365 |
REAL, save:: snow_con(klon) |
REAL, save:: snow_con(klon) ! neige (mm / s) |
366 |
real snow_lsc(klon) |
real snow_lsc(klon) |
367 |
REAL d_ts(klon, nbsrf) |
REAL d_ts(klon, nbsrf) |
368 |
|
|
476 |
real zmasse(klon, llm) |
real zmasse(klon, llm) |
477 |
! (column-density of mass of air in a cell, in kg m-2) |
! (column-density of mass of air in a cell, in kg m-2) |
478 |
|
|
|
real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2 |
|
479 |
integer, save:: ncid_startphy, itau_phy |
integer, save:: ncid_startphy, itau_phy |
480 |
|
|
481 |
namelist /physiq_nml/ ok_journe, ok_mensuel, ok_instan, fact_cldcon, & |
namelist /physiq_nml/ ok_journe, ok_mensuel, ok_instan, fact_cldcon, & |
557 |
CALL printflag(radpas, ok_journe, ok_instan, ok_region) |
CALL printflag(radpas, ok_journe, ok_instan, ok_region) |
558 |
|
|
559 |
! Initialisation pour le sch\'ema de convection d'Emanuel : |
! Initialisation pour le sch\'ema de convection d'Emanuel : |
560 |
IF (iflag_con >= 3) THEN |
IF (conv_emanuel) THEN |
561 |
ibas_con = 1 |
ibas_con = 1 |
562 |
itop_con = 1 |
itop_con = 1 |
563 |
ENDIF |
ENDIF |
834 |
|
|
835 |
! Appeler la convection (au choix) |
! Appeler la convection (au choix) |
836 |
|
|
837 |
if (iflag_con == 2) then |
if (conv_emanuel) 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 |
|
|
|
|
838 |
da = 0. |
da = 0. |
839 |
mp = 0. |
mp = 0. |
840 |
phi = 0. |
phi = 0. |
841 |
CALL concvl(dtphys, paprs, play, t_seri, q_seri, u_seri, v_seri, sig1, & |
CALL concvl(dtphys, paprs, play, t_seri, q_seri, u_seri, v_seri, sig1, & |
842 |
w01, d_t_con, d_q_con, d_u_con, d_v_con, rain_con, snow_con, & |
w01, d_t_con, d_q_con, d_u_con, d_v_con, rain_con, ibas_con, & |
843 |
ibas_con, itop_con, upwd, dnwd, dnwd0, Ma, cape, iflagctrl, & |
itop_con, upwd, dnwd, dnwd0, Ma, cape, iflagctrl, qcondc, pmflxr, & |
844 |
qcondc, wd, pmflxr, da, phi, mp) |
da, phi, mp) |
845 |
|
snow_con = 0. |
846 |
clwcon0 = qcondc |
clwcon0 = qcondc |
847 |
mfu = upwd + dnwd |
mfu = upwd + dnwd |
|
IF (.NOT. ok_gust) wd = 0. |
|
848 |
|
|
849 |
IF (thermcep) THEN |
IF (thermcep) THEN |
850 |
zqsat = MIN(0.5, r2es * FOEEW(t_seri, rtt >= t_seri) / play) |
zqsat = MIN(0.5, r2es * FOEEW(t_seri, rtt >= t_seri) / play) |
858 |
call clouds_gno(klon, llm, q_seri, zqsat, clwcon0, ptconv, ratqsc, & |
call clouds_gno(klon, llm, q_seri, zqsat, clwcon0, ptconv, ratqsc, & |
859 |
rnebcon0) |
rnebcon0) |
860 |
|
|
861 |
|
forall (i = 1:klon) ema_pct(i) = paprs(i,itop_con(i) + 1) |
862 |
mfd = 0. |
mfd = 0. |
863 |
pen_u = 0. |
pen_u = 0. |
864 |
pen_d = 0. |
pen_d = 0. |
865 |
pde_d = 0. |
pde_d = 0. |
866 |
pde_u = 0. |
pde_u = 0. |
867 |
|
else |
868 |
|
conv_q = d_q_dyn + d_q_vdf / dtphys |
869 |
|
conv_t = d_t_dyn + d_t_vdf / dtphys |
870 |
|
z_avant = sum((q_seri + ql_seri) * zmasse, dim=2) |
871 |
|
CALL conflx(dtphys, paprs, play, t_seri(:, llm:1:- 1), & |
872 |
|
q_seri(:, llm:1:- 1), conv_t, conv_q, zxfluxq(:, 1), omega, & |
873 |
|
d_t_con, d_q_con, rain_con, snow_con, mfu(:, llm:1:- 1), & |
874 |
|
mfd(:, llm:1:- 1), pen_u, pde_u, pen_d, pde_d, kcbot, kctop, & |
875 |
|
kdtop, pmflxr, pmflxs) |
876 |
|
WHERE (rain_con < 0.) rain_con = 0. |
877 |
|
WHERE (snow_con < 0.) snow_con = 0. |
878 |
|
ibas_con = llm + 1 - kcbot |
879 |
|
itop_con = llm + 1 - kctop |
880 |
END if |
END if |
881 |
|
|
882 |
DO k = 1, llm |
DO k = 1, llm |
910 |
print *, "Precip = ", zx_t |
print *, "Precip = ", zx_t |
911 |
ENDIF |
ENDIF |
912 |
|
|
913 |
IF (iflag_con == 2) THEN |
IF (.not. conv_emanuel) THEN |
914 |
z_apres = sum((q_seri + ql_seri) * zmasse, dim=2) |
z_apres = sum((q_seri + ql_seri) * zmasse, dim=2) |
915 |
z_factor = (z_avant - (rain_con + snow_con) * dtphys) / z_apres |
z_factor = (z_avant - (rain_con + snow_con) * dtphys) / z_apres |
916 |
DO k = 1, llm |
DO k = 1, llm |
1374 |
! Ecriture des sorties |
! Ecriture des sorties |
1375 |
|
|
1376 |
use dimens_m, only: iim, jjm |
use dimens_m, only: iim, jjm |
1377 |
|
use gr_phy_write_m, only: gr_phy_write |
1378 |
USE histsync_m, ONLY: histsync |
USE histsync_m, ONLY: histsync |
1379 |
USE histwrite_m, ONLY: histwrite |
USE histwrite_m, ONLY: histwrite |
1380 |
|
|
1388 |
|
|
1389 |
itau_w = itau_phy + itap |
itau_w = itau_phy + itap |
1390 |
|
|
1391 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, pphis, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(pphis) |
1392 |
CALL histwrite(nid_ins, "phis", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "phis", itau_w, zx_tmp_2d) |
1393 |
|
|
1394 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, airephy, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(airephy) |
1395 |
CALL histwrite(nid_ins, "aire", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "aire", itau_w, zx_tmp_2d) |
1396 |
|
|
1397 |
DO i = 1, klon |
DO i = 1, klon |
1398 |
zx_tmp_fi2d(i) = paprs(i, 1) |
zx_tmp_fi2d(i) = paprs(i, 1) |
1399 |
ENDDO |
ENDDO |
1400 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1401 |
CALL histwrite(nid_ins, "psol", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "psol", itau_w, zx_tmp_2d) |
1402 |
|
|
1403 |
DO i = 1, klon |
DO i = 1, klon |
1404 |
zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) |
zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) |
1405 |
ENDDO |
ENDDO |
1406 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1407 |
CALL histwrite(nid_ins, "precip", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "precip", itau_w, zx_tmp_2d) |
1408 |
|
|
1409 |
DO i = 1, klon |
DO i = 1, klon |
1410 |
zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i) |
zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i) |
1411 |
ENDDO |
ENDDO |
1412 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1413 |
CALL histwrite(nid_ins, "plul", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "plul", itau_w, zx_tmp_2d) |
1414 |
|
|
1415 |
DO i = 1, klon |
DO i = 1, klon |
1416 |
zx_tmp_fi2d(i) = rain_con(i) + snow_con(i) |
zx_tmp_fi2d(i) = rain_con(i) + snow_con(i) |
1417 |
ENDDO |
ENDDO |
1418 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1419 |
CALL histwrite(nid_ins, "pluc", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "pluc", itau_w, zx_tmp_2d) |
1420 |
|
|
1421 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zxtsol, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zxtsol) |
1422 |
CALL histwrite(nid_ins, "tsol", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "tsol", itau_w, zx_tmp_2d) |
1423 |
!ccIM |
!ccIM |
1424 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zt2m, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zt2m) |
1425 |
CALL histwrite(nid_ins, "t2m", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "t2m", itau_w, zx_tmp_2d) |
1426 |
|
|
1427 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zq2m, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zq2m) |
1428 |
CALL histwrite(nid_ins, "q2m", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "q2m", itau_w, zx_tmp_2d) |
1429 |
|
|
1430 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zu10m, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zu10m) |
1431 |
CALL histwrite(nid_ins, "u10m", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "u10m", itau_w, zx_tmp_2d) |
1432 |
|
|
1433 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zv10m, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zv10m) |
1434 |
CALL histwrite(nid_ins, "v10m", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "v10m", itau_w, zx_tmp_2d) |
1435 |
|
|
1436 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, snow_fall, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(snow_fall) |
1437 |
CALL histwrite(nid_ins, "snow", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "snow", itau_w, zx_tmp_2d) |
1438 |
|
|
1439 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, cdragm, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(cdragm) |
1440 |
CALL histwrite(nid_ins, "cdrm", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "cdrm", itau_w, zx_tmp_2d) |
1441 |
|
|
1442 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, cdragh, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(cdragh) |
1443 |
CALL histwrite(nid_ins, "cdrh", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "cdrh", itau_w, zx_tmp_2d) |
1444 |
|
|
1445 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, toplw, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(toplw) |
1446 |
CALL histwrite(nid_ins, "topl", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "topl", itau_w, zx_tmp_2d) |
1447 |
|
|
1448 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, evap, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(evap) |
1449 |
CALL histwrite(nid_ins, "evap", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "evap", itau_w, zx_tmp_2d) |
1450 |
|
|
1451 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, solsw, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(solsw) |
1452 |
CALL histwrite(nid_ins, "sols", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "sols", itau_w, zx_tmp_2d) |
1453 |
|
|
1454 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, sollw, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(sollw) |
1455 |
CALL histwrite(nid_ins, "soll", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "soll", itau_w, zx_tmp_2d) |
1456 |
|
|
1457 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, sollwdown, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(sollwdown) |
1458 |
CALL histwrite(nid_ins, "solldown", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "solldown", itau_w, zx_tmp_2d) |
1459 |
|
|
1460 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, bils, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(bils) |
1461 |
CALL histwrite(nid_ins, "bils", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "bils", itau_w, zx_tmp_2d) |
1462 |
|
|
1463 |
zx_tmp_fi2d(1:klon) = - sens(1:klon) |
zx_tmp_fi2d(1:klon) = - sens(1:klon) |
1464 |
! CALL gr_fi_ecrit(1, klon, iim, jjm + 1, sens, zx_tmp_2d) |
! zx_tmp_2d = gr_phy_write(sens) |
1465 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1466 |
CALL histwrite(nid_ins, "sens", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "sens", itau_w, zx_tmp_2d) |
1467 |
|
|
1468 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, fder, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(fder) |
1469 |
CALL histwrite(nid_ins, "fder", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "fder", itau_w, zx_tmp_2d) |
1470 |
|
|
1471 |
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)) |
1472 |
CALL histwrite(nid_ins, "dtsvdfo", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "dtsvdfo", itau_w, zx_tmp_2d) |
1473 |
|
|
1474 |
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)) |
1475 |
CALL histwrite(nid_ins, "dtsvdft", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "dtsvdft", itau_w, zx_tmp_2d) |
1476 |
|
|
1477 |
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)) |
1478 |
CALL histwrite(nid_ins, "dtsvdfg", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "dtsvdfg", itau_w, zx_tmp_2d) |
1479 |
|
|
1480 |
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)) |
1481 |
CALL histwrite(nid_ins, "dtsvdfi", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "dtsvdfi", itau_w, zx_tmp_2d) |
1482 |
|
|
1483 |
DO nsrf = 1, nbsrf |
DO nsrf = 1, nbsrf |
1484 |
!XXX |
!XXX |
1485 |
zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, nsrf)*100. |
zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, nsrf)*100. |
1486 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1487 |
CALL histwrite(nid_ins, "pourc_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "pourc_"//clnsurf(nsrf), itau_w, & |
1488 |
zx_tmp_2d) |
zx_tmp_2d) |
1489 |
|
|
1490 |
zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, nsrf) |
zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, nsrf) |
1491 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1492 |
CALL histwrite(nid_ins, "fract_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "fract_"//clnsurf(nsrf), itau_w, & |
1493 |
zx_tmp_2d) |
zx_tmp_2d) |
1494 |
|
|
1495 |
zx_tmp_fi2d(1 : klon) = fluxt(1 : klon, 1, nsrf) |
zx_tmp_fi2d(1 : klon) = fluxt(1 : klon, 1, nsrf) |
1496 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1497 |
CALL histwrite(nid_ins, "sens_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "sens_"//clnsurf(nsrf), itau_w, & |
1498 |
zx_tmp_2d) |
zx_tmp_2d) |
1499 |
|
|
1500 |
zx_tmp_fi2d(1 : klon) = fluxlat(1 : klon, nsrf) |
zx_tmp_fi2d(1 : klon) = fluxlat(1 : klon, nsrf) |
1501 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1502 |
CALL histwrite(nid_ins, "lat_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "lat_"//clnsurf(nsrf), itau_w, & |
1503 |
zx_tmp_2d) |
zx_tmp_2d) |
1504 |
|
|
1505 |
zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, nsrf) |
zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, nsrf) |
1506 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1507 |
CALL histwrite(nid_ins, "tsol_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "tsol_"//clnsurf(nsrf), itau_w, & |
1508 |
zx_tmp_2d) |
zx_tmp_2d) |
1509 |
|
|
1510 |
zx_tmp_fi2d(1 : klon) = fluxu(1 : klon, 1, nsrf) |
zx_tmp_fi2d(1 : klon) = fluxu(1 : klon, 1, nsrf) |
1511 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1512 |
CALL histwrite(nid_ins, "taux_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "taux_"//clnsurf(nsrf), itau_w, & |
1513 |
zx_tmp_2d) |
zx_tmp_2d) |
1514 |
|
|
1515 |
zx_tmp_fi2d(1 : klon) = fluxv(1 : klon, 1, nsrf) |
zx_tmp_fi2d(1 : klon) = fluxv(1 : klon, 1, nsrf) |
1516 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1517 |
CALL histwrite(nid_ins, "tauy_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "tauy_"//clnsurf(nsrf), itau_w, & |
1518 |
zx_tmp_2d) |
zx_tmp_2d) |
1519 |
|
|
1520 |
zx_tmp_fi2d(1 : klon) = frugs(1 : klon, nsrf) |
zx_tmp_fi2d(1 : klon) = frugs(1 : klon, nsrf) |
1521 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1522 |
CALL histwrite(nid_ins, "rugs_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "rugs_"//clnsurf(nsrf), itau_w, & |
1523 |
zx_tmp_2d) |
zx_tmp_2d) |
1524 |
|
|
1525 |
zx_tmp_fi2d(1 : klon) = falbe(:, nsrf) |
zx_tmp_fi2d(1 : klon) = falbe(:, nsrf) |
1526 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zx_tmp_fi2d) |
1527 |
CALL histwrite(nid_ins, "albe_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "albe_"//clnsurf(nsrf), itau_w, & |
1528 |
zx_tmp_2d) |
zx_tmp_2d) |
1529 |
|
|
1530 |
END DO |
END DO |
1531 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, albsol, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(albsol) |
1532 |
CALL histwrite(nid_ins, "albs", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "albs", itau_w, zx_tmp_2d) |
1533 |
|
|
1534 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zxrugs, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(zxrugs) |
1535 |
CALL histwrite(nid_ins, "rugs", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "rugs", itau_w, zx_tmp_2d) |
1536 |
|
|
1537 |
!HBTM2 |
!HBTM2 |
1538 |
|
|
1539 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_pblh, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(s_pblh) |
1540 |
CALL histwrite(nid_ins, "s_pblh", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_pblh", itau_w, zx_tmp_2d) |
1541 |
|
|
1542 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_pblt, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(s_pblt) |
1543 |
CALL histwrite(nid_ins, "s_pblt", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_pblt", itau_w, zx_tmp_2d) |
1544 |
|
|
1545 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_lcl, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(s_lcl) |
1546 |
CALL histwrite(nid_ins, "s_lcl", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_lcl", itau_w, zx_tmp_2d) |
1547 |
|
|
1548 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_capCL, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(s_capCL) |
1549 |
CALL histwrite(nid_ins, "s_capCL", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_capCL", itau_w, zx_tmp_2d) |
1550 |
|
|
1551 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_oliqCL, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(s_oliqCL) |
1552 |
CALL histwrite(nid_ins, "s_oliqCL", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_oliqCL", itau_w, zx_tmp_2d) |
1553 |
|
|
1554 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_cteiCL, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(s_cteiCL) |
1555 |
CALL histwrite(nid_ins, "s_cteiCL", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_cteiCL", itau_w, zx_tmp_2d) |
1556 |
|
|
1557 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_therm, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(s_therm) |
1558 |
CALL histwrite(nid_ins, "s_therm", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_therm", itau_w, zx_tmp_2d) |
1559 |
|
|
1560 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_trmb1, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(s_trmb1) |
1561 |
CALL histwrite(nid_ins, "s_trmb1", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_trmb1", itau_w, zx_tmp_2d) |
1562 |
|
|
1563 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_trmb2, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(s_trmb2) |
1564 |
CALL histwrite(nid_ins, "s_trmb2", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_trmb2", itau_w, zx_tmp_2d) |
1565 |
|
|
1566 |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_trmb3, zx_tmp_2d) |
zx_tmp_2d = gr_phy_write(s_trmb3) |
1567 |
CALL histwrite(nid_ins, "s_trmb3", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_trmb3", itau_w, zx_tmp_2d) |
1568 |
|
|
1569 |
|
if (conv_emanuel) then |
1570 |
|
zx_tmp_2d = gr_phy_write(ema_pct) |
1571 |
|
CALL histwrite(nid_ins, "ptop", itau_w, zx_tmp_2d) |
1572 |
|
end if |
1573 |
|
|
1574 |
! Champs 3D: |
! Champs 3D: |
1575 |
|
|
1576 |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, t_seri, zx_tmp_3d) |
zx_tmp_3d = gr_phy_write(t_seri) |
1577 |
CALL histwrite(nid_ins, "temp", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "temp", itau_w, zx_tmp_3d) |
1578 |
|
|
1579 |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, u_seri, zx_tmp_3d) |
zx_tmp_3d = gr_phy_write(u_seri) |
1580 |
CALL histwrite(nid_ins, "vitu", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "vitu", itau_w, zx_tmp_3d) |
1581 |
|
|
1582 |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, v_seri, zx_tmp_3d) |
zx_tmp_3d = gr_phy_write(v_seri) |
1583 |
CALL histwrite(nid_ins, "vitv", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "vitv", itau_w, zx_tmp_3d) |
1584 |
|
|
1585 |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, zphi, zx_tmp_3d) |
zx_tmp_3d = gr_phy_write(zphi) |
1586 |
CALL histwrite(nid_ins, "geop", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "geop", itau_w, zx_tmp_3d) |
1587 |
|
|
1588 |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, play, zx_tmp_3d) |
zx_tmp_3d = gr_phy_write(play) |
1589 |
CALL histwrite(nid_ins, "pres", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "pres", itau_w, zx_tmp_3d) |
1590 |
|
|
1591 |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, d_t_vdf, zx_tmp_3d) |
zx_tmp_3d = gr_phy_write(d_t_vdf) |
1592 |
CALL histwrite(nid_ins, "dtvdf", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "dtvdf", itau_w, zx_tmp_3d) |
1593 |
|
|
1594 |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, d_q_vdf, zx_tmp_3d) |
zx_tmp_3d = gr_phy_write(d_q_vdf) |
1595 |
CALL histwrite(nid_ins, "dqvdf", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "dqvdf", itau_w, zx_tmp_3d) |
1596 |
|
|
1597 |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, zx_rh, zx_tmp_3d) |
zx_tmp_3d = gr_phy_write(zx_rh) |
1598 |
CALL histwrite(nid_ins, "rhum", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "rhum", itau_w, zx_tmp_3d) |
1599 |
|
|
1600 |
call histsync(nid_ins) |
call histsync(nid_ins) |