/[lmdze]/trunk/Sources/phylmd/physiq.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/physiq.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/libf/phylmd/physiq.f90 revision 70 by guez, Mon Jun 24 15:39:52 2013 UTC trunk/phylmd/physiq.f90 revision 79 by guez, Fri Feb 28 17:52:47 2014 UTC
# Line 5  module physiq_m Line 5  module physiq_m
5  contains  contains
6    
7    SUBROUTINE physiq(lafin, rdayvrai, time, dtphys, paprs, play, pphi, pphis, &    SUBROUTINE physiq(lafin, rdayvrai, time, dtphys, paprs, play, pphi, pphis, &
8         u, v, t, qx, omega, d_u, d_v, d_t, d_qx, d_ps, dudyn, PVteta)         u, v, t, qx, omega, d_u, d_v, d_t, d_qx, d_ps, dudyn)
9    
10        ! From phylmd/physiq.F, version 1.22 2006/02/20 09:38:28
11        ! (subversion revision 678)
12    
     ! From phylmd/physiq.F, version 1.22 2006/02/20 09:38:28 (SVN revision 678)  
13      ! Author: Z.X. Li (LMD/CNRS) 1993      ! Author: Z.X. Li (LMD/CNRS) 1993
14    
15      ! This is the main procedure for the "physics" part of the program.      ! This is the main procedure for the "physics" part of the program.
# Line 23  contains Line 25  contains
25      USE clesphys2, ONLY: cycle_diurne, iflag_con, nbapp_rad, new_oliq, &      USE clesphys2, ONLY: cycle_diurne, iflag_con, nbapp_rad, new_oliq, &
26           ok_orodr, ok_orolf, soil_model           ok_orodr, ok_orolf, soil_model
27      USE clmain_m, ONLY: clmain      USE clmain_m, ONLY: clmain
28        use clouds_gno_m, only: clouds_gno
29      USE comgeomphy, ONLY: airephy, cuphy, cvphy      USE comgeomphy, ONLY: airephy, cuphy, cvphy
30      USE concvl_m, ONLY: concvl      USE concvl_m, ONLY: concvl
31      USE conf_gcm_m, ONLY: offline, raz_date      USE conf_gcm_m, ONLY: offline, raz_date
# Line 104  contains Line 107  contains
107      INTEGER nbteta      INTEGER nbteta
108      PARAMETER(nbteta = 3)      PARAMETER(nbteta = 3)
109    
     REAL PVteta(klon, nbteta)  
     ! (output vorticite potentielle a des thetas constantes)  
   
110      LOGICAL ok_gust ! pour activer l'effet des gust sur flux surface      LOGICAL ok_gust ! pour activer l'effet des gust sur flux surface
111      PARAMETER (ok_gust = .FALSE.)      PARAMETER (ok_gust = .FALSE.)
112    
# Line 203  contains Line 203  contains
203      PARAMETER(kmaxm1 = kmax-1, lmaxm1 = lmax-1)      PARAMETER(kmaxm1 = kmax-1, lmaxm1 = lmax-1)
204    
205      REAL zx_tau(kmaxm1), zx_pc(lmaxm1)      REAL zx_tau(kmaxm1), zx_pc(lmaxm1)
206      DATA zx_tau/0.0, 0.3, 1.3, 3.6, 9.4, 23., 60./      DATA zx_tau/0., 0.3, 1.3, 3.6, 9.4, 23., 60./
207      DATA zx_pc/50., 180., 310., 440., 560., 680., 800./      DATA zx_pc/50., 180., 310., 440., 560., 680., 800./
208    
209      ! cldtopres pression au sommet des nuages      ! cldtopres pression au sommet des nuages
# Line 265  contains Line 265  contains
265      REAL, save:: ftsoil(klon, nsoilmx, nbsrf)      REAL, save:: ftsoil(klon, nsoilmx, nbsrf)
266      ! soil temperature of surface fraction      ! soil temperature of surface fraction
267    
268      REAL fevap(klon, nbsrf)      REAL, save:: fevap(klon, nbsrf) ! evaporation
     SAVE fevap ! evaporation  
