/[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

revision 209 by guez, Wed Dec 7 17:37:21 2016 UTC revision 214 by guez, Wed Mar 22 13:40:27 2017 UTC
# Line 57  contains Line 57  contains
57      USE phytrac_m, ONLY: phytrac      USE phytrac_m, ONLY: phytrac
58      use radlwsw_m, only: radlwsw      use radlwsw_m, only: radlwsw
59      use yoegwd, only: sugwd      use yoegwd, only: sugwd
60      USE suphec_m, ONLY: rcpd, retv, rg, rlvtt, romega, rsigma, rtt      USE suphec_m, ONLY: rcpd, retv, rg, rlvtt, romega, rsigma, rtt, rmo3, md
61      use time_phylmdz, only: itap, increment_itap      use time_phylmdz, only: itap, increment_itap
62      use transp_m, only: transp      use transp_m, only: transp
63      use transp_lay_m, only: transp_lay      use transp_lay_m, only: transp_lay
# Line 151  contains Line 151  contains
151      ! soil temperature of surface fraction      ! soil temperature of surface fraction
152    
153      REAL, save:: fevap(klon, nbsrf) ! evaporation      REAL, save:: fevap(klon, nbsrf) ! evaporation
154      REAL, save:: fluxlat(klon, nbsrf)      REAL fluxlat(klon, nbsrf)
155    
156      REAL, save:: fqsurf(klon, nbsrf)      REAL, save:: fqsurf(klon, nbsrf)
157      ! humidite de l'air au contact de la surface      ! humidite de l'air au contact de la surface
# Line 206  contains Line 206  contains
206      REAL, save:: pfrac_1nucl(klon, llm)      REAL, save:: pfrac_1nucl(klon, llm)
207      ! Produits des coefs lessi nucl (alpha = 1)      ! Produits des coefs lessi nucl (alpha = 1)
208    
209      REAL frac_impa(klon, llm) ! fractions d'aerosols lessivees (impaction)      REAL frac_impa(klon, llm) ! fraction d'a\'erosols lessiv\'es (impaction)
210      REAL frac_nucl(klon, llm) ! idem (nucleation)      REAL frac_nucl(klon, llm) ! idem (nucleation)
211    
212      REAL, save:: rain_fall(klon)      REAL, save:: rain_fall(klon)
# Line 238  contains Line 238  contains
238      REAL, save:: pctsrf(klon, nbsrf) ! percentage of surface      REAL, save:: pctsrf(klon, nbsrf) ! percentage of surface
239      REAL, save:: albsol(klon) ! albedo du sol total visible      REAL, save:: albsol(klon) ! albedo du sol total visible
240      REAL, SAVE:: wo(klon, llm) ! column density of ozone in a cell, in kDU      REAL, SAVE:: wo(klon, llm) ! column density of ozone in a cell, in kDU
241        real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2
242    
243      real, save:: clwcon(klon, llm), rnebcon(klon, llm)      real, save:: clwcon(klon, llm), rnebcon(klon, llm)
244      real, save:: clwcon0(klon, llm), rnebcon0(klon, llm)      real, save:: clwcon0(klon, llm), rnebcon0(klon, llm)
# Line 386  contains Line 387  contains
387      REAL ztsol(klon)      REAL ztsol(klon)
388    
389      REAL d_t_ec(klon, llm)      REAL d_t_ec(klon, llm)
390      ! tendance due \`a la conversion Ec en énergie thermique      ! tendance due \`a la conversion d'\'energie cin\'etique en
391        ! énergie thermique
     REAL ZRCPD  
392    
393      REAL, save:: t2m(klon, nbsrf), q2m(klon, nbsrf)      REAL, save:: t2m(klon, nbsrf), q2m(klon, nbsrf)
394      ! temperature and humidity at 2 m      ! temperature and humidity at 2 m
# Line 567  contains Line 567  contains
567    
568      forall (k = 1: llm) zmasse(:, k) = (paprs(:, k) - paprs(:, k + 1)) / rg      forall (k = 1: llm) zmasse(:, k) = (paprs(:, k) - paprs(:, k + 1)) / rg
569    
     ! Prescrire l'ozone :  
     wo = ozonecm(REAL(julien), paprs)  
   
570      ! \'Evaporation de l'eau liquide nuageuse :      ! \'Evaporation de l'eau liquide nuageuse :
571      DO k = 1, llm      DO k = 1, llm
572         DO i = 1, klon         DO i = 1, klon
# Line 920  contains Line 917  contains
917      endif      endif
918    
919      IF (MOD(itap - 1, radpas) == 0) THEN      IF (MOD(itap - 1, radpas) == 0) THEN
920           ! Prescrire l'ozone :
921           wo = ozonecm(REAL(julien), paprs)
922    
923         ! Appeler le rayonnement mais calculer tout d'abord l'albedo du sol.         ! Appeler le rayonnement mais calculer tout d'abord l'albedo du sol.
924         ! Calcul de l'abedo moyen par maille         ! Calcul de l'abedo moyen par maille
925         albsol = sum(falbe * pctsrf, dim = 2)         albsol = sum(falbe * pctsrf, dim = 2)
# Line 1043  contains Line 1043  contains
1043      ! conversion Ec en énergie thermique      ! conversion Ec en énergie thermique
1044      DO k = 1, llm      DO k = 1, llm
1045         DO i = 1, klon         DO i = 1, klon
1046            ZRCPD = RCPD * (1. + RVTMP2 * q_seri(i, k))            d_t_ec(i, k) = 0.5 / (RCPD * (1. + RVTMP2 * q_seri(i, k))) &
           d_t_ec(i, k) = 0.5 / ZRCPD &  
1047                 * (u(i, k)**2 + v(i, k)**2 - u_seri(i, k)**2 - v_seri(i, k)**2)                 * (u(i, k)**2 + v(i, k)**2 - u_seri(i, k)**2 - v_seri(i, k)**2)
1048            t_seri(i, k) = t_seri(i, k) + d_t_ec(i, k)            t_seri(i, k) = t_seri(i, k) + d_t_ec(i, k)
1049            d_t_ec(i, k) = d_t_ec(i, k) / dtphys            d_t_ec(i, k) = d_t_ec(i, k) / dtphys
# Line 1129  contains Line 1128  contains
1128      END DO      END DO
1129    
1130      CALL histwrite_phy("albs", albsol)      CALL histwrite_phy("albs", albsol)
1131        CALL histwrite_phy("tro3", wo * dobson_u * 1e3 / zmasse / rmo3 * md)
1132      CALL histwrite_phy("rugs", zxrugs)      CALL histwrite_phy("rugs", zxrugs)
1133      CALL histwrite_phy("s_pblh", s_pblh)      CALL histwrite_phy("s_pblh", s_pblh)
1134      CALL histwrite_phy("s_pblt", s_pblt)      CALL histwrite_phy("s_pblt", s_pblt)
# Line 1154  contains Line 1154  contains
1154      CALL histwrite_phy("dtvdf", d_t_vdf)      CALL histwrite_phy("dtvdf", d_t_vdf)
1155      CALL histwrite_phy("dqvdf", d_q_vdf)      CALL histwrite_phy("dqvdf", d_q_vdf)
1156      CALL histwrite_phy("rhum", zx_rh)      CALL histwrite_phy("rhum", zx_rh)
1157        CALL histwrite_phy("d_t_ec", d_t_ec)
1158        CALL histwrite_phy("dtsw0", heat0 / 86400.)
1159        CALL histwrite_phy("dtlw0", - cool0 / 86400.)
1160    
1161      if (ok_instan) call histsync(nid_ins)      if (ok_instan) call histsync(nid_ins)
1162    

Legend:
Removed from v.209  
changed lines
  Added in v.214

  ViewVC Help
Powered by ViewVC 1.1.21