Ignore:
Timestamp:
Jul 23, 2024, 7:14:34 PM (8 weeks ago)
Author:
abarral
Message:

Replace 1DUTILS.h by module lmdz_1dutils.f90
Replace 1DConv.h by module lmdz_old_1dconv.f90 (it's only used by old_* files)
Convert *.F to *.f90
Fix gradsdef.h formatting
Remove unnecessary "RETURN" at the end of functions/subroutines

File:
1 moved

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/misc/q_sat.f90

    r5104 r5105  
    44
    55
    6       SUBROUTINE q_sat(np,temp,pres,qsat)
     6SUBROUTINE q_sat(np,temp,pres,qsat)
    77
    8       IMPLICIT none
    9 !======================================================================
    10 ! Autheur(s): Z.X. Li (LMD/CNRS)
    11 !  reecriture vectorisee par F. Hourdin.
    12 ! Objet: calculer la vapeur d'eau saturante (formule Centre Euro.)
    13 !======================================================================
    14 ! Arguments:
    15 ! kelvin---input-R: temperature en Kelvin
    16 ! millibar--input-R: pression en mb
     8  IMPLICIT none
     9  !======================================================================
     10  ! Autheur(s): Z.X. Li (LMD/CNRS)
     11  !  reecriture vectorisee par F. Hourdin.
     12  ! Objet: calculer la vapeur d'eau saturante (formule Centre Euro.)
     13  !======================================================================
     14  ! Arguments:
     15  ! kelvin---input-R: temperature en Kelvin
     16  ! millibar--input-R: pression en mb
    1717
    18 ! q_sat----output-R: vapeur d'eau saturante en kg/kg
    19 !======================================================================
     18  ! q_sat----output-R: vapeur d'eau saturante en kg/kg
     19  !======================================================================
    2020
    21       integer np
    22       REAL temp(np),pres(np),qsat(np)
     21  integer :: np
     22  REAL :: temp(np),pres(np),qsat(np)
    2323
    24       REAL r2es
    25       PARAMETER (r2es=611.14 *18.0153/28.9644)
     24  REAL :: r2es
     25  PARAMETER (r2es=611.14 *18.0153/28.9644)
    2626
    27       REAL r3les, r3ies, r3es
    28       PARAMETER (R3LES=17.269)
    29       PARAMETER (R3IES=21.875)
     27  REAL :: r3les, r3ies, r3es
     28  PARAMETER (R3LES=17.269)
     29  PARAMETER (R3IES=21.875)
    3030
    31       REAL r4les, r4ies, r4es
    32       PARAMETER (R4LES=35.86)
    33       PARAMETER (R4IES=7.66)
     31  REAL :: r4les, r4ies, r4es
     32  PARAMETER (R4LES=35.86)
     33  PARAMETER (R4IES=7.66)
    3434
    35       REAL rtt
    36       PARAMETER (rtt=273.16)
     35  REAL :: rtt
     36  PARAMETER (rtt=273.16)
    3737
    38       REAL retv
    39       PARAMETER (retv=28.9644/18.0153 - 1.0)
     38  REAL :: retv
     39  PARAMETER (retv=28.9644/18.0153 - 1.0)
    4040
    41       real zqsat
    42       integer ip
     41  real :: zqsat
     42  integer :: ip
    4343
    44 !    ------------------------------------------------------------------
     44  ! ------------------------------------------------------------------
    4545
    4646
    47       do ip=1,np
     47  do ip=1,np
    4848
    49 !      write(*,*)'kelvin,millibar=',kelvin,millibar
    50 !       write(*,*)'temp,pres=',temp(ip),pres(ip)
     49   ! write(*,*)'kelvin,millibar=',kelvin,millibar
     50   !  write(*,*)'temp,pres=',temp(ip),pres(ip)
    5151
    52          IF (temp(ip) <= rtt) THEN
    53             r3es = r3ies
    54             r4es = r4ies
    55          ELSE
    56             r3es = r3les
    57             r4es = r4les
    58          ENDIF
     52     IF (temp(ip) <= rtt) THEN
     53        r3es = r3ies
     54        r4es = r4ies
     55     ELSE
     56        r3es = r3les
     57        r4es = r4les
     58     ENDIF
    5959
    60          zqsat=r2es/pres(ip)*EXP(r3es*(temp(ip)-rtt)/(temp(ip)-r4es))
    61          zqsat=MIN(0.5,ZQSAT)
    62          zqsat=zqsat/(1.-retv *zqsat)
     60     zqsat=r2es/pres(ip)*EXP(r3es*(temp(ip)-rtt)/(temp(ip)-r4es))
     61     zqsat=MIN(0.5,ZQSAT)
     62     zqsat=zqsat/(1.-retv *zqsat)
    6363
    64          qsat(ip)= zqsat
    65 !      write(*,*)'qsat=',qsat(ip)
     64     qsat(ip)= zqsat
     65   ! write(*,*)'qsat=',qsat(ip)
    6666
    67       enddo
     67  enddo
    6868
    69       RETURN
    70       END
     69
     70END SUBROUTINE q_sat
Note: See TracChangeset for help on using the changeset viewer.