269      REAL fluxlat(klon, nbsrf)      REAL fluxlat(klon, nbsrf)
270      SAVE fluxlat      SAVE fluxlat
271    
# Line 313  contains Line 312  contains
312      SAVE Ma      SAVE Ma
313      REAL qcondc(klon, llm) ! in-cld water content from convect      REAL qcondc(klon, llm) ! in-cld water content from convect
314      SAVE qcondc      SAVE qcondc
315      REAL ema_work1(klon, llm), ema_work2(klon, llm)      REAL, save:: sig1(klon, llm), w01(klon, llm)
     SAVE ema_work1, ema_work2  
316      REAL, save:: wd(klon)      REAL, save:: wd(klon)
317    
318      ! Variables locales pour la couche limite (al1):      ! Variables locales pour la couche limite (al1):
# Line 348  contains Line 346  contains
346    
347      REAL rain_tiedtke(klon), snow_tiedtke(klon)      REAL rain_tiedtke(klon), snow_tiedtke(klon)
348    
349      REAL evap(klon), devap(klon) ! evaporation et sa derivee      REAL evap(klon), devap(klon) ! evaporation and its derivative
350      REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee      REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee
351      REAL dlw(klon) ! derivee infra rouge      REAL dlw(klon) ! derivee infra rouge
352      SAVE dlw      SAVE dlw
# Line 389  contains Line 387  contains
387    
388      ! Variables locales      ! Variables locales
389    
390      real clwcon(klon, llm), rnebcon(klon, llm)      real, save:: clwcon(klon, llm), rnebcon(klon, llm)
391      real clwcon0(klon, llm), rnebcon0(klon, llm)      real, save:: clwcon0(klon, llm), rnebcon0(klon, llm)
   
     save rnebcon, clwcon  
392    
393      REAL rhcl(klon, llm) ! humiditi relative ciel clair      REAL rhcl(klon, llm) ! humiditi relative ciel clair
394      REAL dialiq(klon, llm) ! eau liquide nuageuse      REAL dialiq(klon, llm) ! eau liquide nuageuse
# Line 418  contains Line 414  contains
414      REAL heat0(klon, llm) ! chauffage solaire ciel clair      REAL heat0(klon, llm) ! chauffage solaire ciel clair
415      REAL, save:: cool(klon, llm) ! refroidissement infrarouge      REAL, save:: cool(klon, llm) ! refroidissement infrarouge
416      REAL cool0(klon, llm) ! refroidissement infrarouge ciel clair      REAL cool0(klon, llm) ! refroidissement infrarouge ciel clair
417      REAL, save:: topsw(klon), toplw(klon), solsw(klon), sollw(klon)      REAL, save:: topsw(klon), toplw(klon), solsw(klon)
418      real sollwdown(klon) ! downward LW flux at surface      REAL, save:: sollw(klon) ! rayonnement infrarouge montant à la surface
419        real, save:: sollwdown(klon) ! downward LW flux at surface
420      REAL, save:: topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon)      REAL, save:: topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon)
421      REAL albpla(klon)      REAL albpla(klon)
422      REAL fsollw(klon, nbsrf) ! bilan flux IR pour chaque sous surface      REAL fsollw(klon, nbsrf) ! bilan flux IR pour chaque sous surface
423      REAL fsolsw(klon, nbsrf) ! flux solaire absorb. pour chaque sous surface      REAL fsolsw(klon, nbsrf) ! flux solaire absorb. pour chaque sous surface
424      SAVE albpla, sollwdown      SAVE albpla
425      SAVE heat0, cool0      SAVE heat0, cool0
426    
427      INTEGER itaprad      INTEGER itaprad
# Line 500  contains Line 497  contains
497      REAL d_u_ajs(klon, llm), d_v_ajs(klon, llm)      REAL d_u_ajs(klon, llm), d_v_ajs(klon, llm)
498      REAL rneb(klon, llm)      REAL rneb(klon, llm)
499    
500      REAL pmfu(klon, llm), pmfd(klon, llm)      REAL mfu(klon, llm), mfd(klon, llm)
501      REAL pen_u(klon, llm), pen_d(klon, llm)      REAL pen_u(klon, llm), pen_d(klon, llm)
502      REAL pde_u(klon, llm), pde_d(klon, llm)      REAL pde_u(klon, llm), pde_d(klon, llm)
503      INTEGER kcbot(klon), kctop(klon), kdtop(klon)      INTEGER kcbot(klon), kctop(klon), kdtop(klon)
# Line 629  contains Line 626  contains
626      SAVE solswad      SAVE solswad
627      SAVE d_u_con      SAVE d_u_con
628      SAVE d_v_con      SAVE d_v_con
     SAVE rnebcon0  
     SAVE clwcon0  
