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

Diff of /trunk/phylmd/physiq.f

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

revision 227 by guez, Thu Nov 2 15:47:03 2017 UTC revision 247 by guez, Fri Jan 5 14:45:45 2018 UTC
# Line 170  contains Line 170  contains
170      REAL, save:: zval(klon) ! Minimum de l'OESM      REAL, save:: zval(klon) ! Minimum de l'OESM
171      REAL, save:: rugoro(klon) ! longueur de rugosite de l'OESM      REAL, save:: rugoro(klon) ! longueur de rugosite de l'OESM
172      REAL zulow(klon), zvlow(klon)      REAL zulow(klon), zvlow(klon)
173      INTEGER igwd, itest(klon)      INTEGER ktest(klon)
174    
175      REAL, save:: agesno(klon, nbsrf) ! age de la neige      REAL, save:: agesno(klon, nbsrf) ! age de la neige
176      REAL, save:: run_off_lic_0(klon)      REAL, save:: run_off_lic_0(klon)
# Line 184  contains Line 184  contains
184      REAL cdragh(klon) ! drag coefficient pour T and Q      REAL cdragh(klon) ! drag coefficient pour T and Q
185      REAL cdragm(klon) ! drag coefficient pour vent      REAL cdragm(klon) ! drag coefficient pour vent
186    
187      REAL ycoefh(klon, llm) ! coef d'echange pour phytrac      REAL coefh(klon, 2:llm) ! coef d'echange pour phytrac
188    
189      REAL, save:: ffonte(klon, nbsrf)      REAL, save:: ffonte(klon, nbsrf)
190      ! flux thermique utilise pour fondre la neige      ! flux thermique utilise pour fondre la neige
# Line 248  contains Line 248  contains
248    
249      REAL flux_q(klon, nbsrf) ! flux turbulent d'humidite à la surface      REAL flux_q(klon, nbsrf) ! flux turbulent d'humidite à la surface
250      REAL flux_t(klon, nbsrf) ! flux turbulent de chaleur à la surface      REAL flux_t(klon, nbsrf) ! flux turbulent de chaleur à la surface
251      REAL flux_u(klon, nbsrf) ! flux turbulent de vitesse u à la surface  
252      REAL flux_v(klon, nbsrf) ! flux turbulent de vitesse v à la surface      REAL flux_u(klon, nbsrf), flux_v(klon, nbsrf)
253        ! tension du vent (flux turbulent de vent) à la surface, en Pa
254    
255      ! Le rayonnement n'est pas calcul\'e tous les pas, il faut donc que      ! Le rayonnement n'est pas calcul\'e tous les pas, il faut donc que
256      ! les variables soient r\'emanentes.      ! les variables soient r\'emanentes.
# Line 369  contains Line 370  contains
370    
371      REAL zustrdr(klon), zvstrdr(klon)      REAL zustrdr(klon), zvstrdr(klon)
372      REAL zustrli(klon), zvstrli(klon)      REAL zustrli(klon), zvstrli(klon)
     REAL zustrph(klon), zvstrph(klon)  
373      REAL aam, torsfc      REAL aam, torsfc
374    
375      REAL ve_lay(klon, llm) ! transport meri. de l'energie a chaque niveau vert.      REAL ve_lay(klon, llm) ! transport meri. de l'energie a chaque niveau vert.
# Line 571  contains Line 571  contains
571           paprs, play, fsnow, fqsurf, fevap, falbe, fluxlat, rain_fall, &           paprs, play, fsnow, fqsurf, fevap, falbe, fluxlat, rain_fall, &
572           snow_fall, fsolsw, fsollw, frugs, agesno, rugoro, d_t_vdf, d_q_vdf, &           snow_fall, fsolsw, fsollw, frugs, agesno, rugoro, d_t_vdf, d_q_vdf, &
573           d_u_vdf, d_v_vdf, d_ts, flux_t, flux_q, flux_u, flux_v, cdragh, &           d_u_vdf, d_v_vdf, d_ts, flux_t, flux_q, flux_u, flux_v, cdragh, &
574           cdragm, q2, dsens, devap, ycoefh, t2m, q2m, u10m_srf, v10m_srf, &           cdragm, q2, dsens, devap, coefh, t2m, q2m, u10m_srf, v10m_srf, &
575           pblh, capCL, oliqCL, cteiCL, pblT, therm, trmb1, trmb2, trmb3, plcl, &           pblh, capCL, oliqCL, cteiCL, pblT, therm, trmb1, trmb2, trmb3, plcl, &
576           fqcalving, ffonte, run_off_lic_0)           fqcalving, ffonte, run_off_lic_0)
577    
# Line 897  contains Line 897  contains
897    
898      IF (ok_orodr) THEN      IF (ok_orodr) THEN
899         ! S\'election des points pour lesquels le sch\'ema est actif :         ! S\'election des points pour lesquels le sch\'ema est actif :
        igwd = 0  
