| Directory: | ./ |
|---|---|
| File: | rad/sucst.f90 |
| Date: | 2022-01-11 19:19:34 |
| Exec | Total | Coverage | |
|---|---|---|---|
| Lines: | 156 | 156 | 100.0% |
| Branches: | 26 | 36 | 72.2% |
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | 1 | SUBROUTINE SUCST(KULOUT,KDAT,KSSS,KPRINTLEV) | |
| 2 | |||
| 3 | !**** *SUCST * - Routine to initialize the constants of the model. | ||
| 4 | |||
| 5 | ! Purpose. | ||
| 6 | ! -------- | ||
| 7 | ! Initialize and print the common YOMCST + initialize | ||
| 8 | ! date and time of YOMRIP. | ||
| 9 | |||
| 10 | !** Interface. | ||
| 11 | ! ---------- | ||
| 12 | ! *CALL* *SUCST (..) | ||
| 13 | |||
| 14 | ! Explicit arguments : | ||
| 15 | ! -------------------- | ||
| 16 | |||
| 17 | ! KULOUT - logical unit for the output | ||
| 18 | ! KDAT - date in the form AAAAMMDD | ||
| 19 | ! KSSS - number of seconds in the day | ||
| 20 | ! KPRINTLEV - printing level | ||
| 21 | |||
| 22 | ! Implicit arguments : | ||
| 23 | ! -------------------- | ||
| 24 | ! COMMON YOMCST | ||
| 25 | ! COMMON YOMRIP | ||
| 26 | |||
| 27 | ! Method. | ||
| 28 | ! ------- | ||
| 29 | ! See documentation | ||
| 30 | |||
| 31 | ! Externals. | ||
| 32 | ! ---------- | ||
| 33 | |||
| 34 | ! Reference. | ||
| 35 | ! ---------- | ||
| 36 | ! ECMWF Research Department documentation of the IFS | ||
| 37 | |||
| 38 | ! Author. | ||
| 39 | ! ------- | ||
| 40 | ! Mats Hamrud and Philippe Courtier *ECMWF* | ||
| 41 | |||
| 42 | ! Modifications. | ||
| 43 | ! -------------- | ||
| 44 | ! Original : 87-10-15 | ||
| 45 | ! Additions : 90-07-30 (J.-F. Geleyn) | ||
| 46 | ! 91-11-15 (M. Deque) | ||
| 47 | ! 96-08-12 M.Hamrud - Reduce printing | ||
| 48 | ! M.Hamrud 01-Oct-2003 CY28 Cleaning | ||
| 49 | ! ------------------------------------------------------------------ | ||
| 50 | |||
| 51 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
| 52 | USE YOMHOOK ,ONLY : LHOOK, DR_HOOK | ||
| 53 | |||
| 54 | USE YOMCST , ONLY : RPI ,RCLUM ,RHPLA ,RKBOL ,& | ||
| 55 | & RNAVO ,RDAY ,REA ,REPSM ,RSIYEA ,& | ||
| 56 | & RSIDAY ,ROMEGA ,RA ,RG ,R1SA ,& | ||
| 57 | & RSIGMA ,RI0 ,R ,RMD ,RMV ,& | ||
| 58 | & RMO3 ,RD ,RV ,RCPD ,RCPV ,& | ||
| 59 | & RMCO2 ,RMCH4 ,RMN2O ,RMCO ,RMHCHO ,& | ||
| 60 | & RMSO2 ,RMNO2 ,RMSF6 ,RMRA ,& | ||
| 61 | & RCVD ,RCVV ,RKAPPA ,RETV ,RCW ,& | ||
| 62 | & RCS ,RLVTT ,RLSTT ,RLVZER ,RLSZER ,& | ||
| 63 | & RLMLT ,RTT ,RATM ,RDT ,RESTT ,& | ||
| 64 | & RALPW ,RBETW ,RGAMW ,RALPS ,RBETS ,& | ||
| 65 | & RGAMS ,RALPD ,RBETD ,RGAMD | ||
| 66 | USE YOMRIP , ONLY : RTIMST ,RTIMTR | ||
| 67 | |||
| 68 | IMPLICIT NONE | ||
| 69 | |||
| 70 | INTEGER(KIND=JPIM),INTENT(IN) :: KULOUT | ||
| 71 | INTEGER(KIND=JPIM),INTENT(IN) :: KDAT | ||
| 72 | INTEGER(KIND=JPIM),INTENT(IN) :: KSSS | ||
| 73 | INTEGER(KIND=JPIM),INTENT(IN) :: KPRINTLEV | ||
| 74 | INTEGER(KIND=JPIM) :: IA, ID, IDAT, IM, ISSS, J | ||
| 75 | |||
| 76 | REAL(KIND=JPRB) :: ZDE, ZET, ZJU, ZRS, ZRSREL, ZTETA, ZTI | ||
| 77 | REAL(KIND=JPRB) :: ZHOOK_HANDLE | ||
| 78 | |||
| 79 | ! ----------------------------------------------------------- | ||
| 80 | |||
| 81 | ! - Astronomical functions | ||
| 82 | ! you will find the description in the annex 1 of the documentation | ||
| 83 | ! RRS is the distance Sun-Earth | ||
| 84 | ! RDS is the declination of the Earth | ||
| 85 | ! RET is the equation of time | ||
| 86 | |||
| 87 | ! Orbit of the earth | ||
| 88 | |||
| 89 | REAL(KIND=JPRB) :: RTETA,REL,REM,RRS,RLLS,RLLLS,RDS,RET | ||
| 90 | REAL(KIND=JPRB) :: PTIME,PTETA | ||
| 91 | |||
| 92 | RTETA(PTIME)=PTIME/(RDAY*365.25_JPRB) | ||
| 93 | REL(PTETA)=1.7535_JPRB+6.283076_JPRB*PTETA | ||
| 94 | REM(PTETA)=6.240075_JPRB+6.283020_JPRB*PTETA | ||
| 95 | RRS(PTETA)=REA*(1.0001_JPRB-0.0163_JPRB*SIN(REL(PTETA))& | ||
| 96 | &+0.0037_JPRB*COS(REL(PTETA))) | ||
| 97 | ! Relative movement Sun/Earth | ||
| 98 | RLLS(PTETA)=4.8951_JPRB+6.283076_JPRB*PTETA | ||
| 99 | RLLLS(PTETA)=4.8952_JPRB+6.283320_JPRB*PTETA-0.0075_JPRB*SIN(REL(PTETA))& | ||
| 100 | &-0.0326_JPRB*COS(REL(PTETA))-0.0003_JPRB*SIN(2.0_JPRB*REL(PTETA))& | ||
| 101 | &+0.0002_JPRB*COS(2.0_JPRB*REL(PTETA)) | ||
| 102 | RDS(PTETA)=ASIN(SIN(REPSM)*SIN(RLLLS(PTETA))) | ||
| 103 | RET(PTETA)=591.8_JPRB*SIN(2.0_JPRB*RLLS(PTETA))-459.4_JPRB*SIN(REM(PTETA))& | ||
| 104 | &+39.5_JPRB*SIN(REM(PTETA))*COS(2.0_JPRB*RLLS(PTETA))& | ||
| 105 | &-12.7_JPRB*SIN(4._JPRB*RLLS(PTETA))-4.8_JPRB*SIN(2.0_JPRB*REM(PTETA)) | ||
| 106 | ! ------------------------------------------------------------- | ||
| 107 | |||
| 108 | !* | ||
| 109 | ! ------------------------------------------------------------------ | ||
| 110 | ! ABSOLUTE THERMODYNAMICAL FUNCTIONS . | ||
| 111 | |||
| 112 | |||
| 113 | ! RLV : LATENT HEAT OF VAPOURISATION | ||
| 114 | ! RLS : LATENT HEAT OF SUBLIMATION | ||
| 115 | ! RLF : LATENT HEAT OF FUSION | ||
| 116 | ! ESW : SATURATION IN PRESENCE OF WATER | ||
| 117 | ! ESS : SATURATION IN PRESENCE OF ICE | ||
| 118 | ! ES : SATURATION (IF T>RTT THEN WATER ; IF T<RTT THEN ICE) | ||
| 119 | ! INPUT (FOR ALL SIX FUNCTIONS) : PTARG = TEMPERATURE . | ||
| 120 | REAL(KIND=JPRB) :: RLV,RLS,RLF,ESW,ESS,ES | ||
| 121 | REAL(KIND=JPRB) :: PTARG | ||
| 122 | |||
| 123 | RLV(PTARG)=RLVTT+(RCPV-RCW)*(PTARG-RTT) | ||
| 124 | RLS(PTARG)=RLSTT+(RCPV-RCS)*(PTARG-RTT) | ||
| 125 | RLF(PTARG)=RLS(PTARG)-RLV(PTARG) | ||
| 126 | ESW(PTARG)=EXP(RALPW-RBETW/PTARG-RGAMW*LOG(PTARG)) | ||
| 127 | ESS(PTARG)=EXP(RALPS-RBETS/PTARG-RGAMS*LOG(PTARG)) | ||
| 128 | ES (PTARG)=EXP(& | ||
| 129 | &(RALPW+RALPD*MAX(0.0_JPRB,SIGN(1.0_JPRB,RTT-PTARG)))& | ||
| 130 | &-(RBETW+RBETD*MAX(0.0_JPRB,SIGN(1.0_JPRB,RTT-PTARG)))/PTARG & | ||
| 131 | &-(RGAMW+RGAMD*MAX(0.0_JPRB,SIGN(1.0_JPRB,RTT-PTARG)))*LOG(PTARG)) | ||
| 132 | |||
| 133 | ! ------------------------------------------------------------------ | ||
| 134 | ! FONCTIONS THERMODYNAMIQUES : FONCTIONS DEFINIES DE LA PHYSIQUE . | ||
| 135 | |||
| 136 | |||
| 137 | ! FONCTION DE LA TENSION DE VAPEUR SATURANTE . | ||
| 138 | ! INPUT : PTARG = TEMPERATURE | ||
| 139 | ! PDELARG = 0 SI EAU (QUELQUE SOIT PTARG) | ||
| 140 | ! 1 SI GLACE (QUELQUE SOIT PTARG). | ||
| 141 | REAL(KIND=JPRB) :: FOEW | ||
| 142 | REAL(KIND=JPRB) :: PDELARG | ||
| 143 | FOEW ( PTARG,PDELARG ) = EXP (& | ||
| 144 | &( RALPW+PDELARG*RALPD )& | ||
| 145 | &- ( RBETW+PDELARG*RBETD ) / PTARG & | ||
| 146 | &- ( RGAMW+PDELARG*RGAMD ) * LOG(PTARG) ) | ||
| 147 | |||
| 148 | ! FONCTION DERIVEE DU LOGARITHME NEPERIEN DE LA PRECEDENTE (FOEW) . | ||
| 149 | ! INPUT : PTARG = TEMPERATURE | ||
| 150 | ! PDELARG = 0 SI EAU (QUELQUE SOIT PTARG) | ||
| 151 | ! 1 SI GLACE (QUELQUE SOIT PTARG). | ||
| 152 | REAL(KIND=JPRB) :: FODLEW | ||
| 153 | FODLEW ( PTARG,PDELARG ) = (& | ||
| 154 | &( RBETW+PDELARG*RBETD )& | ||
| 155 | &- ( RGAMW+PDELARG*RGAMD ) * PTARG )& | ||
| 156 | &/ ( PTARG*PTARG ) | ||
| 157 | |||
| 158 | ! FONCTION HUMIDITE SPECIFIQUE SATURANTE . | ||
| 159 | ! INPUT : PESPFAR = RAPPORT FOEW SUR PRESSION. | ||
| 160 | REAL(KIND=JPRB) :: FOQS | ||
| 161 | REAL(KIND=JPRB) :: PESPFAR | ||
| 162 | FOQS ( PESPFAR ) = PESPFAR / ( 1.0_JPRB+RETV*MAX(0.0_JPRB,& | ||
| 163 | &(1.0_JPRB-PESPFAR)) ) | ||
| 164 | |||
| 165 | ! FONCTION DERIVEE EN TEMPERATURE DE LA PRECEDENTE (FOQS) . | ||
| 166 | ! INPUT : PQSFARG = FOQS | ||
| 167 | ! PESPFAR = RAPPORT FOEW SUR PRESSION | ||
| 168 | ! PDLEFAR = FODLEW. | ||
| 169 | REAL(KIND=JPRB) :: FODQS | ||
| 170 | REAL(KIND=JPRB) :: PQSFARG,PDLEFAR | ||
| 171 | FODQS ( PQSFARG,PESPFAR,PDLEFAR ) = ( PQSFARG & | ||
| 172 | &* (1.0_JPRB-PQSFARG)*PDLEFAR ) / (1.0_JPRB-PESPFAR) | ||
| 173 | |||
| 174 | ! FONCTION CHALEUR LATENTE . | ||
| 175 | ! INPUT : PTARG = TEMPERATURE | ||
| 176 | ! PDELARG = 0 SI EAU (QUELQUE SOIT PTARG) | ||
| 177 | ! 1 SI GLACE (QUELQUE SOIT PTARG). | ||
| 178 | REAL(KIND=JPRB) :: FOLH | ||
| 179 | FOLH ( PTARG,PDELARG ) = RV * (& | ||
| 180 | &( RBETW+PDELARG*RBETD )& | ||
| 181 | &- ( RGAMW+PDELARG*RGAMD ) * PTARG ) | ||
| 182 | ! ------------------------------------------------------------------ | ||
| 183 | |||
| 184 | ! ------------------------------------------------------------------ | ||
| 185 | |||
| 186 | ! - Time functions | ||
| 187 | ! the descriptions are in the annex 1 of the documentation | ||
| 188 | |||
| 189 | ! TIME | ||
| 190 | |||
| 191 | ! NDD : extraxt dd from ccaammdd | ||
| 192 | ! NMM : extract mm from ccaammdd | ||
| 193 | ! NAA : extract aa from ccaammdd | ||
| 194 | ! NCCAA : extract ccaa from ccaammdd | ||
| 195 | ! NAMD : extract aammdd from ccaammdd | ||
| 196 | ! NCENT : return centuary of ccaammdd | ||
| 197 | ! NYEARC: returns year of the centuary from ccaammdd | ||
| 198 | ! NCONSTRUCT_DATE : returns ccaammdd given centuary,year,month and day | ||
| 199 | ! NCTH : turn seconds into hours | ||
| 200 | ! RTIME : returns the time of the model (in seconds of course!) | ||
| 201 | |||
| 202 | INTEGER(KIND=JPIM) :: NDD,NMM,NCCAA,NAA,NAMD,NCTH,NZZAA,NZZMM,NCENT,NYEARC,& | ||
| 203 | &NCONSTRUCT_DATE | ||
| 204 | REAL(KIND=JPRB) :: RJUDAT,RTIME | ||
| 205 | INTEGER(KIND=JPIM) :: KGRDAT,KSEC,KAAAA,KMM,KDD,KSS | ||
| 206 | INTEGER(KIND=JPIM) :: KCENT,KYEARC,KMONTH,KDAY | ||
| 207 | |||
| 208 | NDD(KGRDAT) =MOD(KGRDAT,100) | ||
| 209 | NMM(KGRDAT) =MOD((KGRDAT-NDD(KGRDAT))/100,100) | ||
| 210 | NCCAA(KGRDAT)=KGRDAT/10000 | ||
| 211 | NAA(KGRDAT)=MOD(NCCAA(KGRDAT),100) | ||
| 212 | NAMD(KGRDAT)=MOD(KGRDAT,1000000) | ||
| 213 | NCTH(KSEC)=KSEC/3600 | ||
| 214 | NCENT(KGRDAT)=NCCAA(KGRDAT)/100+MIN(NAA(KGRDAT),1) | ||
| 215 | NYEARC(KGRDAT)=NAA(KGRDAT)+100*(1-MIN(NAA(KGRDAT),1)) | ||
| 216 | NCONSTRUCT_DATE(KCENT,KYEARC,KMONTH,KDAY)=& | ||
| 217 | &(KCENT-1)*10**6+KYEARC*10**4+KMONTH*10**2+KDAY | ||
| 218 | |||
| 219 | NZZAA(KAAAA,KMM)=KAAAA-( (1-SIGN(1,KMM-3))/2 ) | ||
| 220 | NZZMM(KMM)=KMM+6*(1-SIGN(1,KMM-3)) | ||
| 221 | RJUDAT(KAAAA,KMM,KDD)=1720994.5_JPRB + REAL(& | ||
| 222 | &2-NZZAA(KAAAA,KMM)/100 + (NZZAA(KAAAA,KMM)/100)/4 & | ||
| 223 | &+ INT(365.25_JPRB*REAL(NZZAA(KAAAA,KMM),JPRB))& | ||
| 224 | &+ INT(30.601_JPRB*REAL(NZZMM(KMM)+1,JPRB))& | ||
| 225 | &+ KDD,JPRB) | ||
| 226 | RTIME(KAAAA,KMM,KDD,KSS)=(RJUDAT(KAAAA,KMM,KDD)-2451545._JPRB)& | ||
| 227 | &*RDAY+REAL(KSS,JPRB) | ||
| 228 | ! ------------------------------------------------------------- | ||
| 229 | |||
| 230 | ! ----------------------------------------------------------------- | ||
| 231 | |||
| 232 | !* 1. DEFINE FUNDAMENTAL CONSTANTS. | ||
| 233 | ! ----------------------------- | ||
| 234 | |||
| 235 | 1 | print*,'DANS SUCST CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC' | |
| 236 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SUCST',0,ZHOOK_HANDLE) |
| 237 | 1 | RPI=2.0_JPRB*ASIN(1.0_JPRB) | |
| 238 | 1 | RCLUM=299792458._JPRB | |
| 239 | 1 | RHPLA=6.6260755E-34_JPRB | |
| 240 | 1 | RKBOL=1.380658E-23_JPRB | |
| 241 | 1 | RNAVO=6.0221367E+23_JPRB | |
| 242 | |||
| 243 | ! ------------------------------------------------------------------ | ||
| 244 | |||
| 245 | !* 2. DEFINE ASTRONOMICAL CONSTANTS. | ||
| 246 | ! ------------------------------ | ||
| 247 | |||
| 248 | 1 | RDAY=86400._JPRB | |
| 249 | 1 | REA=149597870000._JPRB | |
| 250 | 1 | REPSM=0.409093_JPRB | |
| 251 | |||
| 252 | 1 | RSIYEA=365.25_JPRB*RDAY*2.0_JPRB*RPI/6.283076_JPRB | |
| 253 | 1 | RSIDAY=RDAY/(1.0_JPRB+RDAY/RSIYEA) | |
| 254 | 1 | ROMEGA=2.0_JPRB*RPI/RSIDAY | |
| 255 | |||
| 256 | 1 | IDAT=KDAT | |
| 257 | 1 | ISSS=KSSS | |
| 258 | 1 | ID=NDD(IDAT) | |
| 259 | 1 | IM=NMM(IDAT) | |
| 260 | 1 | IA=NCCAA(IDAT) | |
| 261 | 1 | ZJU=RJUDAT(IA,IM,ID) | |
| 262 | 1 | ZTI=RTIME(IA,IM,ID,ISSS) | |
| 263 | 1 | RTIMST=ZTI | |
| 264 | 1 | RTIMTR=ZTI | |
| 265 | 1 | ZTETA=RTETA(ZTI) | |
| 266 | 1 | ZRS=RRS(ZTETA) | |
| 267 | 1 | ZDE=RDS(ZTETA) | |
| 268 | 1 | ZET=RET(ZTETA) | |
| 269 | 1 | ZRSREL=ZRS/REA | |
| 270 | |||
| 271 | ! ------------------------------------------------------------------ | ||
| 272 | |||
| 273 | !* 3. DEFINE GEOIDE. | ||
| 274 | ! -------------- | ||
| 275 | |||
| 276 | 1 | RG=9.80665_JPRB | |
| 277 | 1 | RA=6371229._JPRB | |
| 278 | 1 | R1SA=REAL(1.0_JPRB/REAL(RA,KIND(1.0_JPRB)),KIND(R1SA)) | |
| 279 | |||
| 280 | ! ------------------------------------------------------------------ | ||
| 281 | |||
| 282 | !* 4. DEFINE RADIATION CONSTANTS. | ||
| 283 | ! --------------------------- | ||
| 284 | |||
| 285 | 1 | RSIGMA=2.0_JPRB * RPI**5 * RKBOL**4 /(15._JPRB* RCLUM**2 * RHPLA**3) | |
| 286 | 1 | RI0=1370._JPRB | |
| 287 | |||
| 288 | ! ------------------------------------------------------------------ | ||
| 289 | |||
| 290 | !* 5. DEFINE THERMODYNAMIC CONSTANTS, GAS PHASE. | ||
| 291 | ! ------------------------------------------ | ||
| 292 | |||
| 293 | 1 | R=RNAVO*RKBOL | |
| 294 | 1 | RMD=28.9644_JPRB | |
| 295 | 1 | RMV=18.0153_JPRB | |
| 296 | 1 | RMO3=47.9942_JPRB | |
| 297 | 1 | RD=1000._JPRB*R/RMD | |
| 298 | 1 | RV=1000._JPRB*R/RMV | |
| 299 | 1 | RCPD=3.5_JPRB*RD | |
| 300 | 1 | RCVD=RCPD-RD | |
| 301 | 1 | RCPV=4._JPRB *RV | |
| 302 | 1 | RCVV=RCPV-RV | |
| 303 | 1 | RKAPPA=RD/RCPD | |
| 304 | 1 | RETV=RV/RD-1.0_JPRB | |
| 305 | 1 | RMCO2=44.0095_JPRB | |
| 306 | 1 | RMCH4=16.04_JPRB | |
| 307 | 1 | RMN2O=44.013_JPRB | |
| 308 | 1 | RMSF6=146.05_JPRB | |
| 309 | 1 | RMRA=222._JPRB | |
| 310 | 1 | RMCO=28.01_JPRB | |
| 311 | 1 | RMHCHO=30.03_JPRB | |
| 312 | 1 | RMNO2=46.01_JPRB | |
| 313 | 1 | RMSO2=64.07_JPRB | |
| 314 | |||
| 315 | ! ------------------------------------------------------------------ | ||
| 316 | |||
| 317 | !* 6. DEFINE THERMODYNAMIC CONSTANTS, LIQUID PHASE. | ||
| 318 | ! --------------------------------------------- | ||
| 319 | |||
| 320 | 1 | RCW=4218._JPRB | |
| 321 | |||
| 322 | ! ------------------------------------------------------------------ | ||
| 323 | |||
| 324 | !* 7. DEFINE THERMODYNAMIC CONSTANTS, SOLID PHASE. | ||
| 325 | ! -------------------------------------------- | ||
| 326 | |||
| 327 | 1 | RCS=2106._JPRB | |
| 328 | |||
| 329 | ! ------------------------------------------------------------------ | ||
| 330 | |||
| 331 | !* 8. DEFINE THERMODYNAMIC CONSTANTS, TRANSITION OF PHASE. | ||
| 332 | ! ---------------------------------------------------- | ||
| 333 | |||
| 334 | 1 | RTT=273.16_JPRB | |
| 335 | 1 | RDT=11.82_JPRB | |
| 336 | 1 | RLVTT=2.5008E+6_JPRB | |
| 337 | 1 | RLSTT=2.8345E+6_JPRB | |
| 338 | 1 | RLVZER=RLVTT+RTT*(RCW-RCPV) | |
| 339 | 1 | RLSZER=RLSTT+RTT*(RCS-RCPV) | |
| 340 | 1 | RLMLT=RLSTT-RLVTT | |
| 341 | 1 | RATM=100000._JPRB | |
| 342 | |||
| 343 | ! ------------------------------------------------------------------ | ||
| 344 | |||
| 345 | !* 9. SATURATED VAPOUR PRESSURE. | ||
| 346 | ! -------------------------- | ||
| 347 | |||
| 348 | 1 | RESTT=611.14_JPRB | |
| 349 | 1 | RGAMW=(RCW-RCPV)/RV | |
| 350 | 1 | RBETW=RLVTT/RV+RGAMW*RTT | |
| 351 | 1 | RALPW=LOG(RESTT)+RBETW/RTT+RGAMW*LOG(RTT) | |
| 352 | 1 | print *,'SUCST: RESTT,RBETW,RTT,RGAMW',RESTT,RBETW,RTT,RGAMW | |
| 353 | 1 | print *,'SUCST: RALPW',RALPW | |
| 354 | 1 | RGAMS=(RCS-RCPV)/RV | |
| 355 | 1 | RBETS=RLSTT/RV+RGAMS*RTT | |
| 356 | 1 | RALPS=LOG(RESTT)+RBETS/RTT+RGAMS*LOG(RTT) | |
| 357 | 1 | print *,'SUCST: RESTT,RBETS,RTT,RGAMS',RESTT,RBETS,RTT,RGAMS | |
| 358 | 1 | print *,'SUCST: RALPS',RALPS | |
| 359 | 1 | RGAMS=(RCS-RCPV)/RV | |
| 360 | 1 | RGAMD=RGAMS-RGAMW | |
| 361 | 1 | RBETD=RBETS-RBETW | |
| 362 | 1 | RALPD=RALPS-RALPW | |
| 363 | |||
| 364 | ! ------------------------------------------------------------------ | ||
| 365 | |||
| 366 | !* 10. PRINTS | ||
| 367 | |||
| 368 | 1 | print*,'KPRINTLEV ',KPRINTLEV | |
| 369 | 1 | print*,'KULOUT ',KULOUT | |
| 370 | |||
| 371 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (KPRINTLEV >= 1) THEN |
| 372 | 1 | WRITE(KULOUT,'(''0*** Constants of the ICM ***'')') | |
| 373 | 1 | WRITE(KULOUT,'('' *** Fundamental constants ***'')') | |
| 374 | 1 | WRITE(KULOUT,'('' PI = '',E13.7,'' -'')')RPI | |
| 375 | 1 | WRITE(KULOUT,'('' c = '',E13.7,''m s-1'')')RCLUM | |
| 376 | 1 | WRITE(KULOUT,'('' h = '',E13.7,''J s'')')RHPLA | |
| 377 | 1 | WRITE(KULOUT,'('' K = '',E13.7,''J K-1'')')RKBOL | |
| 378 | 1 | WRITE(KULOUT,'('' N = '',E13.7,''mol-1'')')RNAVO | |
| 379 | 1 | WRITE(KULOUT,'('' *** Astronomical constants ***'')') | |
| 380 | 1 | WRITE(KULOUT,'('' day = '',E13.7,'' s'')')RDAY | |
| 381 | 1 | WRITE(KULOUT,'('' half g. axis = '',E13.7,'' m'')')REA | |
| 382 | 1 | WRITE(KULOUT,'('' mean anomaly = '',E13.7,'' -'')')REPSM | |
| 383 | 1 | WRITE(KULOUT,'('' sideral year = '',E13.7,'' s'')')RSIYEA | |
| 384 | 1 | WRITE(KULOUT,'('' sideral day = '',E13.7,'' s'')')RSIDAY | |
| 385 | 1 | WRITE(KULOUT,'('' omega = '',E13.7,'' s-1'')')ROMEGA | |
| 386 | |||
| 387 | 1 | WRITE(KULOUT,'('' The initial date of the run is :'')') | |
| 388 | 1 | WRITE(KULOUT,'(1X,I8,1X,I5,5X,I4,1X,I2,1X,I2)')IDAT,ISSS,IA,IM,ID | |
| 389 | 1 | WRITE(KULOUT,'('' The Julian date is : '',F11.2)') ZJU | |
| 390 | 1 | WRITE(KULOUT,'('' Time of the model : '',F15.2,'' s'')')ZTI | |
| 391 | 1 | WRITE(KULOUT,'('' Distance Earth-Sun : '',E13.7,'' m'')')ZRS | |
| 392 | 1 | WRITE(KULOUT,'('' Relative Dist. E-S : '',E13.7,'' m'')')ZRSREL | |
| 393 | 1 | WRITE(KULOUT,'('' Declination : '',F12.5)') ZDE | |
| 394 | 1 | WRITE(KULOUT,'('' Eq. of time : '',F12.5,'' s'')')ZET | |
| 395 | 1 | WRITE(KULOUT,'('' *** Geoide ***'')') | |
| 396 | 1 | WRITE(KULOUT,'('' Gravity = '',E13.7,'' m s-2'')')RG | |
| 397 | 1 | WRITE(KULOUT,'('' Earth radius = '',E13.7,'' m'')')RA | |
| 398 | 1 | WRITE(KULOUT,'('' Inverse E.R. = '',E13.7,'' m'')')R1SA | |
| 399 | 1 | WRITE(KULOUT,'('' *** Radiation ***'')') | |
| 400 | 1 | WRITE(KULOUT,'('' Stefan-Bol. = '',E13.7,'' W m-2 K-4'')') RSIGMA | |
| 401 | 1 | WRITE(KULOUT,'('' Solar const. = '',E13.7,'' W m-2'')')RI0 | |
| 402 | 1 | WRITE(KULOUT,'('' *** Thermodynamic, gas ***'')') | |
| 403 | 1 | WRITE(KULOUT,'('' Perfect gas = '',e13.7)') R | |
| 404 | 1 | WRITE(KULOUT,'('' Dry air mass = '',e13.7)') RMD | |
| 405 | 1 | WRITE(KULOUT,'('' Vapour mass = '',e13.7)') RMV | |
| 406 | 1 | WRITE(KULOUT,'('' Ozone mass = '',e13.7)') RMO3 | |
| 407 | 1 | WRITE(KULOUT,'('' Dry air cst. = '',e13.7)') RD | |
| 408 | 1 | WRITE(KULOUT,'('' Vapour cst. = '',e13.7)') RV | |
| 409 | 1 | WRITE(KULOUT,'('' Cpd = '',e13.7)') RCPD | |
| 410 | 1 | WRITE(KULOUT,'('' Cvd = '',e13.7)') RCVD | |
| 411 | 1 | WRITE(KULOUT,'('' Cpv = '',e13.7)') RCPV | |
| 412 | 1 | WRITE(KULOUT,'('' Cvv = '',e13.7)') RCVV | |
| 413 | 1 | WRITE(KULOUT,'('' Rd/Cpd = '',e13.7)') RKAPPA | |
| 414 | 1 | WRITE(KULOUT,'('' Rv/Rd-1 = '',e13.7)') RETV | |
| 415 | 1 | WRITE(KULOUT,'('' *** Thermodynamic, liquid ***'')') | |
| 416 | 1 | WRITE(KULOUT,'('' Cw = '',E13.7)') RCW | |
| 417 | 1 | WRITE(KULOUT,'('' *** thermodynamic, solid ***'')') | |
| 418 | 1 | WRITE(KULOUT,'('' Cs = '',E13.7)') RCS | |
| 419 | 1 | WRITE(KULOUT,'('' *** Thermodynamic, trans. ***'')') | |
| 420 | 1 | WRITE(KULOUT,'('' Fusion point = '',E13.7)') RTT | |
| 421 | 1 | WRITE(KULOUT,'('' RTT-Tx(ew-ei) = '',E13.7)') RDT | |
| 422 | 1 | WRITE(KULOUT,'('' RLvTt = '',E13.7)') RLVTT | |
| 423 | 1 | WRITE(KULOUT,'('' RLsTt = '',E13.7)') RLSTT | |
| 424 | 1 | WRITE(KULOUT,'('' RLv0 = '',E13.7)') RLVZER | |
| 425 | 1 | WRITE(KULOUT,'('' RLs0 = '',E13.7)') RLSZER | |
| 426 | 1 | WRITE(KULOUT,'('' RLMlt = '',E13.7)') RLMLT | |
| 427 | 1 | WRITE(KULOUT,'('' Normal press. = '',E13.7)') RATM | |
| 428 | 1 | WRITE(KULOUT,'('' Latent heat : '')') | |
| 429 |
3/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
✓ Branch 4 taken 1 times.
|
10 | WRITE(KULOUT,'(10(1X,E10.4))') (10._JPRB*J,J=-4,4) |
| 430 |
3/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
✓ Branch 4 taken 1 times.
|
10 | WRITE(KULOUT,'(10(1X,E10.4))') (RLV(RTT+10._JPRB*J),J=-4,4) |
| 431 |
3/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
✓ Branch 4 taken 1 times.
|
10 | WRITE(KULOUT,'(10(1X,E10.4))') (RLS(RTT+10._JPRB*J),J=-4,4) |
| 432 | 1 | WRITE(KULOUT,'('' *** Thermodynamic, satur. ***'')') | |
| 433 | 1 | WRITE(KULOUT,'('' Fusion point = '',E13.7)') RTT | |
| 434 | 1 | WRITE(KULOUT,'('' es(Tt) = '',e13.7)') RESTT | |
| 435 | 1 | WRITE(KULOUT,'('' es(T) : '')') | |
| 436 |
3/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
✓ Branch 4 taken 1 times.
|
10 | WRITE(KULOUT,'(10(1X,E10.4))') (10._JPRB*J,J=-4,4) |
| 437 |
3/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
✓ Branch 4 taken 1 times.
|
10 | WRITE(KULOUT,'(10(1X,E10.4))') (ESW(RTT+10._JPRB*J),J=-4,4) |
| 438 |
3/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
✓ Branch 4 taken 1 times.
|
10 | WRITE(KULOUT,'(10(1X,E10.4))') (ESS(RTT+10._JPRB*J),J=-4,4) |
| 439 | ! call flush(0) !!!!! A REVOIR (MPL) les 7 lignes qui suivent | ||
| 440 |
2/2✓ Branch 0 taken 9 times.
✓ Branch 1 taken 1 times.
|
10 | do j=1,9 |
| 441 | 9 | print*,'TEST J',j | |
| 442 | 9 | print*,'RTT...',RTT+10._JPRB*(J-5) | |
| 443 | 10 | print*,'ES(RTT...',ES(RTT+10._JPRB*(J-5)) | |
| 444 | enddo | ||
| 445 | 1 | call flush(0) | |
| 446 | |||
| 447 |
3/4✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 9 times.
✓ Branch 4 taken 1 times.
|
10 | WRITE(KULOUT,'(10(1X,E10.4))') (ES (RTT+10._JPRB*J),J=-4,4) |
| 448 | ENDIF | ||
| 449 | |||
| 450 | ! ------------------------------------------------------------------ | ||
| 451 | |||
| 452 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SUCST',1,ZHOOK_HANDLE) |
| 453 | 1 | END SUBROUTINE SUCST | |
| 454 | |||
| 455 |