- Timestamp:
- Nov 17, 2025, 3:50:06 PM (8 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/PBLSURF_GPUPORT/libf/phylmd/ocean_slab_mod.f90
r5662 r5868 372 372 INTEGER, INTENT(IN) :: jour ! day in year (for Q-Flux) 373 373 INTEGER, INTENT(IN) :: knon ! number of points 374 INTEGER, DIMENSION(k lon), INTENT(IN) :: knindex374 INTEGER, DIMENSION(knon), INTENT(IN) :: knindex 375 375 REAL, INTENT(IN) :: dtime ! timestep (s) 376 REAL, DIMENSION(k lon), INTENT(IN) :: p1lay377 REAL, DIMENSION(k lon), INTENT(IN) :: cdragh, cdragq, cdragm376 REAL, DIMENSION(knon), INTENT(IN) :: p1lay 377 REAL, DIMENSION(knon), INTENT(IN) :: cdragh, cdragq, cdragm 378 378 ! drag coefficients 379 REAL, DIMENSION(k lon), INTENT(IN) :: precip_rain, precip_snow380 REAL, DIMENSION(k lon), INTENT(IN) :: temp_air, spechum ! near surface T, q381 REAL, DIMENSION(k lon), INTENT(IN) :: AcoefH, AcoefQ, BcoefH, BcoefQ382 REAL, DIMENSION(k lon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV379 REAL, DIMENSION(knon), INTENT(IN) :: precip_rain, precip_snow 380 REAL, DIMENSION(knon), INTENT(IN) :: temp_air, spechum ! near surface T, q 381 REAL, DIMENSION(knon), INTENT(IN) :: AcoefH, AcoefQ, BcoefH, BcoefQ 382 REAL, DIMENSION(knon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 383 383 ! exchange coefficients for boundary layer scheme 384 REAL, DIMENSION(k lon), INTENT(IN) :: ps ! surface pressure385 REAL, DIMENSION(k lon), INTENT(IN) :: u1, v1, gustiness ! surface wind386 REAL, DIMENSION(k lon), INTENT(IN) :: tsurf_in ! surface temperature387 REAL, DIMENSION(k lon), INTENT(INOUT) :: radsol ! net surface radiative flux384 REAL, DIMENSION(knon), INTENT(IN) :: ps ! surface pressure 385 REAL, DIMENSION(knon), INTENT(IN) :: u1, v1, gustiness ! surface wind 386 REAL, DIMENSION(knon), INTENT(IN) :: tsurf_in ! surface temperature 387 REAL, DIMENSION(knon), INTENT(INOUT) :: radsol ! net surface radiative flux 388 388 389 389 ! In/Output arguments 390 390 !************************************************************************************ 391 REAL, DIMENSION(k lon), INTENT(INOUT) :: snow ! in kg/m2391 REAL, DIMENSION(knon), INTENT(INOUT) :: snow ! in kg/m2 392 392 393 393 ! Output arguments 394 394 !************************************************************************************ 395 REAL, DIMENSION(k lon), INTENT(OUT) :: qsurf396 REAL, DIMENSION(k lon), INTENT(OUT) :: evap, fluxsens, fluxlat397 REAL, DIMENSION(k lon), INTENT(OUT) :: flux_u1, flux_v1398 REAL, DIMENSION(k lon), INTENT(OUT) :: tsurf_new ! new surface tempearture399 REAL, DIMENSION(k lon), INTENT(OUT) :: dflux_s, dflux_l400 REAL, DIMENSION(klon), INTENT(OUT) :: slab_bils 395 REAL, DIMENSION(knon), INTENT(OUT) :: qsurf 396 REAL, DIMENSION(knon), INTENT(OUT) :: evap, fluxsens, fluxlat 397 REAL, DIMENSION(knon), INTENT(OUT) :: flux_u1, flux_v1 398 REAL, DIMENSION(knon), INTENT(OUT) :: tsurf_new ! new surface tempearture 399 REAL, DIMENSION(knon), INTENT(OUT) :: dflux_s, dflux_l 400 REAL, DIMENSION(klon), INTENT(OUT) :: slab_bils !ym ==> WARNING slab_bils stay with klon size 401 401 402 402 ! Local variables … … 405 405 REAL :: t_cadj 406 406 ! for surface heat fluxes 407 REAL, DIMENSION(k lon) :: cal, beta, dif_grnd407 REAL, DIMENSION(knon) :: cal, beta, dif_grnd 408 408 ! for Q-Flux computation: d/dt SST, d/dt ice volume (kg/m2), surf fluxes 409 409 REAL, DIMENSION(klon) :: diff_sst, diff_siv 410 410 REAL, DIMENSION(klon,nslay) :: lmt_bils 411 411 ! for surface wind stress 412 REAL, DIMENSION(k lon) :: u0, v0413 REAL, DIMENSION(k lon) :: u1_lay, v1_lay412 REAL, DIMENSION(knon) :: u0, v0 413 REAL, DIMENSION(knon) :: u1_lay, v1_lay 414 414 ! for new ice creation 415 415 REAL :: e_freeze, h_new, dfsic … … 450 450 ! save total cumulated heat fluxes locally 451 451 ! radiative + turbulent + melt of falling snow 452 slab_bils( :)=0.452 slab_bils(1:klon)=0. 453 453 DO i=1,knon 454 454 ki=knindex(i) … … 698 698 !**************************************************************************************** 699 699 INTEGER, INTENT(IN) :: itime, jour, knon 700 INTEGER, DIMENSION(k lon), INTENT(IN) :: knindex700 INTEGER, DIMENSION(knon), INTENT(IN) :: knindex 701 701 REAL, INTENT(IN) :: dtime 702 REAL, DIMENSION(k lon), INTENT(IN) :: tsurf_in703 REAL, DIMENSION(k lon), INTENT(IN) :: p1lay704 REAL, DIMENSION(k lon), INTENT(IN) :: cdragh, cdragm705 REAL, DIMENSION(k lon), INTENT(IN) :: precip_rain, precip_snow706 REAL, DIMENSION(k lon), INTENT(IN) :: temp_air, spechum707 REAL, DIMENSION(k lon), INTENT(IN) :: AcoefH, AcoefQ, BcoefH, BcoefQ708 REAL, DIMENSION(k lon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV709 REAL, DIMENSION(k lon), INTENT(IN) :: ps710 REAL, DIMENSION(k lon), INTENT(IN) :: u1, v1, gustiness711 REAL, DIMENSION(k lon), INTENT(IN) :: swnet702 REAL, DIMENSION(knon), INTENT(IN) :: tsurf_in 703 REAL, DIMENSION(knon), INTENT(IN) :: p1lay 704 REAL, DIMENSION(knon), INTENT(IN) :: cdragh, cdragm 705 REAL, DIMENSION(knon), INTENT(IN) :: precip_rain, precip_snow 706 REAL, DIMENSION(knon), INTENT(IN) :: temp_air, spechum 707 REAL, DIMENSION(knon), INTENT(IN) :: AcoefH, AcoefQ, BcoefH, BcoefQ 708 REAL, DIMENSION(knon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 709 REAL, DIMENSION(knon), INTENT(IN) :: ps 710 REAL, DIMENSION(knon), INTENT(IN) :: u1, v1, gustiness 711 REAL, DIMENSION(knon), INTENT(IN) :: swnet 712 712 713 713 ! In/Output arguments 714 714 !**************************************************************************************** 715 REAL, DIMENSION(k lon), INTENT(INOUT) :: snow, qsol716 REAL, DIMENSION(k lon), INTENT(INOUT) :: agesno717 REAL, DIMENSION(k lon), INTENT(INOUT) :: radsol715 REAL, DIMENSION(knon), INTENT(INOUT) :: snow, qsol 716 REAL, DIMENSION(knon), INTENT(INOUT) :: agesno 717 REAL, DIMENSION(knon), INTENT(INOUT) :: radsol 718 718 719 719 ! Output arguments 720 720 !**************************************************************************************** 721 REAL, DIMENSION(k lon), INTENT(OUT) :: qsurf722 REAL, DIMENSION(k lon), INTENT(OUT) :: alb1_new ! new albedo in visible SW interval723 REAL, DIMENSION(k lon), INTENT(OUT) :: alb2_new ! new albedo in near IR interval724 REAL, DIMENSION(k lon), INTENT(OUT) :: evap, fluxsens, fluxlat725 REAL, DIMENSION(k lon), INTENT(OUT) :: flux_u1, flux_v1726 REAL, DIMENSION(k lon), INTENT(OUT) :: tsurf_new727 REAL, DIMENSION(k lon), INTENT(OUT) :: dflux_s, dflux_l721 REAL, DIMENSION(knon), INTENT(OUT) :: qsurf 722 REAL, DIMENSION(knon), INTENT(OUT) :: alb1_new ! new albedo in visible SW interval 723 REAL, DIMENSION(knon), INTENT(OUT) :: alb2_new ! new albedo in near IR interval 724 REAL, DIMENSION(knon), INTENT(OUT) :: evap, fluxsens, fluxlat 725 REAL, DIMENSION(knon), INTENT(OUT) :: flux_u1, flux_v1 726 REAL, DIMENSION(knon), INTENT(OUT) :: tsurf_new 727 REAL, DIMENSION(knon), INTENT(OUT) :: dflux_s, dflux_l 728 728 729 729 ! Local variables 730 730 !**************************************************************************************** 731 731 INTEGER :: i,ki 732 REAL, DIMENSION(k lon) :: cal, beta, dif_grnd733 REAL, DIMENSION(k lon) :: u0, v0734 REAL, DIMENSION(k lon) :: u1_lay, v1_lay732 REAL, DIMENSION(knon) :: cal, beta, dif_grnd 733 REAL, DIMENSION(knon) :: u0, v0 734 REAL, DIMENSION(knon) :: u1_lay, v1_lay 735 735 ! intermediate heat fluxes: 736 736 REAL :: f_cond, f_swpen
Note: See TracChangeset
for help on using the changeset viewer.
