Ignore:
Timestamp:
Feb 1, 2022, 6:34:34 PM (2 years ago)
Author:
evignon
Message:

Mise à jour de la routine de nuages lscp
les principaux changements consistent en:

  • des corrections de bug (déclaration et division

par zero) pour que la routine compile avec les modifications d'OB

  • des restructurations pour que les fonctions de lscp_tools_mod

travaillent sur des tableaux et non des scalaires

  • une séparation des coefficients d'évaporation de la neige et de la pluie
File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/calcratqs_multi_mod.F90

    r4010 r4072  
    230230
    231231INTEGER :: i,k,nsrf
    232 REAL :: ratiom, qsat2m, dqsatdT
    233 REAL, DIMENSION(klon) :: xsi0
     232REAL, DIMENSION(klon) :: xsi0, ratiom, qsat2m, dqsatdT
    234233REAL, DIMENSION (klon,klev) :: zlay
    235234
     
    239238!-------------------------------------------
    240239
    241 DO i=1,klon
    242240   
    243     ratiom=0.
    244     xsi0(i)=0.
     241    ratiom(:)=0.
     242    xsi0(:)=0.
    245243   
    246244    DO nsrf=1,nbsrf
    247     CALL CALC_QSAT_ECMWF(t2m(i,nsrf),q2m(i,nsrf),paprs(i,1),RTT,0,.false.,qsat2m,dqsatdT)
    248     ratiom=ratiom+pctsrf(i,nsrf)*(q2m(i,nsrf)/qsat2m)
    249     xsi0(i)=xsi0(i)+pctsrf(i,nsrf)*((q2m(i,nsrf)/qsat2m-ratiom)**2)
     245    CALL CALC_QSAT_ECMWF(klon,t2m(:,nsrf),q2m(:,nsrf),paprs(:,1),RTT,0,.false.,qsat2m,dqsatdT)
     246    ratiom(:)=ratiom(:)+pctsrf(:,nsrf)*(q2m(:,nsrf)/qsat2m(:))
     247    xsi0(:)=xsi0(:)+pctsrf(:,nsrf)*((q2m(:,nsrf)/qsat2m(:)-ratiom(:))**2)
    250248    END DO
    251249   
    252     xsi0(i)=sqrt(xsi0(i))/(ratiom+1E-6)
    253 END DO
     250    xsi0(:)=sqrt(xsi0(:))/(ratiom(:)+1E-6)
    254251
    255252
Note: See TracChangeset for help on using the changeset viewer.