14 |
|
|
15 |
USE abort_gcm_m, ONLY: abort_gcm |
USE abort_gcm_m, ONLY: abort_gcm |
16 |
USE calendar, ONLY: ymds2ju |
USE calendar, ONLY: ymds2ju |
17 |
|
use calltherm_m, only: calltherm |
18 |
USE clesphys, ONLY: cdhmax, cdmmax, co2_ppm, ecrit_hf, ecrit_ins, & |
USE clesphys, ONLY: cdhmax, cdmmax, co2_ppm, ecrit_hf, ecrit_ins, & |
19 |
ecrit_mth, ecrit_reg, ecrit_tra, ksta, ksta_ter, ok_kzmin |
ecrit_mth, ecrit_reg, ecrit_tra, ksta, ksta_ter, ok_kzmin |
20 |
USE clesphys2, ONLY: cycle_diurne, iflag_con, nbapp_rad, new_oliq, & |
USE clesphys2, ONLY: cycle_diurne, iflag_con, nbapp_rad, new_oliq, & |
25 |
USE conf_gcm_m, ONLY: offline, raz_date |
USE conf_gcm_m, ONLY: offline, raz_date |
26 |
USE conf_phys_m, ONLY: conf_phys |
USE conf_phys_m, ONLY: conf_phys |
27 |
USE ctherm, ONLY: iflag_thermals, nsplit_thermals |
USE ctherm, ONLY: iflag_thermals, nsplit_thermals |
28 |
|
use diagcld2_m, only: diagcld2 |
29 |
use diagetpq_m, only: diagetpq |
use diagetpq_m, only: diagetpq |
30 |
USE dimens_m, ONLY: iim, jjm, llm, nqmx |
USE dimens_m, ONLY: iim, jjm, llm, nqmx |
31 |
USE dimphy, ONLY: klon, nbtr |
USE dimphy, ONLY: klon, nbtr |
32 |
USE dimsoil, ONLY: nsoilmx |
USE dimsoil, ONLY: nsoilmx |
33 |
|
use drag_noro_m, only: drag_noro |
34 |
USE fcttre, ONLY: foeew, qsatl, qsats, thermcep |
USE fcttre, ONLY: foeew, qsatl, qsats, thermcep |
35 |
USE hgardfou_m, ONLY: hgardfou |
USE hgardfou_m, ONLY: hgardfou |
36 |
USE histcom, ONLY: histsync |
USE histcom, ONLY: histsync |
1171 |
itop_con(i) = llm + 1 - kctop(i) |
itop_con(i) = llm + 1 - kctop(i) |
1172 |
ENDDO |
ENDDO |
1173 |
case (3:) |
case (3:) |
1174 |
! number of tracers for the Kerry-Emanuel convection: |
! number of tracers for the convection scheme of Kerry Emanuel: |
1175 |
! la partie traceurs est faite dans phytrac |
! la partie traceurs est faite dans phytrac |
1176 |
! on met ntra = 1 pour limiter les appels mais on peut |
! on met ntra = 1 pour limiter les appels mais on peut |
1177 |
! supprimer les calculs / ftra. |
! supprimer les calculs / ftra. |
1191 |
pmfu = upwd + dnwd |
pmfu = upwd + dnwd |
1192 |
ELSE |
ELSE |
1193 |
! conema3 ne contient pas les traceurs |
! conema3 ne contient pas les traceurs |
1194 |
CALL conema3 (dtphys, paprs, play, t_seri, q_seri, u_seri, v_seri, & |
CALL conema3(dtphys, paprs, play, t_seri, q_seri, u_seri, v_seri, & |
1195 |
tr_seri, ntra, ema_work1, ema_work2, d_t_con, d_q_con, & |
tr_seri, ntra, ema_work1, ema_work2, d_t_con, d_q_con, & |
1196 |
d_u_con, d_v_con, d_tr, rain_con, snow_con, ibas_con, & |
d_u_con, d_v_con, d_tr, rain_con, snow_con, ibas_con, & |
1197 |
itop_con, upwd, dnwd, dnwd0, bas, top, Ma, cape, tvp, rflag, & |
itop_con, upwd, dnwd, dnwd0, bas, top, Ma, cape, tvp, rflag, & |
1283 |
ENDDO |
ENDDO |
1284 |
DO k = 1, llm |
DO k = 1, llm |
1285 |
DO i = 1, klon |
DO i = 1, klon |
1286 |
IF (z_factor(i) > (1.0 + 1.0E-08) .OR. & |
IF (z_factor(i) > 1. + 1E-8 .OR. z_factor(i) < 1. - 1E-8) THEN |
|
z_factor(i) < (1.0-1.0E-08)) THEN |
|
1287 |
q_seri(i, k) = q_seri(i, k) * z_factor(i) |
q_seri(i, k) = q_seri(i, k) * z_factor(i) |
1288 |
ENDIF |
ENDIF |
1289 |
ENDDO |
ENDDO |
1480 |
d_ql, d_qs, d_ec) |
d_ql, d_qs, d_ec) |
1481 |
END IF |
END IF |
1482 |
|
|
1483 |
! Calculer l'humidite relative pour diagnostique |
! Humidité relative pour diagnostic: |
|
|
|
1484 |
DO k = 1, llm |
DO k = 1, llm |
1485 |
DO i = 1, klon |
DO i = 1, klon |
1486 |
zx_t = t_seri(i, k) |
zx_t = t_seri(i, k) |
1501 |
zqsat(i, k) = zx_qs |
zqsat(i, k) = zx_qs |
1502 |
ENDDO |
ENDDO |
1503 |
ENDDO |
ENDDO |
1504 |
!jq - introduce the aerosol direct and first indirect radiative forcings |
|
1505 |
!jq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr) |
! Introduce the aerosol direct and first indirect radiative forcings: |
1506 |
IF (ok_ade.OR.ok_aie) THEN |
! Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr) |
1507 |
|
IF (ok_ade .OR. ok_aie) THEN |
1508 |
! Get sulfate aerosol distribution |
! Get sulfate aerosol distribution |
1509 |
CALL readsulfate(rdayvrai, firstcal, sulfate) |
CALL readsulfate(rdayvrai, firstcal, sulfate) |
1510 |
CALL readsulfate_preind(rdayvrai, firstcal, sulfate_pi) |
CALL readsulfate_preind(rdayvrai, firstcal, sulfate_pi) |
1511 |
|
|
1512 |
! Calculate aerosol optical properties (Olivier Boucher) |
! Calculate aerosol optical properties (Olivier Boucher) |
1513 |
CALL aeropt(play, paprs, t_seri, sulfate, rhcl, & |
CALL aeropt(play, paprs, t_seri, sulfate, rhcl, tau_ae, piz_ae, cg_ae, & |
1514 |
tau_ae, piz_ae, cg_ae, aerindex) |
aerindex) |
1515 |
ELSE |
ELSE |
1516 |
tau_ae = 0.0 |
tau_ae = 0. |
1517 |
piz_ae = 0.0 |
piz_ae = 0. |
1518 |
cg_ae = 0.0 |
cg_ae = 0. |
1519 |
ENDIF |
ENDIF |
1520 |
|
|
1521 |
! Calculer les parametres optiques des nuages et quelques |
! Paramètres optiques des nuages et quelques paramètres pour |
1522 |
! parametres pour diagnostiques: |
! diagnostics : |
|
|
|
1523 |
if (ok_newmicro) then |
if (ok_newmicro) then |
1524 |
CALL newmicro (paprs, play, ok_newmicro, & |
CALL newmicro(paprs, play, ok_newmicro, t_seri, cldliq, cldfra, & |
1525 |
t_seri, cldliq, cldfra, cldtau, cldemi, & |
cldtau, cldemi, cldh, cldl, cldm, cldt, cldq, flwp, fiwp, flwc, & |
1526 |
cldh, cldl, cldm, cldt, cldq, & |
fiwc, ok_aie, sulfate, sulfate_pi, bl95_b0, bl95_b1, cldtaupi, & |
1527 |
flwp, fiwp, flwc, fiwc, & |
re, fl) |
|
ok_aie, & |
|
|
sulfate, sulfate_pi, & |
|
|
bl95_b0, bl95_b1, & |
|
|
cldtaupi, re, fl) |
|
1528 |
else |
else |
1529 |
CALL nuage (paprs, play, & |
CALL nuage(paprs, play, t_seri, cldliq, cldfra, cldtau, cldemi, cldh, & |
1530 |
t_seri, cldliq, cldfra, cldtau, cldemi, & |
cldl, cldm, cldt, cldq, ok_aie, sulfate, sulfate_pi, bl95_b0, & |
1531 |
cldh, cldl, cldm, cldt, cldq, & |
bl95_b1, cldtaupi, re, fl) |
|
ok_aie, & |
|
|
sulfate, sulfate_pi, & |
|
|
bl95_b0, bl95_b1, & |
|
|
cldtaupi, re, fl) |
|
|
|
|
1532 |
endif |
endif |
1533 |
|
|
1534 |
! Appeler le rayonnement mais calculer tout d'abord l'albedo du sol. |
! Appeler le rayonnement mais calculer tout d'abord l'albedo du sol. |
|
|
|
1535 |
IF (MOD(itaprad, radpas) == 0) THEN |
IF (MOD(itaprad, radpas) == 0) THEN |
1536 |
DO i = 1, klon |
DO i = 1, klon |
1537 |
albsol(i) = falbe(i, is_oce) * pctsrf(i, is_oce) & |
albsol(i) = falbe(i, is_oce) * pctsrf(i, is_oce) & |
1558 |
|
|
1559 |
DO k = 1, llm |
DO k = 1, llm |
1560 |
DO i = 1, klon |
DO i = 1, klon |
1561 |
t_seri(i, k) = t_seri(i, k) & |
t_seri(i, k) = t_seri(i, k) + (heat(i, k)-cool(i, k)) * dtphys/86400. |
|
+ (heat(i, k)-cool(i, k)) * dtphys/86400. |
|
1562 |
ENDDO |
ENDDO |
1563 |
ENDDO |
ENDDO |
1564 |
|
|
1690 |
|
|
1691 |
! diag. bilKP |
! diag. bilKP |
1692 |
|
|
1693 |
CALL transp_lay (paprs, zxtsol, t_seri, q_seri, u_seri, v_seri, zphi, & |
CALL transp_lay(paprs, zxtsol, t_seri, q_seri, u_seri, v_seri, zphi, & |
1694 |
ve_lay, vq_lay, ue_lay, uq_lay) |
ve_lay, vq_lay, ue_lay, uq_lay) |
1695 |
|
|
1696 |
! Accumuler les variables a stocker dans les fichiers histoire: |
! Accumuler les variables a stocker dans les fichiers histoire: |
1838 |
itau_w = itau_phy + itap |
itau_w = itau_phy + itap |
1839 |
|
|
1840 |
i = NINT(zout/zsto) |
i = NINT(zout/zsto) |
1841 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), pphis, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, pphis, zx_tmp_2d) |
1842 |
CALL histwrite(nid_ins, "phis", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "phis", itau_w, zx_tmp_2d) |
1843 |
|
|
1844 |
i = NINT(zout/zsto) |
i = NINT(zout/zsto) |
1845 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), airephy, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, airephy, zx_tmp_2d) |
1846 |
CALL histwrite(nid_ins, "aire", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "aire", itau_w, zx_tmp_2d) |
1847 |
|
|
1848 |
DO i = 1, klon |
DO i = 1, klon |
1849 |
zx_tmp_fi2d(i) = paprs(i, 1) |
zx_tmp_fi2d(i) = paprs(i, 1) |
1850 |
ENDDO |
ENDDO |
1851 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1852 |
CALL histwrite(nid_ins, "psol", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "psol", itau_w, zx_tmp_2d) |
1853 |
|
|
1854 |
DO i = 1, klon |
DO i = 1, klon |
1855 |
zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) |
zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) |
1856 |
ENDDO |
ENDDO |
1857 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1858 |
CALL histwrite(nid_ins, "precip", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "precip", itau_w, zx_tmp_2d) |
1859 |
|
|
1860 |
DO i = 1, klon |
DO i = 1, klon |
1861 |
zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i) |
zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i) |
1862 |
ENDDO |
ENDDO |
1863 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1864 |
CALL histwrite(nid_ins, "plul", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "plul", itau_w, zx_tmp_2d) |
1865 |
|
|
1866 |
DO i = 1, klon |
DO i = 1, klon |
1867 |
zx_tmp_fi2d(i) = rain_con(i) + snow_con(i) |
zx_tmp_fi2d(i) = rain_con(i) + snow_con(i) |
1868 |
ENDDO |
ENDDO |
1869 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1870 |
CALL histwrite(nid_ins, "pluc", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "pluc", itau_w, zx_tmp_2d) |
1871 |
|
|
1872 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zxtsol, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zxtsol, zx_tmp_2d) |
1873 |
CALL histwrite(nid_ins, "tsol", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "tsol", itau_w, zx_tmp_2d) |
1874 |
!ccIM |
!ccIM |
1875 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zt2m, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zt2m, zx_tmp_2d) |
1876 |
CALL histwrite(nid_ins, "t2m", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "t2m", itau_w, zx_tmp_2d) |
1877 |
|
|
1878 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zq2m, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zq2m, zx_tmp_2d) |
1879 |
CALL histwrite(nid_ins, "q2m", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "q2m", itau_w, zx_tmp_2d) |
1880 |
|
|
1881 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zu10m, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zu10m, zx_tmp_2d) |
1882 |
CALL histwrite(nid_ins, "u10m", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "u10m", itau_w, zx_tmp_2d) |
1883 |
|
|
1884 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zv10m, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zv10m, zx_tmp_2d) |
1885 |
CALL histwrite(nid_ins, "v10m", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "v10m", itau_w, zx_tmp_2d) |
1886 |
|
|
1887 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), snow_fall, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, snow_fall, zx_tmp_2d) |
1888 |
CALL histwrite(nid_ins, "snow", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "snow", itau_w, zx_tmp_2d) |
1889 |
|
|
1890 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), cdragm, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, cdragm, zx_tmp_2d) |
1891 |
CALL histwrite(nid_ins, "cdrm", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "cdrm", itau_w, zx_tmp_2d) |
1892 |
|
|
1893 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), cdragh, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, cdragh, zx_tmp_2d) |
1894 |
CALL histwrite(nid_ins, "cdrh", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "cdrh", itau_w, zx_tmp_2d) |
1895 |
|
|
1896 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), toplw, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, toplw, zx_tmp_2d) |
1897 |
CALL histwrite(nid_ins, "topl", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "topl", itau_w, zx_tmp_2d) |
1898 |
|
|
1899 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), evap, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, evap, zx_tmp_2d) |
1900 |
CALL histwrite(nid_ins, "evap", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "evap", itau_w, zx_tmp_2d) |
1901 |
|
|
1902 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), solsw, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, solsw, zx_tmp_2d) |
1903 |
CALL histwrite(nid_ins, "sols", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "sols", itau_w, zx_tmp_2d) |
1904 |
|
|
1905 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), sollw, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, sollw, zx_tmp_2d) |
1906 |
CALL histwrite(nid_ins, "soll", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "soll", itau_w, zx_tmp_2d) |
1907 |
|
|
1908 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), sollwdown, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, sollwdown, zx_tmp_2d) |
1909 |
CALL histwrite(nid_ins, "solldown", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "solldown", itau_w, zx_tmp_2d) |
1910 |
|
|
1911 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), bils, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, bils, zx_tmp_2d) |
1912 |
CALL histwrite(nid_ins, "bils", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "bils", itau_w, zx_tmp_2d) |
1913 |
|
|
1914 |
zx_tmp_fi2d(1:klon) = -1*sens(1:klon) |
zx_tmp_fi2d(1:klon) = -1*sens(1:klon) |
1915 |
! CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), sens, zx_tmp_2d) |
! CALL gr_fi_ecrit(1, klon, iim, jjm + 1, sens, zx_tmp_2d) |
1916 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1917 |
CALL histwrite(nid_ins, "sens", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "sens", itau_w, zx_tmp_2d) |
1918 |
|
|
1919 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), fder, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, fder, zx_tmp_2d) |
1920 |
CALL histwrite(nid_ins, "fder", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "fder", itau_w, zx_tmp_2d) |
1921 |
|
|
1922 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), d_ts(1, is_oce), zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, d_ts(1, is_oce), zx_tmp_2d) |
1923 |
CALL histwrite(nid_ins, "dtsvdfo", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "dtsvdfo", itau_w, zx_tmp_2d) |
1924 |
|
|
1925 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), d_ts(1, is_ter), zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, d_ts(1, is_ter), zx_tmp_2d) |
1926 |
CALL histwrite(nid_ins, "dtsvdft", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "dtsvdft", itau_w, zx_tmp_2d) |
1927 |
|
|
1928 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), d_ts(1, is_lic), zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, d_ts(1, is_lic), zx_tmp_2d) |
1929 |
CALL histwrite(nid_ins, "dtsvdfg", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "dtsvdfg", itau_w, zx_tmp_2d) |
1930 |
|
|
1931 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), d_ts(1, is_sic), zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, d_ts(1, is_sic), zx_tmp_2d) |
1932 |
CALL histwrite(nid_ins, "dtsvdfi", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "dtsvdfi", itau_w, zx_tmp_2d) |
1933 |
|
|
1934 |
DO nsrf = 1, nbsrf |
DO nsrf = 1, nbsrf |
1935 |
!XXX |
!XXX |
1936 |
zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, nsrf)*100. |
zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, nsrf)*100. |
1937 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1938 |
CALL histwrite(nid_ins, "pourc_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "pourc_"//clnsurf(nsrf), itau_w, & |
1939 |
zx_tmp_2d) |
zx_tmp_2d) |
1940 |
|
|
1941 |
zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, nsrf) |
zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, nsrf) |
1942 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1943 |
CALL histwrite(nid_ins, "fract_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "fract_"//clnsurf(nsrf), itau_w, & |
1944 |
zx_tmp_2d) |
zx_tmp_2d) |
1945 |
|
|
1946 |
zx_tmp_fi2d(1 : klon) = fluxt(1 : klon, 1, nsrf) |
zx_tmp_fi2d(1 : klon) = fluxt(1 : klon, 1, nsrf) |
1947 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1948 |
CALL histwrite(nid_ins, "sens_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "sens_"//clnsurf(nsrf), itau_w, & |
1949 |
zx_tmp_2d) |
zx_tmp_2d) |
1950 |
|
|
1951 |
zx_tmp_fi2d(1 : klon) = fluxlat(1 : klon, nsrf) |
zx_tmp_fi2d(1 : klon) = fluxlat(1 : klon, nsrf) |
1952 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1953 |
CALL histwrite(nid_ins, "lat_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "lat_"//clnsurf(nsrf), itau_w, & |
1954 |
zx_tmp_2d) |
zx_tmp_2d) |
1955 |
|
|
1956 |
zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, nsrf) |
zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, nsrf) |
1957 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1958 |
CALL histwrite(nid_ins, "tsol_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "tsol_"//clnsurf(nsrf), itau_w, & |
1959 |
zx_tmp_2d) |
zx_tmp_2d) |
1960 |
|
|
1961 |
zx_tmp_fi2d(1 : klon) = fluxu(1 : klon, 1, nsrf) |
zx_tmp_fi2d(1 : klon) = fluxu(1 : klon, 1, nsrf) |
1962 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1963 |
CALL histwrite(nid_ins, "taux_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "taux_"//clnsurf(nsrf), itau_w, & |
1964 |
zx_tmp_2d) |
zx_tmp_2d) |
1965 |
|
|
1966 |
zx_tmp_fi2d(1 : klon) = fluxv(1 : klon, 1, nsrf) |
zx_tmp_fi2d(1 : klon) = fluxv(1 : klon, 1, nsrf) |
1967 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1968 |
CALL histwrite(nid_ins, "tauy_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "tauy_"//clnsurf(nsrf), itau_w, & |
1969 |
zx_tmp_2d) |
zx_tmp_2d) |
1970 |
|
|
1971 |
zx_tmp_fi2d(1 : klon) = frugs(1 : klon, nsrf) |
zx_tmp_fi2d(1 : klon) = frugs(1 : klon, nsrf) |
1972 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1973 |
CALL histwrite(nid_ins, "rugs_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "rugs_"//clnsurf(nsrf), itau_w, & |
1974 |
zx_tmp_2d) |
zx_tmp_2d) |
1975 |
|
|
1976 |
zx_tmp_fi2d(1 : klon) = falbe(1 : klon, nsrf) |
zx_tmp_fi2d(1 : klon) = falbe(1 : klon, nsrf) |
1977 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zx_tmp_fi2d, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zx_tmp_fi2d, zx_tmp_2d) |
1978 |
CALL histwrite(nid_ins, "albe_"//clnsurf(nsrf), itau_w, & |
CALL histwrite(nid_ins, "albe_"//clnsurf(nsrf), itau_w, & |
1979 |
zx_tmp_2d) |
zx_tmp_2d) |
1980 |
|
|
1981 |
END DO |
END DO |
1982 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), albsol, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, albsol, zx_tmp_2d) |
1983 |
CALL histwrite(nid_ins, "albs", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "albs", itau_w, zx_tmp_2d) |
1984 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), albsollw, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, albsollw, zx_tmp_2d) |
1985 |
CALL histwrite(nid_ins, "albslw", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "albslw", itau_w, zx_tmp_2d) |
1986 |
|
|
1987 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), zxrugs, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, zxrugs, zx_tmp_2d) |
1988 |
CALL histwrite(nid_ins, "rugs", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "rugs", itau_w, zx_tmp_2d) |
1989 |
|
|
1990 |
!HBTM2 |
!HBTM2 |
1991 |
|
|
1992 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), s_pblh, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_pblh, zx_tmp_2d) |
1993 |
CALL histwrite(nid_ins, "s_pblh", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_pblh", itau_w, zx_tmp_2d) |
1994 |
|
|
1995 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), s_pblt, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_pblt, zx_tmp_2d) |
1996 |
CALL histwrite(nid_ins, "s_pblt", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_pblt", itau_w, zx_tmp_2d) |
1997 |
|
|
1998 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), s_lcl, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_lcl, zx_tmp_2d) |
1999 |
CALL histwrite(nid_ins, "s_lcl", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_lcl", itau_w, zx_tmp_2d) |
2000 |
|
|
2001 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), s_capCL, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_capCL, zx_tmp_2d) |
2002 |
CALL histwrite(nid_ins, "s_capCL", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_capCL", itau_w, zx_tmp_2d) |
2003 |
|
|
2004 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), s_oliqCL, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_oliqCL, zx_tmp_2d) |
2005 |
CALL histwrite(nid_ins, "s_oliqCL", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_oliqCL", itau_w, zx_tmp_2d) |
2006 |
|
|
2007 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), s_cteiCL, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_cteiCL, zx_tmp_2d) |
2008 |
CALL histwrite(nid_ins, "s_cteiCL", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_cteiCL", itau_w, zx_tmp_2d) |
2009 |
|
|
2010 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), s_therm, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_therm, zx_tmp_2d) |
2011 |
CALL histwrite(nid_ins, "s_therm", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_therm", itau_w, zx_tmp_2d) |
2012 |
|
|
2013 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), s_trmb1, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_trmb1, zx_tmp_2d) |
2014 |
CALL histwrite(nid_ins, "s_trmb1", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_trmb1", itau_w, zx_tmp_2d) |
2015 |
|
|
2016 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), s_trmb2, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_trmb2, zx_tmp_2d) |
2017 |
CALL histwrite(nid_ins, "s_trmb2", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_trmb2", itau_w, zx_tmp_2d) |
2018 |
|
|
2019 |
CALL gr_fi_ecrit(1, klon, iim, (jjm + 1), s_trmb3, zx_tmp_2d) |
CALL gr_fi_ecrit(1, klon, iim, jjm + 1, s_trmb3, zx_tmp_2d) |
2020 |
CALL histwrite(nid_ins, "s_trmb3", itau_w, zx_tmp_2d) |
CALL histwrite(nid_ins, "s_trmb3", itau_w, zx_tmp_2d) |
2021 |
|
|
2022 |
! Champs 3D: |
! Champs 3D: |
2023 |
|
|
2024 |
CALL gr_fi_ecrit(llm, klon, iim, (jjm + 1), t_seri, zx_tmp_3d) |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, t_seri, zx_tmp_3d) |
2025 |
CALL histwrite(nid_ins, "temp", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "temp", itau_w, zx_tmp_3d) |
2026 |
|
|
2027 |
CALL gr_fi_ecrit(llm, klon, iim, (jjm + 1), u_seri, zx_tmp_3d) |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, u_seri, zx_tmp_3d) |
2028 |
CALL histwrite(nid_ins, "vitu", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "vitu", itau_w, zx_tmp_3d) |
2029 |
|
|
2030 |
CALL gr_fi_ecrit(llm, klon, iim, (jjm + 1), v_seri, zx_tmp_3d) |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, v_seri, zx_tmp_3d) |
2031 |
CALL histwrite(nid_ins, "vitv", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "vitv", itau_w, zx_tmp_3d) |
2032 |
|
|
2033 |
CALL gr_fi_ecrit(llm, klon, iim, (jjm + 1), zphi, zx_tmp_3d) |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, zphi, zx_tmp_3d) |
2034 |
CALL histwrite(nid_ins, "geop", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "geop", itau_w, zx_tmp_3d) |
2035 |
|
|
2036 |
CALL gr_fi_ecrit(llm, klon, iim, (jjm + 1), play, zx_tmp_3d) |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, play, zx_tmp_3d) |
2037 |
CALL histwrite(nid_ins, "pres", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "pres", itau_w, zx_tmp_3d) |
2038 |
|
|
2039 |
CALL gr_fi_ecrit(llm, klon, iim, (jjm + 1), d_t_vdf, zx_tmp_3d) |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, d_t_vdf, zx_tmp_3d) |
2040 |
CALL histwrite(nid_ins, "dtvdf", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "dtvdf", itau_w, zx_tmp_3d) |
2041 |
|
|
2042 |
CALL gr_fi_ecrit(llm, klon, iim, (jjm + 1), d_q_vdf, zx_tmp_3d) |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, d_q_vdf, zx_tmp_3d) |
2043 |
CALL histwrite(nid_ins, "dqvdf", itau_w, zx_tmp_3d) |
CALL histwrite(nid_ins, "dqvdf", itau_w, zx_tmp_3d) |
2044 |
|
|
2045 |
if (ok_sync) then |
if (ok_sync) then |
2063 |
|
|
2064 |
! Champs 3D: |
! Champs 3D: |
2065 |
|
|
2066 |
CALL gr_fi_ecrit(llm, klon, iim, (jjm + 1), t_seri, zx_tmp_3d) |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, t_seri, zx_tmp_3d) |
2067 |
CALL histwrite(nid_hf3d, "temp", itau_w, zx_tmp_3d) |
CALL histwrite(nid_hf3d, "temp", itau_w, zx_tmp_3d) |
2068 |
|
|
2069 |
CALL gr_fi_ecrit(llm, klon, iim, (jjm + 1), qx(1, 1, ivap), zx_tmp_3d) |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, qx(1, 1, ivap), zx_tmp_3d) |
2070 |
CALL histwrite(nid_hf3d, "ovap", itau_w, zx_tmp_3d) |
CALL histwrite(nid_hf3d, "ovap", itau_w, zx_tmp_3d) |
2071 |
|
|
2072 |
CALL gr_fi_ecrit(llm, klon, iim, (jjm + 1), u_seri, zx_tmp_3d) |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, u_seri, zx_tmp_3d) |
2073 |
CALL histwrite(nid_hf3d, "vitu", itau_w, zx_tmp_3d) |
CALL histwrite(nid_hf3d, "vitu", itau_w, zx_tmp_3d) |
2074 |
|
|
2075 |
CALL gr_fi_ecrit(llm, klon, iim, (jjm + 1), v_seri, zx_tmp_3d) |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, v_seri, zx_tmp_3d) |
2076 |
CALL histwrite(nid_hf3d, "vitv", itau_w, zx_tmp_3d) |
CALL histwrite(nid_hf3d, "vitv", itau_w, zx_tmp_3d) |
2077 |
|
|
2078 |
if (nbtr >= 3) then |
if (nbtr >= 3) then |
2079 |
CALL gr_fi_ecrit(llm, klon, iim, (jjm + 1), tr_seri(1, 1, 3), & |
CALL gr_fi_ecrit(llm, klon, iim, jjm + 1, tr_seri(1, 1, 3), & |
2080 |
zx_tmp_3d) |
zx_tmp_3d) |
2081 |
CALL histwrite(nid_hf3d, "O3", itau_w, zx_tmp_3d) |
CALL histwrite(nid_hf3d, "O3", itau_w, zx_tmp_3d) |
2082 |
end if |
end if |