/[lmdze]/trunk/phylmd/FCTTRE.f
ViewVC logotype

Diff of /trunk/phylmd/FCTTRE.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 82 by guez, Wed Mar 5 14:57:53 2014 UTC revision 254 by guez, Mon Feb 5 10:39:38 2018 UTC
# Line 13  module FCTTRE Line 13  module FCTTRE
13    
14    implicit none    implicit none
15    
   LOGICAL, PARAMETER:: thermcep= .TRUE.  
   
16  contains  contains
17    
18    REAL function FOEEW(T, DEL)    elemental REAL function FOEEW(T, ICE)
19    
20      use yoethf_m, only: R3LES, R3IES, R4LES, R4IES      use yoethf_m, only: R3LES, R3IES, R4LES, R4IES
21      use SUPHEC_M, only: rtt      use SUPHEC_M, only: rtt
22    
23      REAL, intent(in):: T      REAL, intent(in):: T
24      REAL, intent(in):: DEL ! 1 for ice, 0 for liquid      logical, intent(in):: ICE ! else liquid
25    
26      !-----------------------      !-----------------------
27    
28      FOEEW = EXP((R3LES * (1. - DEL) + R3IES * DEL) * (T - RTT) &      FOEEW = exp(merge(R3IES / (T - R4IES), R3lES / (T - R4lES), ice) &
29           / (T - (R4LES * (1. - DEL) + R4IES * DEL)))           * (T - RTT))
30    
31    end function FOEEW    end function FOEEW
32    
33    !******************************************    !******************************************
34    
35    REAL function FOEDE(T, DEL, P5ARG, QS, PCOARG)    REAL function FOEDE(T, ICE, P5ARG, QS, PCOARG)
36    
37      use yoethf_m, only: R4LES, R4IES      use yoethf_m, only: R4LES, R4IES
38    
39      REAL, intent(in):: T, DEL      REAL, intent(in):: T
40        logical, intent(in):: ICE ! else liquid
41      real, intent(in):: P5ARG, QS, PCOARG      real, intent(in):: P5ARG, QS, PCOARG
42    
43      !-----------------------      !-----------------------
44    
45      FOEDE = QS*PCOARG*P5ARG / (T-(R4LES*(1.-DEL)+R4IES*DEL))**2      FOEDE = QS * PCOARG * P5ARG / (T - merge(R4IES, R4lES, ice))**2
46    
47    end function FOEDE    end function FOEDE
48    
   !******************************************  
   
   REAL function qsats(t)  
   
     REAL, intent(in):: T  
   
     !-----------------------  
   
     qsats = 100.0 * 0.622 &  
          * 10.**(2.07023 - 0.00320991 * t - 2484.896 / t + 3.56654 * LOG10(t))  
   
   end function qsats  
   
   !******************************************  
   
   REAL function qsatl(t)  
   
     REAL, intent(in):: T  
   
     !-----------------------  
   
     qsatl = 100.0 * 0.622 * 10.**(23.8319 - 2948.964 / t &  
          - 5.028 * LOG10(t) - 29810.16 * EXP(- 0.0699382 * t) &  
          + 25.21935 * EXP(- 2999.924 / t))  
   
   end function qsatl  
   
   !******************************************  
   
   REAL function dqsats(t, qs)  
   
     use SUPHEC_M, only: RLVTT, rcpd  
   
     REAL, intent(in):: T, qs  
   
     !-----------------------  
   
     dqsats = RLVTT / RCPD * qs * (3.56654/t &  
          +2484.896*LOG(10.)/t**2 - 0.00320991*LOG(10.))  
   
   end function dqsats  
   
   !******************************************  
   
   REAL function dqsatl(t, qs)  
   
     use SUPHEC_M, only: RLVTT, rcpd  
   
     REAL, intent(in):: T, qs  
   
     !-----------------------  
   
     dqsatl = RLVTT / RCPD * qs * LOG(10.) &  
          * (2948.964/t**2-5.028/LOG(10.)/t &  
          +25.21935*2999.924/t**2*EXP(-2999.924/t) &  
          +29810.16*0.0699382*EXP(-0.0699382*t))  
   
   end function dqsatl  
   
49  end module FCTTRE  end module FCTTRE

Legend:
Removed from v.82  
changed lines
  Added in v.254

  ViewVC Help
Powered by ViewVC 1.1.21