/[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 223 by guez, Fri Apr 28 13:22:36 2017 UTC revision 227 by guez, Thu Nov 2 15:47:03 2017 UTC
# Line 26  contains Line 26  contains
26      use comconst, only: dtphys      use comconst, only: dtphys
27      USE comgeomphy, ONLY: airephy      USE comgeomphy, ONLY: airephy
28      USE concvl_m, ONLY: concvl      USE concvl_m, ONLY: concvl
29      USE conf_gcm_m, ONLY: offline, lmt_pas      USE conf_gcm_m, ONLY: lmt_pas
30      USE conf_phys_m, ONLY: conf_phys      USE conf_phys_m, ONLY: conf_phys
31      use conflx_m, only: conflx      use conflx_m, only: conflx
32      USE ctherm, ONLY: iflag_thermals, nsplit_thermals      USE ctherm, ONLY: iflag_thermals, nsplit_thermals
# Line 44  contains Line 44  contains
44      USE indicesol, ONLY: clnsurf, epsfra, is_lic, is_oce, is_sic, is_ter, &      USE indicesol, ONLY: clnsurf, epsfra, is_lic, is_oce, is_sic, is_ter, &
45           nbsrf           nbsrf
46      USE ini_histins_m, ONLY: ini_histins, nid_ins      USE ini_histins_m, ONLY: ini_histins, nid_ins
47        use lift_noro_m, only: lift_noro
48      use netcdf95, only: NF95_CLOSE      use netcdf95, only: NF95_CLOSE
49      use newmicro_m, only: newmicro      use newmicro_m, only: newmicro
50      use nr_util, only: assert      use nr_util, only: assert
51      use nuage_m, only: nuage      use nuage_m, only: nuage
52      USE orbite_m, ONLY: orbite      USE orbite_m, ONLY: orbite
53      USE ozonecm_m, ONLY: ozonecm      USE ozonecm_m, ONLY: ozonecm
54      USE phyetat0_m, ONLY: phyetat0, rlat, rlon      USE phyetat0_m, ONLY: phyetat0
55      USE phyredem_m, ONLY: phyredem      USE phyredem_m, ONLY: phyredem
56      USE phyredem0_m, ONLY: phyredem0      USE phyredem0_m, ONLY: phyredem0
     USE phystokenc_m, ONLY: phystokenc  
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
# 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    
     ! Pour phytrac :  
187      REAL ycoefh(klon, llm) ! coef d'echange pour phytrac      REAL ycoefh(klon, llm) ! coef d'echange pour phytrac
     REAL yu1(klon) ! vents dans la premiere couche U  
     REAL yv1(klon) ! vents dans la premiere couche V  
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 390  contains Line 387  contains
387      REAL, save:: t2m(klon, nbsrf), q2m(klon, nbsrf)      REAL, save:: t2m(klon, nbsrf), q2m(klon, nbsrf)
388      ! temperature and humidity at 2 m      ! temperature and humidity at 2 m
389    
390      REAL, save:: u10m(klon, nbsrf), v10m(klon, nbsrf) ! vents a 10 m      REAL, save:: u10m_srf(klon, nbsrf), v10m_srf(klon, nbsrf)
391        ! composantes du vent \`a 10 m
392        
393      REAL zt2m(klon), zq2m(klon) ! température, humidité 2 m moyenne sur 1 maille      REAL zt2m(klon), zq2m(klon) ! température, humidité 2 m moyenne sur 1 maille
394      REAL zu10m(klon), zv10m(klon) ! vents a 10 m moyennes sur 1 maille      REAL u10m(klon), v10m(klon) ! vent \`a 10 m moyenn\' sur les sous-surfaces
395    
396      ! Aerosol effects:      ! Aerosol effects:
397    
# Line 420  contains Line 419  contains
419    
420      test_firstcal: IF (firstcal) THEN      test_firstcal: IF (firstcal) THEN
421         ! initialiser         ! initialiser
422         u10m = 0.         u10m_srf = 0.
423         v10m = 0.         v10m_srf = 0.
424         t2m = 0.         t2m = 0.
425         q2m = 0.         q2m = 0.
426         ffonte = 0.         ffonte = 0.
# Line 572  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, yu1, yv1, t2m, q2m, u10m, v10m, &           cdragm, q2, dsens, devap, ycoefh, 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 599  contains Line 598  contains
598      zxfluxlat = sum(fluxlat * pctsrf, dim = 2)      zxfluxlat = sum(fluxlat * pctsrf, dim = 2)
599      zt2m = sum(t2m * pctsrf, dim = 2)      zt2m = sum(t2m * pctsrf, dim = 2)
600      zq2m = sum(q2m * pctsrf, dim = 2)      zq2m = sum(q2m * pctsrf, dim = 2)
601      zu10m = sum(u10m * pctsrf, dim = 2)      u10m = sum(u10m_srf * pctsrf, dim = 2)
602      zv10m = sum(v10m * pctsrf, dim = 2)      v10m = sum(v10m_srf * pctsrf, dim = 2)
603      zxffonte = sum(ffonte * pctsrf, dim = 2)      zxffonte = sum(ffonte * pctsrf, dim = 2)
604      zxfqcalving = sum(fqcalving * pctsrf, dim = 2)      zxfqcalving = sum(fqcalving * pctsrf, dim = 2)
605      s_pblh = sum(pblh * pctsrf, dim = 2)      s_pblh = sum(pblh * pctsrf, dim = 2)
# Line 621  contains Line 620  contains
620               ftsol(i, nsrf) = tsol(i)               ftsol(i, nsrf) = tsol(i)
621               t2m(i, nsrf) = zt2m(i)               t2m(i, nsrf) = zt2m(i)
622               q2m(i, nsrf) = zq2m(i)               q2m(i, nsrf) = zq2m(i)
623               u10m(i, nsrf) = zu10m(i)               u10m_srf(i, nsrf) = u10m(i)
624               v10m(i, nsrf) = zv10m(i)               v10m_srf(i, nsrf) = v10m(i)
625               ffonte(i, nsrf) = zxffonte(i)               ffonte(i, nsrf) = zxffonte(i)
626               fqcalving(i, nsrf) = zxfqcalving(i)               fqcalving(i, nsrf) = zxfqcalving(i)
627               pblh(i, nsrf) = s_pblh(i)               pblh(i, nsrf) = s_pblh(i)
# Line 932  contains Line 931  contains
931            ENDIF            ENDIF
932         ENDDO         ENDDO
933    
934         CALL lift_noro(klon, llm, dtphys, paprs, play, rlat, zmea, zstd, zpic, &         CALL lift_noro(dtphys, paprs, play, zmea, zstd, zpic, itest, t_seri, &
935              itest, t_seri, u_seri, v_seri, zulow, zvlow, zustrli, zvstrli, &              u_seri, v_seri, zulow, zvlow, zustrli, zvstrli, d_t_lif, &
936              d_t_lif, d_u_lif, d_v_lif)              d_u_lif, d_v_lif)
937    
938         ! Ajout des tendances :         ! Ajout des tendances :
939         DO k = 1, llm         DO k = 1, llm
# Line 961  contains Line 960  contains
960         ENDDO         ENDDO
961      ENDDO      ENDDO
962    
963      CALL aaam_bud(rg, romega, rlat, rlon, pphis, zustrdr, zustrli, zustrph, &      CALL aaam_bud(rg, romega, pphis, zustrdr, zustrli, zustrph, zvstrdr, &
964           zvstrdr, zvstrli, zvstrph, paprs, u, v, aam, torsfc)           zvstrli, zvstrph, paprs, u, v, aam, torsfc)
965    
966      ! Calcul des tendances traceurs      ! Calcul des tendances traceurs
967      call phytrac(julien, time, firstcal, lafin, dtphys, t, paprs, play, mfu, &      call phytrac(julien, time, firstcal, lafin, dtphys, t, paprs, play, mfu, &
968           mfd, pde_u, pen_d, ycoefh, fm_therm, entr_therm, yu1, yv1, ftsol, &           mfd, pde_u, pen_d, ycoefh, fm_therm, entr_therm, u(:, 1), v(:, 1), &
969           pctsrf, frac_impa, frac_nucl, da, phi, mp, upwd, dnwd, tr_seri, &           ftsol, pctsrf, frac_impa, frac_nucl, da, phi, mp, upwd, dnwd, &
970           zmasse, ncid_startphy)           tr_seri, zmasse, ncid_startphy)
   
     IF (offline) call phystokenc(dtphys, t, mfu, mfd, pen_u, pde_u, pen_d, &  
          pde_d, fm_therm, entr_therm, ycoefh, yu1, yv1, ftsol, pctsrf, &  
          frac_impa, frac_nucl, pphis, airephy)  
971    
972      ! Calculer le transport de l'eau et de l'energie (diagnostique)      ! Calculer le transport de l'eau et de l'energie (diagnostique)
973      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)
# Line 1041  contains Line 1036  contains
1036      CALL histwrite_phy("tsol", tsol)      CALL histwrite_phy("tsol", tsol)
1037      CALL histwrite_phy("t2m", zt2m)      CALL histwrite_phy("t2m", zt2m)
1038      CALL histwrite_phy("q2m", zq2m)      CALL histwrite_phy("q2m", zq2m)
1039      CALL histwrite_phy("u10m", zu10m)      CALL histwrite_phy("u10m", u10m)
1040      CALL histwrite_phy("v10m", zv10m)      CALL histwrite_phy("v10m", v10m)
1041      CALL histwrite_phy("snow", snow_fall)      CALL histwrite_phy("snow", snow_fall)
1042      CALL histwrite_phy("cdrm", cdragm)      CALL histwrite_phy("cdrm", cdragm)
1043      CALL histwrite_phy("cdrh", cdragh)      CALL histwrite_phy("cdrh", cdragh)
# Line 1069  contains Line 1064  contains
1064         CALL histwrite_phy("tauy_"//clnsurf(nsrf), flux_v(:, nsrf))         CALL histwrite_phy("tauy_"//clnsurf(nsrf), flux_v(:, nsrf))
1065         CALL histwrite_phy("rugs_"//clnsurf(nsrf), frugs(:, nsrf))         CALL histwrite_phy("rugs_"//clnsurf(nsrf), frugs(:, nsrf))
1066         CALL histwrite_phy("albe_"//clnsurf(nsrf), falbe(:, nsrf))         CALL histwrite_phy("albe_"//clnsurf(nsrf), falbe(:, nsrf))
1067           CALL histwrite_phy("u10m_"//clnsurf(nsrf), u10m_srf(:, nsrf))
1068           CALL histwrite_phy("v10m_"//clnsurf(nsrf), v10m_srf(:, nsrf))
1069      END DO      END DO
1070    
1071      CALL histwrite_phy("albs", albsol)      CALL histwrite_phy("albs", albsol)

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

  ViewVC Help
Powered by ViewVC 1.1.21