Changeset 5921


Ignore:
Timestamp:
Dec 9, 2025, 1:53:23 PM (2 days ago)
Author:
yann meurdesoif
Message:

Albedo :
transform routines stand alone into module
set use only module variables

YM

Location:
LMDZ6/branches/PBLSURF_GPUPORT/libf/phylmd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/PBLSURF_GPUPORT/libf/phylmd/albedo.f90

    r5896 r5921  
    11! $Id$
    2 module albedo
     2module albedo_mod
    33
    44IMPLICIT NONE
     
    66contains
    77
    8   SUBROUTINE alboc(klon, rjour, rlat, albedo)
    9 !$gpum horizontal klon
     8  SUBROUTINE alboc(ngrid, rjour, rlat, albedo)
     9!$gpum horizontal ngrid
    1010!    USE clesphys_mod_h
    1111    USE yomcst_mod_h, ONLY : r_incl
     
    2323    ! albedo (out,R): albedo obtenu (de 0 a 1)
    2424    ! ======================================================================
    25     INTEGER, INTENT(IN) :: klon
     25    INTEGER, INTENT(IN) :: ngrid
    2626    INTEGER npts ! il controle la precision de l'integration
    2727    PARAMETER (npts=120) ! 120 correspond a l'interval 6 minutes
    2828
    29     REAL rlat(klon), rjour, albedo(klon)
     29    REAL rlat(ngrid), rjour, albedo(ngrid)
    3030    REAL zdist, zlonsun, zpi, zdeclin
    3131    REAL rmu, alb, srmu, salb, fauxo, aa, bb
     
    4646       zdeclin = asin(sin(zlonsun*zpi/180.0)*sin(r_incl*zpi/180.0))
    4747
    48        DO i = 1, klon
     48       DO i = 1, ngrid
    4949          aa = sin(rlat(i)*zpi/180.0)*sin(zdeclin)
    5050          bb = cos(rlat(i)*zpi/180.0)*cos(zdeclin)
     
    8787       zdeclin = asin(sin(zlonsun*zpi/180.0)*sin(r_incl*zpi/180.0))
    8888
    89        DO i = 1, klon
     89       DO i = 1, ngrid
    9090          aa = sin(rlat(i)*zpi/180.0)*sin(zdeclin)
    9191          bb = cos(rlat(i)*zpi/180.0)*cos(zdeclin)
     
    123123  END SUBROUTINE alboc
    124124  ! =====================================================================
    125   SUBROUTINE alboc_cd(klon, rmu0, albedo)
    126 !$gpum horizontal klon
     125  SUBROUTINE alboc_cd(ngrid, rmu0, albedo)
     126!$gpum horizontal ngrid
    127127  IMPLICIT NONE
    128128
     
    138138    ! albedo (out): albedo de surface de l'ocean
    139139    ! ======================================================================
    140     INTEGER, INTENT(IN) :: klon
    141     REAL, intent(in):: rmu0(klon)
    142     real, intent(out):: albedo(klon)
     140    INTEGER, INTENT(IN) :: ngrid
     141    REAL, intent(in):: rmu0(ngrid)
     142    real, intent(out):: albedo(ngrid)
    143143
    144144    REAL fauxo
     
    148148
    149149    IF (ancien_albedo) THEN
    150        DO i = 1, klon
     150       DO i = 1, ngrid
    151151          fauxo = (1.47-acos(max(rmu0(i), 0.0)))/0.15
    152152          albedo(i) = 0.03+.630/(1.+fauxo*fauxo)
     
    154154       END DO
    155155    ELSE
    156        DO i = 1, klon
     156       DO i = 1, ngrid
    157157          albedo(i) = 0.058/(max(rmu0(i), 0.0)+0.30)
    158158          albedo(i) = max(min(albedo(i),0.60), 0.04)
     
    162162  END SUBROUTINE alboc_cd
    163163
    164 end module albedo
     164end module albedo_mod
  • LMDZ6/branches/PBLSURF_GPUPORT/libf/phylmd/surf_ocean_mod.F90

    r5896 r5921  
    3232!$gpum horizontal knon klon
    3333
    34     use albedo, only: alboc, alboc_cd
     34    use albedo_mod, only: alboc, alboc_cd
    3535    use bulk_flux_m, only: bulk_flux
    3636    USE dimphy, ONLY: klon, zmasq
     
    4848#endif
    4949#endif
    50     USE clesphys_mod_h
    51     USE yomcst_mod_h
    52 USE limit_read_mod
     50    USE clesphys_mod_h, ONLY: nsw, ok_bs, f_z0qh_oce, iflag_albedo, iflag_cycle_diurne, fmagic, pmagic, iflag_z0_oce, z0min
     51    USE yomcst_mod_h, ONLY: rd, retv, rg, rlvtt
     52    USE limit_read_mod, ONLY: limit_read_rug_alb
    5353    USE config_ocean_skin_m, ONLY: activate_ocean_skin
    54     USE lmdz_checksum
     54    USE lmdz_checksum, ONLY : checksum
    5555    !
    5656    ! This subroutine will make a call to ocean_XXX_noice according to the ocean mode (force,
Note: See TracChangeset for help on using the changeset viewer.