Changeset 5932
- Timestamp:
- Dec 15, 2025, 5:25:26 PM (2 hours ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/PBLSURF_GPUPORT/libf/phylmd/pbl_surface_mod.F90
r5923 r5932 1330 1330 ytemp10, ytemp11, ytemp12, ytemp13, ytemp14, ytemp15, ytemp16, ytemp17, ytemp18, ytemp19) 1331 1331 1332 1332 DEALLOCATE(ytemp00, ytemp01, ytemp02, ytemp03, ytemp04, ytemp05, ytemp06, ytemp07, ytemp08, ytemp09) 1333 DEALLOCATE(ytemp10, ytemp11, ytemp12, ytemp13, ytemp14, ytemp15, ytemp16, ytemp17, ytemp18, ytemp19) 1334 1333 1335 ENDDO 1334 1336 1335 DEALLOCATE(ytemp00, ytemp01, ytemp02, ytemp03, ytemp04, ytemp05, ytemp06, ytemp07, ytemp08, ytemp09)1336 DEALLOCATE(ytemp10, ytemp11, ytemp12, ytemp13, ytemp14, ytemp15, ytemp16, ytemp17, ytemp18, ytemp19)1337 1338 1337 CALL pbl_surface_uncompressed_post( & 1339 1338 itap, dtime, & … … 2552 2551 REAL, DIMENSION(klon,klev+1,nbsrf+1), INTENT(INOUT) :: eps_x ! TKE dissipation rate 2553 2552 2554 REAL, DIMENSION(klon), INTENT( OUT) :: cdragh ! drag coefficient for T and Q2555 REAL, DIMENSION(klon), INTENT( OUT) :: cdragm ! drag coefficient for wind2556 REAL, DIMENSION(klon), INTENT( OUT) :: alb3_lic2557 REAL, DIMENSION(klon), INTENT( OUT) :: icesub_lic ! ice (no snow!) sublimation over ice sheet2553 REAL, DIMENSION(klon), INTENT(INOUT) :: cdragh ! drag coefficient for T and Q 2554 REAL, DIMENSION(klon), INTENT(INOUT) :: cdragm ! drag coefficient for wind 2555 REAL, DIMENSION(klon), INTENT(INOUT) :: alb3_lic 2556 REAL, DIMENSION(klon), INTENT(INOUT) :: icesub_lic ! ice (no snow!) sublimation over ice sheet 2558 2557 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: d_t_w ! ! 2559 2558 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: d_q_w ! ! Tendances dans les poches … … 2574 2573 ! coef for turbulent diffusion of U and V (?), mean for each grid point 2575 2574 #ifdef ISO 2576 REAL, DIMENSION(ntraciso,klon), INTENT( OUT) :: zxxtevap ! water vapour flux at surface, positiv upwards2577 REAL, DIMENSION(ntraciso,klon, klev), INTENT( OUT) :: d_xt ! change in water vapour2578 REAL, DIMENSION(klon), INTENT( OUT) :: runoff_diag2579 REAL, DIMENSION(niso,klon), INTENT( OUT) :: xtrunoff_diag2580 REAL, DIMENSION(ntraciso,klon,klev), INTENT( OUT) :: d_xt_w2581 REAL, DIMENSION(ntraciso,klon,klev), INTENT( OUT) :: d_xt_x2575 REAL, DIMENSION(ntraciso,klon), INTENT(INOUT) :: zxxtevap ! water vapour flux at surface, positiv upwards 2576 REAL, DIMENSION(ntraciso,klon, klev), INTENT(INOUT) :: d_xt ! change in water vapour 2577 REAL, DIMENSION(klon), INTENT(INOUT) :: runoff_diag 2578 REAL, DIMENSION(niso,klon), INTENT(INOUT) :: xtrunoff_diag 2579 REAL, DIMENSION(ntraciso,klon,klev), INTENT(INOUT) :: d_xt_w 2580 REAL, DIMENSION(ntraciso,klon,klev), INTENT(INOUT) :: d_xt_x 2582 2581 #endif 2583 2582 ! Output only for diagnostics … … 2589 2588 REAL, DIMENSION(klon), INTENT(INOUT) :: kh_x 2590 2589 REAL, DIMENSION(klon), INTENT(INOUT) :: kh_w 2591 REAL, DIMENSION(klon), INTENT( OUT) :: slab_wfbils! heat balance at surface only for slab at ocean points2592 REAL, DIMENSION(klon), INTENT( OUT) :: qsol ! water height in the soil (mm)2593 REAL, DIMENSION(klon), INTENT( OUT) :: s_pblh ! height of the planetary boundary layer(HPBL)2594 REAL, DIMENSION(klon), INTENT( OUT) :: s_pblh_x ! height of the PBL in the off-wake region2595 REAL, DIMENSION(klon), INTENT( OUT) :: s_pblh_w ! height of the PBL in the wake region2596 REAL, DIMENSION(klon), INTENT( OUT) :: delta_qsurf! humidity difference at surface, mean for each grid point2590 REAL, DIMENSION(klon), INTENT(INOUT) :: slab_wfbils! heat balance at surface only for slab at ocean points 2591 REAL, DIMENSION(klon), INTENT(INOUT) :: qsol ! water height in the soil (mm) 2592 REAL, DIMENSION(klon), INTENT(INOUT) :: s_pblh ! height of the planetary boundary layer(HPBL) 2593 REAL, DIMENSION(klon), INTENT(INOUT) :: s_pblh_x ! height of the PBL in the off-wake region 2594 REAL, DIMENSION(klon), INTENT(INOUT) :: s_pblh_w ! height of the PBL in the wake region 2595 REAL, DIMENSION(klon), INTENT(INOUT) :: delta_qsurf! humidity difference at surface, mean for each grid point 2597 2596 REAL, DIMENSION(klon), INTENT(INOUT) :: rh2m ! relative humidity at 2m 2598 2597 REAL, DIMENSION(klon, nbsrf+1), INTENT(INOUT) :: z0m,z0h ! rugosity length (m) … … 2600 2599 REAL, DIMENSION(klon, nbsrf), INTENT(IN) :: solsw ! net shortwave radiation at surface 2601 2600 REAL, DIMENSION(klon, nbsrf), INTENT(IN) :: sollw ! net longwave radiation at surface 2602 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: d_ts ! change in temperature at surface2601 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: d_ts ! change in temperature at surface 2603 2602 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: evap ! evaporation at surface 2604 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: fluxlat ! latent flux2605 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: t2m ! temperature at 2 meter height2606 REAL, DIMENSION(klon, klev, nbsrf), INTENT( OUT) :: flux_t ! sensible heat flux (CpT) J/m**2/s (W/m**2)2603 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: fluxlat ! latent flux 2604 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: t2m ! temperature at 2 meter height 2605 REAL, DIMENSION(klon, klev, nbsrf), INTENT(INOUT) :: flux_t ! sensible heat flux (CpT) J/m**2/s (W/m**2) 2607 2606 ! positve orientation downwards 2608 REAL, DIMENSION(klon, klev, nbsrf), INTENT( OUT) :: flux_u ! u wind tension (kg m/s)/(m**2 s) or Pascal2609 REAL, DIMENSION(klon, klev, nbsrf), INTENT( OUT) :: flux_v ! v wind tension (kg m/s)/(m**2 s) or Pascal2607 REAL, DIMENSION(klon, klev, nbsrf), INTENT(INOUT) :: flux_u ! u wind tension (kg m/s)/(m**2 s) or Pascal 2608 REAL, DIMENSION(klon, klev, nbsrf), INTENT(INOUT) :: flux_v ! v wind tension (kg m/s)/(m**2 s) or Pascal 2610 2609 REAL, DIMENSION(klon, klev, nbsrf), INTENT(INOUT) :: treedrg ! tree drag (m) 2611 2610 !AM heterogeneous continental sub-surfaces … … 2621 2620 REAL, DIMENSION(klon, nsoilmx, nbtersrf), INTENT(INOUT) :: tsoil_tersrf ! soil temperature of continental sub-surfaces (K) 2622 2621 #ifdef ISO 2623 REAL, DIMENSION(niso,klon), INTENT( OUT) :: xtsol ! water height in the soil (mm)2622 REAL, DIMENSION(niso,klon), INTENT(INOUT) :: xtsol ! water height in the soil (mm) 2624 2623 REAL, DIMENSION(ntraciso,klon, nbsrf) :: xtevap ! evaporation at surface 2625 REAL, DIMENSION(klon), INTENT( OUT) :: h1_diag ! just diagnostic, not useful2624 REAL, DIMENSION(klon), INTENT(INOUT) :: h1_diag ! just diagnostic, not useful 2626 2625 #endif 2627 2626 2628 2627 ! Output not needed 2629 REAL, DIMENSION(klon), INTENT( OUT) :: dflux_t ! change of sensible heat flux2630 REAL, DIMENSION(klon), INTENT( OUT) :: dflux_q ! change of water vapour flux2631 REAL, DIMENSION(klon, nbsrf),INTENT( OUT) :: q2m ! water vapour at 2 meter height2632 REAL, DIMENSION(klon, klev, nbsrf), INTENT( OUT) :: flux_q ! water vapour flux(latent flux) (kg/m**2/s)2633 REAL, DIMENSION(klon, klev, nbsrf), INTENT( OUT) :: flux_qbs ! blowind snow vertical flux (kg/m**22628 REAL, DIMENSION(klon), INTENT(INOUT) :: dflux_t ! change of sensible heat flux 2629 REAL, DIMENSION(klon), INTENT(INOUT) :: dflux_q ! change of water vapour flux 2630 REAL, DIMENSION(klon, nbsrf),INTENT(INOUT) :: q2m ! water vapour at 2 meter height 2631 REAL, DIMENSION(klon, klev, nbsrf), INTENT(INOUT) :: flux_q ! water vapour flux(latent flux) (kg/m**2/s) 2632 REAL, DIMENSION(klon, klev, nbsrf), INTENT(INOUT) :: flux_qbs ! blowind snow vertical flux (kg/m**2 2634 2633 2635 2634 #ifdef ISO 2636 REAL, DIMENSION(ntraciso,klon), INTENT( OUT) :: dflux_xt ! change of water vapour flux2637 REAL, DIMENSION(niso,klon), INTENT( OUT) :: zxxtsnow ! snow at surface, mean for each grid point2638 REAL, DIMENSION(ntraciso,klon, klev), INTENT( OUT) :: zxfluxxt ! water vapour flux, mean for each grid point2639 REAL, DIMENSION(ntraciso,klon, klev, nbsrf), INTENT( OUT) :: flux_xt ! water vapour flux(latent flux) (kg/m**2/s)2640 #endif 2641 2642 REAL, DIMENSION(klon), INTENT( OUT) :: qsnow ! snow water content2643 REAL, DIMENSION(klon), INTENT( OUT) :: snowhgt ! snow height2644 REAL, DIMENSION(klon), INTENT( OUT) :: to_ice ! snow passed to ice2645 REAL, DIMENSION(klon), INTENT( OUT) :: sissnow ! snow in snow model2646 REAL, DIMENSION(klon), INTENT( OUT) :: runoff ! runoff on land ice2635 REAL, DIMENSION(ntraciso,klon), INTENT(INOUT) :: dflux_xt ! change of water vapour flux 2636 REAL, DIMENSION(niso,klon), INTENT(INOUT) :: zxxtsnow ! snow at surface, mean for each grid point 2637 REAL, DIMENSION(ntraciso,klon, klev), INTENT(INOUT) :: zxfluxxt ! water vapour flux, mean for each grid point 2638 REAL, DIMENSION(ntraciso,klon, klev, nbsrf), INTENT(INOUT) :: flux_xt ! water vapour flux(latent flux) (kg/m**2/s) 2639 #endif 2640 2641 REAL, DIMENSION(klon), INTENT(INOUT) :: qsnow ! snow water content 2642 REAL, DIMENSION(klon), INTENT(INOUT) :: snowhgt ! snow height 2643 REAL, DIMENSION(klon), INTENT(INOUT) :: to_ice ! snow passed to ice 2644 REAL, DIMENSION(klon), INTENT(INOUT) :: sissnow ! snow in snow model 2645 REAL, DIMENSION(klon), INTENT(INOUT) :: runoff ! runoff on land ice 2647 2646 REAL, DIMENSION(klon), INTENT(INOUT) :: hice ! hice 2648 2647 REAL, DIMENSION(klon), INTENT(INOUT) :: tice ! tice … … 2659 2658 ! variables temporaires en "klon" (nom compressée) passée en argument pour les sous-surface 2660 2659 2661 INTEGER, DIMENSION(klon, nbsrf, 6), INTENT( OUT) :: n2mout2662 INTEGER, DIMENSION(klon, nbsrf, 6), INTENT( OUT) :: n2mout_x2663 INTEGER, DIMENSION(klon, nbsrf, 6), INTENT( OUT) :: n2mout_w2664 REAL, DIMENSION(klon, klev), INTENT( OUT) :: d_u_x2665 REAL, DIMENSION(klon, klev), INTENT( OUT) :: d_u_w2666 REAL, DIMENSION(klon, klev), INTENT( OUT) :: d_v_x2667 REAL, DIMENSION(klon, klev), INTENT( OUT) :: d_v_w2660 INTEGER, DIMENSION(klon, nbsrf, 6), INTENT(INOUT) :: n2mout 2661 INTEGER, DIMENSION(klon, nbsrf, 6), INTENT(INOUT) :: n2mout_x 2662 INTEGER, DIMENSION(klon, nbsrf, 6), INTENT(INOUT) :: n2mout_w 2663 REAL, DIMENSION(klon, klev), INTENT(INOUT) :: d_u_x 2664 REAL, DIMENSION(klon, klev), INTENT(INOUT) :: d_u_w 2665 REAL, DIMENSION(klon, klev), INTENT(INOUT) :: d_v_x 2666 REAL, DIMENSION(klon, klev), INTENT(INOUT) :: d_v_w 2668 2667 REAL, DIMENSION(klon, nbsrf), INTENT(IN) :: windsp 2669 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: t2m_x2670 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: q2m_x2668 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: t2m_x 2669 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: q2m_x 2671 2670 REAL, DIMENSION(klon), INTENT(INOUT) :: rh2m_x 2672 2671 REAL, DIMENSION(klon), INTENT(INOUT) :: qsat2m_x 2673 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: u10m_x2674 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: v10m_x2675 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: ustar_x2676 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: wstar_x2677 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: pblh_x2678 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: plcl_x2679 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: capCL_x2680 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: oliqCL_x2681 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: cteiCL_x2682 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: pblt_x2683 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: therm_x2684 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: trmb1_x2685 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: trmb2_x2686 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: trmb3_x2687 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: t2m_w2688 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: q2m_w2672 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: u10m_x 2673 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: v10m_x 2674 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: ustar_x 2675 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: wstar_x 2676 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: pblh_x 2677 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: plcl_x 2678 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: capCL_x 2679 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: oliqCL_x 2680 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: cteiCL_x 2681 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: pblt_x 2682 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: therm_x 2683 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: trmb1_x 2684 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: trmb2_x 2685 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: trmb3_x 2686 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: t2m_w 2687 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: q2m_w 2689 2688 REAL, DIMENSION(klon), INTENT(INOUT) :: rh2m_w 2690 2689 REAL, DIMENSION(klon), INTENT(INOUT) :: qsat2m_w 2691 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: u10m_w2692 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: v10m_w2693 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: ustar_w2694 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: wstar_w2690 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: u10m_w 2691 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: v10m_w 2692 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: ustar_w 2693 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: wstar_w 2695 2694 ! 2696 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: pblh_w2697 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: plcl_w2698 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: capCL_w2699 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: oliqCL_w2700 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: cteiCL_w2701 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: pblt_w2702 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: therm_w2703 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: trmb1_w2704 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: trmb2_w2705 REAL, DIMENSION(klon, nbsrf), INTENT( OUT) :: trmb3_w2706 ! 2707 REAL, DIMENSION(klon,nbsrf), INTENT( OUT) :: pblh ! height of the planetary boundary layer2708 REAL, DIMENSION(klon,nbsrf), INTENT( OUT) :: plcl ! condensation level2709 REAL, DIMENSION(klon,nbsrf), INTENT( OUT) :: capCL2710 REAL, DIMENSION(klon,nbsrf), INTENT( OUT) :: oliqCL2711 REAL, DIMENSION(klon,nbsrf), INTENT( OUT) :: cteiCL2712 REAL, DIMENSION(klon,nbsrf), INTENT( OUT) :: pblT2713 REAL, DIMENSION(klon,nbsrf), INTENT( OUT) :: therm2714 REAL, DIMENSION(klon,nbsrf), INTENT( OUT) :: trmb1 ! deep cape2715 REAL, DIMENSION(klon,nbsrf), INTENT( OUT) :: trmb2 ! inhibition2716 REAL, DIMENSION(klon,nbsrf), INTENT( OUT) :: trmb3 ! point Omega2695 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: pblh_w 2696 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: plcl_w 2697 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: capCL_w 2698 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: oliqCL_w 2699 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: cteiCL_w 2700 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: pblt_w 2701 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: therm_w 2702 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: trmb1_w 2703 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: trmb2_w 2704 REAL, DIMENSION(klon, nbsrf), INTENT(INOUT) :: trmb3_w 2705 ! 2706 REAL, DIMENSION(klon,nbsrf), INTENT(INOUT) :: pblh ! height of the planetary boundary layer 2707 REAL, DIMENSION(klon,nbsrf), INTENT(INOUT) :: plcl ! condensation level 2708 REAL, DIMENSION(klon,nbsrf), INTENT(INOUT) :: capCL 2709 REAL, DIMENSION(klon,nbsrf), INTENT(INOUT) :: oliqCL 2710 REAL, DIMENSION(klon,nbsrf), INTENT(INOUT) :: cteiCL 2711 REAL, DIMENSION(klon,nbsrf), INTENT(INOUT) :: pblT 2712 REAL, DIMENSION(klon,nbsrf), INTENT(INOUT) :: therm 2713 REAL, DIMENSION(klon,nbsrf), INTENT(INOUT) :: trmb1 ! deep cape 2714 REAL, DIMENSION(klon,nbsrf), INTENT(INOUT) :: trmb2 ! inhibition 2715 REAL, DIMENSION(klon,nbsrf), INTENT(INOUT) :: trmb3 ! point Omega 2717 2716 REAL, DIMENSION(klon, nbsrf), INTENT(IN) :: alb ! mean albedo for whole SW interval 2718 REAL, DIMENSION(klon,nbsrf), INTENT( OUT) :: snowerosion2717 REAL, DIMENSION(klon,nbsrf), INTENT(INOUT) :: snowerosion 2719 2718 INTEGER, INTENT(INOUT) :: iflag_split_ref 2720 2719 … … 2860 2859 REAL, DIMENSION(knon,klev) :: y_d_t_x, y_d_q_x, y_d_t_w, y_d_q_w 2861 2860 REAL, DIMENSION(knon,klev) :: y_d_t_diss_x, y_d_t_diss_w 2862 REAL, DIMENSION(k non,klev), INTENT(INOUT) :: d_t_diss_x, d_t_diss_w2861 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: d_t_diss_x, d_t_diss_w 2863 2862 REAL, DIMENSION(knon,klev) :: y_d_u_x, y_d_v_x, y_d_u_w, y_d_v_w 2864 2863 REAL, DIMENSION(klon, klev, nbsrf), INTENT(INOUT) :: flux_t_x, flux_q_x, flux_t_w, flux_q_w
Note: See TracChangeset
for help on using the changeset viewer.