900         DO i = 1, klon         DO i = 1, klon
901            itest(i) = 0            ktest(i) = 0
902            IF (zpic(i) - zmea(i) > 100. .AND. zstd(i) > 10.) THEN            IF (zpic(i) - zmea(i) > 100. .AND. zstd(i) > 10.) THEN
903               itest(i) = 1               ktest(i) = 1
              igwd = igwd + 1  
904            ENDIF            ENDIF
905         ENDDO         ENDDO
906    
907         CALL drag_noro(klon, llm, dtphys, paprs, play, zmea, zstd, zsig, zgam, &         CALL drag_noro(dtphys, paprs, play, zmea, zstd, zsig, zgam, zthe, &
908              zthe, zpic, zval, itest, t_seri, u_seri, v_seri, zulow, zvlow, &              zpic, zval, ktest, t_seri, u_seri, v_seri, zulow, zvlow, zustrdr, &
909              zustrdr, zvstrdr, d_t_oro, d_u_oro, d_v_oro)              zvstrdr, d_t_oro, d_u_oro, d_v_oro)
910    
911         ! ajout des tendances         ! ajout des tendances
912         DO k = 1, llm         DO k = 1, llm
# Line 922  contains Line 920  contains
920    
921      IF (ok_orolf) THEN      IF (ok_orolf) THEN
922         ! S\'election des points pour lesquels le sch\'ema est actif :         ! S\'election des points pour lesquels le sch\'ema est actif :
        igwd = 0  
923         DO i = 1, klon         DO i = 1, klon
924            itest(i) = 0            ktest(i) = 0
925            IF (zpic(i) - zmea(i) > 100.) THEN            IF (zpic(i) - zmea(i) > 100.) THEN
926               itest(i) = 1               ktest(i) = 1
              igwd = igwd + 1  
927            ENDIF            ENDIF
928         ENDDO         ENDDO
929    
930         CALL lift_noro(dtphys, paprs, play, zmea, zstd, zpic, itest, t_seri, &         CALL lift_noro(dtphys, paprs, play, zmea, zstd, zpic, ktest, t_seri, &
931              u_seri, v_seri, zulow, zvlow, zustrli, zvstrli, d_t_lif, &              u_seri, v_seri, zulow, zvlow, zustrli, zvstrli, d_t_lif, &
932              d_u_lif, d_v_lif)              d_u_lif, d_v_lif)
933    
# Line 945  contains Line 941  contains
941         ENDDO         ENDDO
942      ENDIF      ENDIF
943    
944      ! Stress n\'ecessaires : toute la physique      CALL aaam_bud(rg, romega, pphis, zustrdr, zustrli, &
945             sum((u_seri - u) / dtphys * zmasse, dim = 2), zvstrdr, &
946      DO i = 1, klon           zvstrli, sum((v_seri - v) / dtphys * zmasse, dim = 2), paprs, u, v, &
947         zustrph(i) = 0.           aam, torsfc)
        zvstrph(i) = 0.  
     ENDDO  
     DO k = 1, llm  
        DO i = 1, klon  
           zustrph(i) = zustrph(i) + (u_seri(i, k) - u(i, k)) / dtphys &  
                * zmasse(i, k)  
           zvstrph(i) = zvstrph(i) + (v_seri(i, k) - v(i, k)) / dtphys &  
                * zmasse(i, k)  
        ENDDO  
     ENDDO  
   
     CALL aaam_bud(rg, romega, pphis, zustrdr, zustrli, zustrph, zvstrdr, &  
          zvstrli, zvstrph, paprs, u, v, aam, torsfc)  
948    
949      ! Calcul des tendances traceurs      ! Calcul des tendances traceurs
950      call phytrac(julien, time, firstcal, lafin, dtphys, t, paprs, play, mfu, &      call phytrac(julien, time, firstcal, lafin, dtphys, t, paprs, play, mfu, &
951           mfd, pde_u, pen_d, ycoefh, fm_therm, entr_therm, u(:, 1), v(:, 1), &           mfd, pde_u, pen_d, coefh, cdragh, fm_therm, entr_therm, u(:, 1), &
952           ftsol, pctsrf, frac_impa, frac_nucl, da, phi, mp, upwd, dnwd, &           v(:, 1), ftsol, pctsrf, frac_impa, frac_nucl, da, phi, mp, upwd, &
953           tr_seri, zmasse, ncid_startphy)           dnwd, tr_seri, zmasse, ncid_startphy)
954    
955      ! Calculer le transport de l'eau et de l'energie (diagnostique)      ! Calculer le transport de l'eau et de l'energie (diagnostique)
956      CALL transp(paprs, t_seri, q_seri, u_seri, v_seri, zphi, ve, vq, ue, uq)      CALL transp(paprs, t_seri, q_seri, u_seri, v_seri, zphi, ve, vq, ue, uq)

Legend:
Removed from v.227  
changed lines
  Added in v.247

  ViewVC Help
Powered by ViewVC 1.1.21