629    
630      real zmasse(klon, llm)      real zmasse(klon, llm)
631      ! (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)
# Line 667  contains Line 662  contains
662         solswai(:) = 0.         solswai(:) = 0.
663         solswad(:) = 0.         solswad(:) = 0.
664    
665         d_u_con = 0.0         d_u_con = 0.
666         d_v_con = 0.0         d_v_con = 0.
667         rnebcon0 = 0.0         rnebcon0 = 0.
668         clwcon0 = 0.0         clwcon0 = 0.
669         rnebcon = 0.0         rnebcon = 0.
670         clwcon = 0.0         clwcon = 0.
671    
672         pblh =0. ! Hauteur de couche limite         pblh =0. ! Hauteur de couche limite
673         plcl =0. ! Niveau de condensation de la CLA         plcl =0. ! Niveau de condensation de la CLA
# Line 702  contains Line 697  contains
697         itaprad = 0         itaprad = 0
698         CALL phyetat0("startphy.nc", pctsrf, ftsol, ftsoil, ocean, tslab, &         CALL phyetat0("startphy.nc", pctsrf, ftsol, ftsoil, ocean, tslab, &
699              seaice, fqsurf, qsol, fsnow, falbe, falblw, fevap, rain_fall, &              seaice, fqsurf, qsol, fsnow, falbe, falblw, fevap, rain_fall, &
700              snow_fall, solsw, sollwdown, dlw, radsol, frugs, agesno, zmea, &              snow_fall, solsw, sollw, dlw, radsol, frugs, agesno, zmea, &
701              zstd, zsig, zgam, zthe, zpic, zval, t_ancien, q_ancien, &              zstd, zsig, zgam, zthe, zpic, zval, t_ancien, q_ancien, &
702              ancien_ok, rnebcon, ratqs, clwcon, run_off_lic_0)              ancien_ok, rnebcon, ratqs, clwcon, run_off_lic_0, sig1, w01)
703    
704         ! ATTENTION : il faudra a terme relire q2 dans l'etat initial         ! ATTENTION : il faudra a terme relire q2 dans l'etat initial
705         q2 = 1e-8         q2 = 1e-8
# Line 830  contains Line 825  contains
825      ELSE      ELSE
826         DO k = 1, llm         DO k = 1, llm
827            DO i = 1, klon            DO i = 1, klon
828               d_t_dyn(i, k) = 0.0               d_t_dyn(i, k) = 0.
829               d_q_dyn(i, k) = 0.0               d_q_dyn(i, k) = 0.
830            ENDDO            ENDDO
831         ENDDO         ENDDO
832         ancien_ok = .TRUE.         ancien_ok = .TRUE.
# Line 884  contains Line 879  contains
879      ! Appeler la diffusion verticale (programme de couche limite)      ! Appeler la diffusion verticale (programme de couche limite)
880    
881      DO i = 1, klon      DO i = 1, klon
882         zxrugs(i) = 0.0         zxrugs(i) = 0.
883      ENDDO      ENDDO
884      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
885         DO i = 1, klon         DO i = 1, klon
# Line 917  contains Line 912  contains
912         ENDDO         ENDDO
913      ENDDO      ENDDO
914    
915      ! Repartition sous maille des flux LW et SW      ! Répartition sous maille des flux longwave et shortwave
916      ! Repartition du longwave par sous-surface linearisee      ! Répartition du longwave par sous-surface linéarisée
917    
918      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
919         DO i = 1, klon         DO i = 1, klon
# Line 932  contains Line 927  contains
927    
928      ! Couche limite:      ! Couche limite:
929    
930      CALL clmain(dtphys, itap, date0, pctsrf, pctsrf_new, t_seri, q_seri, &      CALL clmain(dtphys, itap, pctsrf, pctsrf_new, t_seri, q_seri, &
931           u_seri, v_seri, julien, rmu0, co2_ppm, ok_veget, ocean, npas, nexca, &           u_seri, v_seri, julien, rmu0, co2_ppm, ok_veget, ocean, &
932           ftsol, soil_model, cdmmax, cdhmax, ksta, ksta_ter, ok_kzmin, ftsoil, &           ftsol, soil_model, cdmmax, cdhmax, ksta, ksta_ter, ok_kzmin, ftsoil, &
933           qsol, paprs, play, fsnow, fqsurf, fevap, falbe, falblw, fluxlat, &           qsol, paprs, play, fsnow, fqsurf, fevap, falbe, falblw, fluxlat, &
934           rain_fall, snow_fall, fsolsw, fsollw, sollwdown, fder, rlon, rlat, &           rain_fall, snow_fall, fsolsw, fsollw, fder, rlon, rlat, &
935           cuphy, cvphy, frugs, firstcal, lafin, agesno, rugoro, d_t_vdf, &           frugs, firstcal, agesno, rugoro, d_t_vdf, &
936           d_q_vdf, d_u_vdf, d_v_vdf, d_ts, fluxt, fluxq, fluxu, fluxv, cdragh, &           d_q_vdf, d_u_vdf, d_v_vdf, d_ts, fluxt, fluxq, fluxu, fluxv, cdragh, &
937           cdragm, q2, dsens, devap, ycoefh, yu1, yv1, t2m, q2m, u10m, v10m, &           cdragm, q2, dsens, devap, ycoefh, yu1, yv1, t2m, q2m, u10m, v10m, &
938           pblh, capCL, oliqCL, cteiCL, pblT, therm, trmb1, trmb2, trmb3, plcl, &           pblh, capCL, oliqCL, cteiCL, pblT, therm, trmb1, trmb2, trmb3, plcl, &
# Line 987  contains Line 982  contains
982      ! Update surface temperature:      ! Update surface temperature:
983    
984      DO i = 1, klon      DO i = 1, klon
985         zxtsol(i) = 0.0         zxtsol(i) = 0.
986         zxfluxlat(i) = 0.0         zxfluxlat(i) = 0.
987    
988         zt2m(i) = 0.0         zt2m(i) = 0.
989         zq2m(i) = 0.0         zq2m(i) = 0.
990         zu10m(i) = 0.0         zu10m(i) = 0.
991         zv10m(i) = 0.0         zv10m(i) = 0.
992         zxffonte(i) = 0.0         zxffonte(i) = 0.
993         zxfqcalving(i) = 0.0         zxfqcalving(i) = 0.
994    
995         s_pblh(i) = 0.0         s_pblh(i) = 0.
996         s_lcl(i) = 0.0         s_lcl(i) = 0.
997         s_capCL(i) = 0.0         s_capCL(i) = 0.
998         s_oliqCL(i) = 0.0         s_oliqCL(i) = 0.
999         s_cteiCL(i) = 0.0         s_cteiCL(i) = 0.
1000         s_pblT(i) = 0.0         s_pblT(i) = 0.
1001         s_therm(i) = 0.0         s_therm(i) = 0.
1002         s_trmb1(i) = 0.0         s_trmb1(i) = 0.
1003         s_trmb2(i) = 0.0         s_trmb2(i) = 0.
1004         s_trmb3(i) = 0.0         s_trmb3(i) = 0.
1005    
1006         IF (abs(pctsrf(i, is_ter) + pctsrf(i, is_lic) + pctsrf(i, is_oce) &         IF (abs(pctsrf(i, is_ter) + pctsrf(i, is_lic) + pctsrf(i, is_oce) &
1007              + pctsrf(i, is_sic) - 1.)  >  EPSFRA) print *, &              + pctsrf(i, is_sic) - 1.)  >  EPSFRA) print *, &
# Line 1086  contains Line 1081  contains
1081    
1082      if (iflag_con == 2) then      if (iflag_con == 2) then
1083         z_avant = sum((q_seri + ql_seri) * zmasse, dim=2)         z_avant = sum((q_seri + ql_seri) * zmasse, dim=2)
1084         CALL conflx(dtphys, paprs, play, t_seri(:, llm:1:-1), q_seri, &         CALL conflx(dtphys, paprs, play, t_seri(:, llm:1:-1), &
1085              conv_t, conv_q, zxfluxq(:, 1), omega, d_t_con, d_q_con, &              q_seri(:, llm:1:-1), conv_t, conv_q, zxfluxq(:, 1), omega, &
1086              rain_con, snow_con, pmfu, pmfd, pen_u, pde_u, pen_d, &              d_t_con, d_q_con, rain_con, snow_con, mfu(:, llm:1:-1), &
1087              pde_d, kcbot, kctop, kdtop, pmflxr, pmflxs)              mfd(:, llm:1:-1), pen_u, pde_u, pen_d, pde_d, kcbot, kctop, &
1088                kdtop, pmflxr, pmflxs)
1089         WHERE (rain_con < 0.) rain_con = 0.         WHERE (rain_con < 0.) rain_con = 0.
1090         WHERE (snow_con < 0.) snow_con = 0.         WHERE (snow_con < 0.) snow_con = 0.
1091         DO i = 1, klon         ibas_con = llm + 1 - kcbot
1092            ibas_con(i) = llm + 1 - kcbot(i)         itop_con = llm + 1 - kctop
           itop_con(i) = llm + 1 - kctop(i)  
        ENDDO  
1093      else      else
1094         ! iflag_con >= 3         ! iflag_con >= 3
1095    
1096         CALL concvl(dtphys, paprs, play, t_seri, q_seri, u_seri, &         CALL concvl(dtphys, paprs, play, t_seri, q_seri, u_seri, &
1097              v_seri, tr_seri, ema_work1, ema_work2, d_t_con, d_q_con, &              v_seri, tr_seri, sig1, w01, d_t_con, d_q_con, &
1098              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, &
1099              itop_con, upwd, dnwd, dnwd0, Ma, cape, tvp, iflagctrl, &              itop_con, upwd, dnwd, dnwd0, Ma, cape, tvp, iflagctrl, &
1100              pbase, bbase, dtvpdt1, dtvpdq1, dplcldt, dplcldr, qcondc, &              pbase, bbase, dtvpdt1, dtvpdq1, dplcldt, dplcldr, qcondc, &
# Line 1110  contains Line 1105  contains
1105         ! supprimer les calculs / ftra.)         ! supprimer les calculs / ftra.)
1106    
1107         clwcon0 = qcondc         clwcon0 = qcondc
1108         pmfu = upwd + dnwd         mfu = upwd + dnwd
1109         IF (.NOT. ok_gust) wd = 0.         IF (.NOT. ok_gust) wd = 0.
1110    
1111         ! Calcul des propriétés des nuages convectifs         ! Calcul des propriétés des nuages convectifs
# Line 1120  contains Line 1115  contains
1115               zx_t = t_seri(i, k)               zx_t = t_seri(i, k)
1116               IF (thermcep) THEN               IF (thermcep) THEN
1117                  zdelta = MAX(0., SIGN(1., rtt-zx_t))                  zdelta = MAX(0., SIGN(1., rtt-zx_t))
1118                  zx_qs = r2es * FOEEW(zx_t, zdelta)/play(i, k)                  zx_qs = r2es * FOEEW(zx_t, zdelta) / play(i, k)
1119                  zx_qs = MIN(0.5, zx_qs)                  zx_qs = MIN(0.5, zx_qs)
1120                  zcor = 1./(1.-retv*zx_qs)                  zcor = 1./(1.-retv*zx_qs)
1121                  zx_qs = zx_qs*zcor                  zx_qs = zx_qs*zcor
# Line 1136  contains Line 1131  contains
1131         ENDDO         ENDDO
1132    
1133         ! calcul des proprietes des nuages convectifs         ! calcul des proprietes des nuages convectifs
1134         clwcon0 = fact_cldcon*clwcon0         clwcon0 = fact_cldcon * clwcon0
1135         call clouds_gno(klon, llm, q_seri, zqsat, clwcon0, ptconv, ratqsc, &         call clouds_gno(klon, llm, q_seri, zqsat, clwcon0, ptconv, ratqsc, &
1136              rnebcon0)              rnebcon0)
1137    
1138           mfd = 0.
1139           pen_u = 0.
1140           pen_d = 0.
1141           pde_d = 0.
1142           pde_u = 0.
1143      END if      END if
1144    
1145      DO k = 1, llm      DO k = 1, llm
# Line 1163  contains Line 1164  contains
1164      IF (check) THEN      IF (check) THEN
1165         za = qcheck(klon, llm, paprs, q_seri, ql_seri, airephy)         za = qcheck(klon, llm, paprs, q_seri, ql_seri, airephy)
1166         print *, "aprescon = ", za         print *, "aprescon = ", za
1167         zx_t = 0.0         zx_t = 0.
1168         za = 0.0         za = 0.
1169         DO i = 1, klon         DO i = 1, klon
1170            za = za + airephy(i)/REAL(klon)            za = za + airephy(i)/REAL(klon)
1171            zx_t = zx_t + (rain_con(i)+ &            zx_t = zx_t + (rain_con(i)+ &
# Line 1251  contains Line 1252  contains
1252         ratqs = ratqss         ratqs = ratqss
1253      endif      endif
1254    
     ! Processus de condensation à grande echelle et processus de  
     ! précipitation :  
1255      CALL fisrtilp(dtphys, paprs, play, t_seri, q_seri, ptconv, ratqs, &      CALL fisrtilp(dtphys, paprs, play, t_seri, q_seri, ptconv, ratqs, &
1256           d_t_lsc, d_q_lsc, d_ql_lsc, rneb, cldliq, rain_lsc, snow_lsc, &           d_t_lsc, d_q_lsc, d_ql_lsc, rneb, cldliq, rain_lsc, snow_lsc, &
1257           pfrac_impa, pfrac_nucl, pfrac_1nucl, frac_impa, frac_nucl, prfl, &           pfrac_impa, pfrac_nucl, pfrac_1nucl, frac_impa, frac_nucl, prfl, &
# Line 1272  contains Line 1271  contains
1271      IF (check) THEN      IF (check) THEN
1272         za = qcheck(klon, llm, paprs, q_seri, ql_seri, airephy)         za = qcheck(klon, llm, paprs, q_seri, ql_seri, airephy)
1273         print *, "apresilp = ", za         print *, "apresilp = ", za
1274         zx_t = 0.0         zx_t = 0.
1275         za = 0.0         za = 0.
1276         DO i = 1, klon         DO i = 1, klon
1277            za = za + airephy(i)/REAL(klon)            za = za + airephy(i)/REAL(klon)
1278            zx_t = zx_t + (rain_lsc(i) &            zx_t = zx_t + (rain_lsc(i) &
# Line 1326  contains Line 1325  contains
1325            ENDDO            ENDDO
1326         ENDDO         ENDDO
1327      ELSE IF (iflag_cldcon == 3) THEN      ELSE IF (iflag_cldcon == 3) THEN
1328         ! On prend pour les nuages convectifs le max du calcul de la         ! On prend pour les nuages convectifs le maximum du calcul de
1329         ! convection et du calcul du pas de temps précédent diminué d'un facteur         ! la convection et du calcul du pas de temps précédent diminué
1330         ! facttemps         ! d'un facteur facttemps.
1331         facteur = dtphys *facttemps         facteur = dtphys * facttemps
1332         do k = 1, llm         do k = 1, llm
1333            do i = 1, klon            do i = 1, klon
1334               rnebcon(i, k) = rnebcon(i, k) * facteur               rnebcon(i, k) = rnebcon(i, k) * facteur
1335               if (rnebcon0(i, k)*clwcon0(i, k) > rnebcon(i, k)*clwcon(i, k)) &               if (rnebcon0(i, k) * clwcon0(i, k) &
1336                    then                    > rnebcon(i, k) * clwcon(i, k)) then
1337                  rnebcon(i, k) = rnebcon0(i, k)                  rnebcon(i, k) = rnebcon0(i, k)
1338                  clwcon(i, k) = clwcon0(i, k)                  clwcon(i, k) = clwcon0(i, k)
1339               endif               endif
# Line 1460  contains Line 1459  contains
1459    
1460      ! Calculer l'hydrologie de la surface      ! Calculer l'hydrologie de la surface
1461      DO i = 1, klon      DO i = 1, klon
1462         zxqsurf(i) = 0.0         zxqsurf(i) = 0.
1463         zxsnow(i) = 0.0         zxsnow(i) = 0.
1464      ENDDO      ENDDO
1465      DO nsrf = 1, nbsrf      DO nsrf = 1, nbsrf
1466         DO i = 1, klon         DO i = 1, klon
# Line 1483  contains Line 1482  contains
1482         igwd = 0         igwd = 0
1483         DO i = 1, klon         DO i = 1, klon
1484            itest(i) = 0            itest(i) = 0
1485            IF (((zpic(i)-zmea(i)) > 100.).AND.(zstd(i) > 10.0)) THEN            IF (((zpic(i)-zmea(i)) > 100.).AND.(zstd(i) > 10.)) THEN
1486               itest(i) = 1               itest(i) = 1
1487               igwd = igwd + 1               igwd = igwd + 1
1488               idx(igwd) = i               idx(igwd) = i
# Line 1554  contains Line 1553  contains
1553    
1554      ! Calcul des tendances traceurs      ! Calcul des tendances traceurs
1555      call phytrac(rnpb, itap, lmt_pas, julien, time, firstcal, lafin, nqmx-2, &      call phytrac(rnpb, itap, lmt_pas, julien, time, firstcal, lafin, nqmx-2, &
1556           dtphys, u, t, paprs, play, pmfu, pmfd, pen_u, pde_u, pen_d, pde_d, &           dtphys, u, t, paprs, play, mfu, mfd, pde_u, pen_d, ycoefh, fm_therm, &
1557           ycoefh, fm_therm, entr_therm, yu1, yv1, ftsol, pctsrf, frac_impa, &           entr_therm, yu1, yv1, ftsol, pctsrf, frac_impa, frac_nucl, pphis, &
1558           frac_nucl, pphis, albsol, rhcl, cldfra, rneb, diafra, cldliq, &           albsol, rhcl, cldfra, rneb, diafra, cldliq, pmflxr, pmflxs, prfl, &
1559           pmflxr, pmflxs, prfl, psfl, da, phi, mp, upwd, dnwd, tr_seri, zmasse)           psfl, da, phi, mp, upwd, dnwd, tr_seri, zmasse)
1560    
1561      IF (offline) THEN      IF (offline) call phystokenc(dtphys, rlon, rlat, t, mfu, mfd, pen_u, &
1562         call phystokenc(dtphys, rlon, rlat, t, pmfu, pmfd, pen_u, pde_u, &           pde_u, pen_d, pde_d, fm_therm, entr_therm, ycoefh, yu1, yv1, ftsol, &
1563              pen_d, pde_d, fm_therm, entr_therm, ycoefh, yu1, yv1, ftsol, &           pctsrf, frac_impa, frac_nucl, pphis, airephy, dtphys, itap)
             pctsrf, frac_impa, frac_nucl, pphis, airephy, dtphys, itap)  
     ENDIF  
1564    
1565      ! Calculer le transport de l'eau et de l'energie (diagnostique)      ! Calculer le transport de l'eau et de l'energie (diagnostique)
1566      CALL transp(paprs, zxtsol, t_seri, q_seri, u_seri, v_seri, zphi, ve, vq, &      CALL transp(paprs, zxtsol, t_seri, q_seri, u_seri, v_seri, zphi, ve, vq, &
# Line 1654  contains Line 1651  contains
1651         itau_phy = itau_phy + itap         itau_phy = itau_phy + itap
1652         CALL phyredem("restartphy.nc", rlat, rlon, pctsrf, ftsol, ftsoil, &         CALL phyredem("restartphy.nc", rlat, rlon, pctsrf, ftsol, ftsoil, &
1653              tslab, seaice, fqsurf, qsol, fsnow, falbe, falblw, fevap, &              tslab, seaice, fqsurf, qsol, fsnow, falbe, falblw, fevap, &
1654              rain_fall, snow_fall, solsw, sollwdown, dlw, radsol, frugs, &              rain_fall, snow_fall, solsw, sollw, dlw, radsol, frugs, &
1655              agesno, zmea, zstd, zsig, zgam, zthe, zpic, zval, t_ancien, &              agesno, zmea, zstd, zsig, zgam, zthe, zpic, zval, t_ancien, &
1656              q_ancien, rnebcon, ratqs, clwcon, run_off_lic_0)              q_ancien, rnebcon, ratqs, clwcon, run_off_lic_0, sig1, w01)
1657      ENDIF      ENDIF
1658    
1659      firstcal = .FALSE.      firstcal = .FALSE.

Legend:
Removed from v.70  
changed lines
  Added in v.79

  ViewVC Help
Powered by ViewVC 1.1.21