Changeset 5105 for LMDZ6/branches/Amaury_dev/libf/misc/q_sat.f90
- Timestamp:
- Jul 23, 2024, 7:14:34 PM (8 weeks ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/misc/q_sat.f90
r5104 r5105 4 4 5 5 6 6 SUBROUTINE q_sat(np,temp,pres,qsat) 7 7 8 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 Kelvin16 ! millibar--input-R: pression en mb8 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 17 17 18 ! q_sat----output-R: vapeur d'eau saturante en kg/kg19 !======================================================================18 ! q_sat----output-R: vapeur d'eau saturante en kg/kg 19 !====================================================================== 20 20 21 integernp22 REALtemp(np),pres(np),qsat(np)21 integer :: np 22 REAL :: temp(np),pres(np),qsat(np) 23 23 24 REALr2es25 24 REAL :: r2es 25 PARAMETER (r2es=611.14 *18.0153/28.9644) 26 26 27 REALr3les, r3ies, r3es28 29 27 REAL :: r3les, r3ies, r3es 28 PARAMETER (R3LES=17.269) 29 PARAMETER (R3IES=21.875) 30 30 31 REALr4les, r4ies, r4es32 33 31 REAL :: r4les, r4ies, r4es 32 PARAMETER (R4LES=35.86) 33 PARAMETER (R4IES=7.66) 34 34 35 REALrtt36 35 REAL :: rtt 36 PARAMETER (rtt=273.16) 37 37 38 REALretv39 38 REAL :: retv 39 PARAMETER (retv=28.9644/18.0153 - 1.0) 40 40 41 realzqsat42 integerip41 real :: zqsat 42 integer :: ip 43 43 44 !------------------------------------------------------------------44 ! ------------------------------------------------------------------ 45 45 46 46 47 47 do ip=1,np 48 48 49 !write(*,*)'kelvin,millibar=',kelvin,millibar50 !write(*,*)'temp,pres=',temp(ip),pres(ip)49 ! write(*,*)'kelvin,millibar=',kelvin,millibar 50 ! write(*,*)'temp,pres=',temp(ip),pres(ip) 51 51 52 53 54 55 56 57 58 52 IF (temp(ip) <= rtt) THEN 53 r3es = r3ies 54 r4es = r4ies 55 ELSE 56 r3es = r3les 57 r4es = r4les 58 ENDIF 59 59 60 61 62 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) 63 63 64 65 !write(*,*)'qsat=',qsat(ip)64 qsat(ip)= zqsat 65 ! write(*,*)'qsat=',qsat(ip) 66 66 67 67 enddo 68 68 69 RETURN 70 END 69 70 END SUBROUTINE q_sat
Note: See TracChangeset
for help on using the changeset viewer.