1 | !* |
---|
2 | ! ------------------------------------------------------------------ |
---|
3 | #ifdef DOC |
---|
4 | |
---|
5 | ! CE COMDECK CONTIENT DEUX GROUPES DE FONCTIONS THERMODYNAMIQUES : |
---|
6 | |
---|
7 | ! * LE PREMIER (RLV,RLS,RLF,ESW,ESS,ES) CORRESPOND A DES |
---|
8 | ! FONCTIONS ABSOLUES (OU INTRINSEQUES) QUI DOIVENT ETRE UTILISEES |
---|
9 | ! POUR TOUT CE QUI CONCERNE LE MONDE REEL (DONNEES OBSERVEES ET |
---|
10 | ! SORTIES DESTINEES A ETRE COMPAREES A DE TELLES DONNEES). |
---|
11 | |
---|
12 | ! * LE SECOND (FOEW,FODLEW,FOQS,FODQS,FOLH) CORRESPOND AU MONDE |
---|
13 | ! DE LA PHYSIQUE DU MODELE (ET PAR CONSEQUENT DE TOUTE LES PARTIES |
---|
14 | ! DU CODE QUI DOIVENT ETRE COMPATIBLES AVEC CETTE PHYSIQUE : |
---|
15 | ! ANALYSE/DYNAMIQUE/POST-PROCESSING ... ). LES DIFFERENCES ENTRE LES |
---|
16 | ! DEUX GROUPES VIENNENT, DANS LA CONFIGURATION ACTUELLE DE LA |
---|
17 | ! PHYSIQUE, DES POINTS SUIVANTS : |
---|
18 | ! - CALCULS RELATIFS A LA VARIABLE Q DU MODELE |
---|
19 | ! - CALCULS DE DERIVATION PAR RAPPORT A LA TEMPERATURE |
---|
20 | ! - ABSENCE D'ETATS HORS-EQUILIBRE = UNE SEULE CHALEUR LATENTE |
---|
21 | ! DE FUSION |
---|
22 | ! - POSSIBILITE DE TRAVAILLER SANS LA PHASE GLACE = INDICE DE |
---|
23 | ! TEST BINAIRE. |
---|
24 | |
---|
25 | ! ------------------------------------------------------------------ |
---|
26 | #endif |
---|
27 | ! ABSOLUTE THERMODYNAMICAL FUNCTIONS . |
---|
28 | |
---|
29 | |
---|
30 | ! RLV : LATENT HEAT OF VAPOURISATION |
---|
31 | ! RLS : LATENT HEAT OF SUBLIMATION |
---|
32 | ! RLF : LATENT HEAT OF FUSION |
---|
33 | ! ESW : SATURATION IN PRESENCE OF WATER |
---|
34 | ! ESS : SATURATION IN PRESENCE OF ICE |
---|
35 | ! ES : SATURATION (IF T>RTT THEN WATER ; IF T<RTT THEN ICE) |
---|
36 | ! INPUT (FOR ALL SIX FUNCTIONS) : PTARG = TEMPERATURE . |
---|
37 | REAL(KIND=JPRB) :: RLV,RLS,RLF,ESW,ESS,ES |
---|
38 | REAL(KIND=JPRB) :: PTARG |
---|
39 | |
---|
40 | RLV(PTARG)=RLVTT+(RCPV-RCW)*(PTARG-RTT) |
---|
41 | RLS(PTARG)=RLSTT+(RCPV-RCS)*(PTARG-RTT) |
---|
42 | RLF(PTARG)=RLS(PTARG)-RLV(PTARG) |
---|
43 | ESW(PTARG)=EXP(RALPW-RBETW/PTARG-RGAMW*LOG(PTARG)) |
---|
44 | ESS(PTARG)=EXP(RALPS-RBETS/PTARG-RGAMS*LOG(PTARG)) |
---|
45 | ES (PTARG)=EXP(& |
---|
46 | &(RALPW+RALPD*MAX(0.0_JPRB,SIGN(1.0_JPRB,RTT-PTARG)))& |
---|
47 | &-(RBETW+RBETD*MAX(0.0_JPRB,SIGN(1.0_JPRB,RTT-PTARG)))/PTARG & |
---|
48 | &-(RGAMW+RGAMD*MAX(0.0_JPRB,SIGN(1.0_JPRB,RTT-PTARG)))*LOG(PTARG)) |
---|
49 | |
---|
50 | ! ------------------------------------------------------------------ |
---|
51 | ! FONCTIONS THERMODYNAMIQUES : FONCTIONS DEFINIES DE LA PHYSIQUE . |
---|
52 | |
---|
53 | |
---|
54 | ! FONCTION DE LA TENSION DE VAPEUR SATURANTE . |
---|
55 | ! INPUT : PTARG = TEMPERATURE |
---|
56 | ! PDELARG = 0 SI EAU (QUELQUE SOIT PTARG) |
---|
57 | ! 1 SI GLACE (QUELQUE SOIT PTARG). |
---|
58 | REAL(KIND=JPRB) :: FOEW |
---|
59 | REAL(KIND=JPRB) :: PDELARG |
---|
60 | FOEW ( PTARG,PDELARG ) = EXP (& |
---|
61 | &( RALPW+PDELARG*RALPD )& |
---|
62 | &- ( RBETW+PDELARG*RBETD ) / PTARG & |
---|
63 | &- ( RGAMW+PDELARG*RGAMD ) * LOG(PTARG) ) |
---|
64 | |
---|
65 | ! FONCTION DERIVEE DU LOGARITHME NEPERIEN DE LA PRECEDENTE (FOEW) . |
---|
66 | ! INPUT : PTARG = TEMPERATURE |
---|
67 | ! PDELARG = 0 SI EAU (QUELQUE SOIT PTARG) |
---|
68 | ! 1 SI GLACE (QUELQUE SOIT PTARG). |
---|
69 | REAL(KIND=JPRB) :: FODLEW |
---|
70 | FODLEW ( PTARG,PDELARG ) = (& |
---|
71 | &( RBETW+PDELARG*RBETD )& |
---|
72 | &- ( RGAMW+PDELARG*RGAMD ) * PTARG )& |
---|
73 | &/ ( PTARG*PTARG ) |
---|
74 | |
---|
75 | ! FONCTION HUMIDITE SPECIFIQUE SATURANTE . |
---|
76 | ! INPUT : PESPFAR = RAPPORT FOEW SUR PRESSION. |
---|
77 | REAL(KIND=JPRB) :: FOQS |
---|
78 | REAL(KIND=JPRB) :: PESPFAR |
---|
79 | FOQS ( PESPFAR ) = PESPFAR / ( 1.0_JPRB+RETV*MAX(0.0_JPRB,& |
---|
80 | &(1.0_JPRB-PESPFAR)) ) |
---|
81 | |
---|
82 | ! FONCTION DERIVEE EN TEMPERATURE DE LA PRECEDENTE (FOQS) . |
---|
83 | ! INPUT : PQSFARG = FOQS |
---|
84 | ! PESPFAR = RAPPORT FOEW SUR PRESSION |
---|
85 | ! PDLEFAR = FODLEW. |
---|
86 | REAL(KIND=JPRB) :: FODQS |
---|
87 | REAL(KIND=JPRB) :: PQSFARG,PDLEFAR |
---|
88 | FODQS ( PQSFARG,PESPFAR,PDLEFAR ) = ( PQSFARG & |
---|
89 | &* (1.0_JPRB-PQSFARG)*PDLEFAR ) / (1.0_JPRB-PESPFAR) |
---|
90 | |
---|
91 | ! FONCTION CHALEUR LATENTE . |
---|
92 | ! INPUT : PTARG = TEMPERATURE |
---|
93 | ! PDELARG = 0 SI EAU (QUELQUE SOIT PTARG) |
---|
94 | ! 1 SI GLACE (QUELQUE SOIT PTARG). |
---|
95 | REAL(KIND=JPRB) :: FOLH |
---|
96 | FOLH ( PTARG,PDELARG ) = RV * (& |
---|
97 | &( RBETW+PDELARG*RBETD )& |
---|
98 | &- ( RGAMW+PDELARG*RGAMD ) * PTARG ) |
---|
99 | ! ------------------------------------------------------------------ |
---|
100 | |
---|