| 1 | ! |
|---|
| 2 | ! $Header: /home/cvsroot/LMDZ4/libf/phylmd/conf_phys.F90,v 1.3 2005/02/07 15:15:31 fairhead Exp $ |
|---|
| 3 | ! |
|---|
| 4 | ! |
|---|
| 5 | ! |
|---|
| 6 | |
|---|
| 7 | subroutine conf_phys(ok_mensuel,ok_journe,ok_instan,if_ebil) |
|---|
| 8 | |
|---|
| 9 | use IOIPSL |
|---|
| 10 | implicit none |
|---|
| 11 | |
|---|
| 12 | #include "YOMCST.inc" |
|---|
| 13 | #include "clesphys.inc" |
|---|
| 14 | #include "compbl.h" |
|---|
| 15 | #include "comorbit.inc" |
|---|
| 16 | ! |
|---|
| 17 | ! Configuration de la "physique" de LMDZ a l'aide de la fonction |
|---|
| 18 | ! GETIN de IOIPSL |
|---|
| 19 | ! |
|---|
| 20 | ! LF 05/2001 |
|---|
| 21 | ! |
|---|
| 22 | !--- Ca lit le physiq.def --- |
|---|
| 23 | |
|---|
| 24 | ! |
|---|
| 25 | ! ok_mensuel: sorties mensuelles |
|---|
| 26 | ! ok_journe: sorties journalieres |
|---|
| 27 | ! ok_instan: sorties instantanees |
|---|
| 28 | |
|---|
| 29 | |
|---|
| 30 | ! Sortie: |
|---|
| 31 | logical :: ok_mensuel, ok_journe, ok_instan |
|---|
| 32 | integer :: if_ebil |
|---|
| 33 | |
|---|
| 34 | ! Local |
|---|
| 35 | integer :: numout = 6 |
|---|
| 36 | real*4 :: zzz |
|---|
| 37 | |
|---|
| 38 | !Config Key = OK_mensuel |
|---|
| 39 | !Config Desc = Pour des sorties mensuelles |
|---|
| 40 | !Config Def = .true. |
|---|
| 41 | !Config Help = Pour creer le fichier histmth contenant les sorties |
|---|
| 42 | ! mensuelles |
|---|
| 43 | ! |
|---|
| 44 | ok_mensuel = .true. |
|---|
| 45 | call getin('OK_mensuel', ok_mensuel) |
|---|
| 46 | ! |
|---|
| 47 | !Config Key = OK_journe |
|---|
| 48 | !Config Desc = Pour des sorties journalieres |
|---|
| 49 | !Config Def = .false. |
|---|
| 50 | !Config Help = Pour creer le fichier histday contenant les sorties |
|---|
| 51 | ! journalieres |
|---|
| 52 | ! |
|---|
| 53 | ok_journe = .false. |
|---|
| 54 | call getin('OK_journe', ok_journe) |
|---|
| 55 | ! |
|---|
| 56 | !Config Key = OK_instan |
|---|
| 57 | !Config Desc = Pour des sorties instantanees |
|---|
| 58 | !Config Def = .false. |
|---|
| 59 | !Config Help = Pour creer le fichier histins contenant les sorties |
|---|
| 60 | ! instantanees |
|---|
| 61 | ! |
|---|
| 62 | ok_instan = .false. |
|---|
| 63 | call getin('OK_instan', ok_instan) |
|---|
| 64 | ! |
|---|
| 65 | ! |
|---|
| 66 | !Config Key = if_ebil |
|---|
| 67 | !Config Desc = Niveau de sortie pour les diags bilan d'energie |
|---|
| 68 | !Config Def = 0 |
|---|
| 69 | !Config Help = |
|---|
| 70 | ! |
|---|
| 71 | ! |
|---|
| 72 | if_ebil = 0 |
|---|
| 73 | call getin('if_ebil', if_ebil) |
|---|
| 74 | !! |
|---|
| 75 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|---|
| 76 | !! Constante solaire & Parametres orbitaux |
|---|
| 77 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|---|
| 78 | !! |
|---|
| 79 | ! TITAN ! Valeurs par defaut d'apres Fig Tokano. |
|---|
| 80 | ! |
|---|
| 81 | !! |
|---|
| 82 | !Config Key = year_day |
|---|
| 83 | !Config Desc = Duree de l'annee en jour |
|---|
| 84 | !Config Def = |
|---|
| 85 | !Config Help = |
|---|
| 86 | ! |
|---|
| 87 | zzz = 673. |
|---|
| 88 | call getin('year_day', zzz) |
|---|
| 89 | year_day = zzz |
|---|
| 90 | ! |
|---|
| 91 | !Config Key = peri_day |
|---|
| 92 | !Config Desc = position du perihelie en jour |
|---|
| 93 | !Config Def = |
|---|
| 94 | !Config Help = |
|---|
| 95 | ! |
|---|
| 96 | zzz = 533. |
|---|
| 97 | call getin('peri_day', zzz) |
|---|
| 98 | peri_day = zzz |
|---|
| 99 | ! |
|---|
| 100 | !Config Key = periheli |
|---|
| 101 | !Config Desc = Distance au soleil au perihelie |
|---|
| 102 | !Config Def = |
|---|
| 103 | !Config Help = |
|---|
| 104 | ! |
|---|
| 105 | zzz = 1354.5 |
|---|
| 106 | call getin('periheli', zzz) |
|---|
| 107 | periheli = zzz |
|---|
| 108 | !! |
|---|
| 109 | !Config Key = aphelie |
|---|
| 110 | !Config Desc = Distance au soleil a l'aphelie |
|---|
| 111 | !Config Def = |
|---|
| 112 | !Config Help = |
|---|
| 113 | ! |
|---|
| 114 | zzz = 1506.0 |
|---|
| 115 | call getin('aphelie', zzz) |
|---|
| 116 | aphelie = zzz |
|---|
| 117 | !! |
|---|
| 118 | !Config Key = obliquit |
|---|
| 119 | !Config Desc = Obliquite |
|---|
| 120 | !Config Def = |
|---|
| 121 | !Config Help = |
|---|
| 122 | ! |
|---|
| 123 | zzz = 26.7 |
|---|
| 124 | call getin('obliquit', zzz) |
|---|
| 125 | obliquit = zzz |
|---|
| 126 | ! |
|---|
| 127 | !Config Key = solaire |
|---|
| 128 | !Config Desc = Constante solaire en W/m2 |
|---|
| 129 | ! VENUS |
|---|
| 130 | !Config Def = 2620. |
|---|
| 131 | !Config Help = |
|---|
| 132 | ! |
|---|
| 133 | zzz = 2620. |
|---|
| 134 | call getin('solaire', zzz) |
|---|
| 135 | solaire = zzz |
|---|
| 136 | ! |
|---|
| 137 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|---|
| 138 | ! PARAMETER FOR THE PLANETARY BOUNDARY LAYER AND SOIL |
|---|
| 139 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|---|
| 140 | ! |
|---|
| 141 | !Config Key = iflag_pbl |
|---|
| 142 | !Config Desc = |
|---|
| 143 | !Config Def = 1 |
|---|
| 144 | !Config Help = |
|---|
| 145 | ! |
|---|
| 146 | ! 2 = calculs Cd et K simples pour VENUS : |
|---|
| 147 | ! parametres = z0, lmixmin, ksta (en dur: umin2,ric,cepdu2,karman) |
|---|
| 148 | ! 1 = calculs Cd et K issus LMDZ Terre |
|---|
| 149 | ! parametres = ksta, ok_kzmin (et plein d'autres en dur...) |
|---|
| 150 | ! 6-9 = schema des thermiques Fred |
|---|
| 151 | iflag_pbl = 1 |
|---|
| 152 | call getin('iflag_pbl',iflag_pbl) |
|---|
| 153 | |
|---|
| 154 | ! |
|---|
| 155 | !Config Key = ksta |
|---|
| 156 | !Config Desc = |
|---|
| 157 | !Config Def = 1.0e-7 |
|---|
| 158 | !Config Help = |
|---|
| 159 | ! |
|---|
| 160 | zzz = 1.0e-7 |
|---|
| 161 | call getin('ksta',zzz) |
|---|
| 162 | ksta = zzz |
|---|
| 163 | |
|---|
| 164 | ! |
|---|
| 165 | !Config Key = z0 |
|---|
| 166 | !Config Desc = |
|---|
| 167 | !Config Def = 1.0e-2 |
|---|
| 168 | !Config Help = |
|---|
| 169 | ! |
|---|
| 170 | zzz = 1.0e-2 |
|---|
| 171 | call getin('z0',zzz) |
|---|
| 172 | z0 = zzz |
|---|
| 173 | |
|---|
| 174 | ! |
|---|
| 175 | !Config Key = lmixmin |
|---|
| 176 | !Config Desc = |
|---|
| 177 | !Config Def = 35. |
|---|
| 178 | !Config Help = |
|---|
| 179 | ! |
|---|
| 180 | zzz = 35. |
|---|
| 181 | call getin('lmixmin',zzz) |
|---|
| 182 | lmixmin = zzz |
|---|
| 183 | |
|---|
| 184 | ! |
|---|
| 185 | ! |
|---|
| 186 | !Config Key = ok_kzmin |
|---|
| 187 | !Config Desc = |
|---|
| 188 | !Config Def = .false. |
|---|
| 189 | !Config Help = |
|---|
| 190 | ! |
|---|
| 191 | ok_kzmin = .false. |
|---|
| 192 | call getin('ok_kzmin',ok_kzmin) |
|---|
| 193 | |
|---|
| 194 | |
|---|
| 195 | !Config Key = iflag_ajs |
|---|
| 196 | !Config Desc = |
|---|
| 197 | !Config Def = 0 |
|---|
| 198 | !Config Help = |
|---|
| 199 | ! |
|---|
| 200 | iflag_ajs = 1 |
|---|
| 201 | call getin('iflag_ajs',iflag_ajs) |
|---|
| 202 | |
|---|
| 203 | ! |
|---|
| 204 | !Config Key = inertie |
|---|
| 205 | !Config Desc = |
|---|
| 206 | !Config Def = 2000. |
|---|
| 207 | !Config Help = |
|---|
| 208 | ! |
|---|
| 209 | zzz = 2000. |
|---|
| 210 | call getin('inertie',zzz) |
|---|
| 211 | inertie = zzz |
|---|
| 212 | ! |
|---|
| 213 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|---|
| 214 | ! parametres CHIMIE |
|---|
| 215 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|---|
| 216 | ! |
|---|
| 217 | !Config Key = chimi |
|---|
| 218 | !Config Desc = |
|---|
| 219 | !Config Def = .false. |
|---|
| 220 | !Config Help = |
|---|
| 221 | ! |
|---|
| 222 | chimi = .false. |
|---|
| 223 | call getin('chimi',chimi) |
|---|
| 224 | |
|---|
| 225 | ! |
|---|
| 226 | !Config Key = vchim |
|---|
| 227 | !Config Desc = |
|---|
| 228 | !Config Def = 1 |
|---|
| 229 | !Config Help = |
|---|
| 230 | ! |
|---|
| 231 | vchim = 1 |
|---|
| 232 | call getin('vchim',vchim) |
|---|
| 233 | |
|---|
| 234 | ! |
|---|
| 235 | !Config Key = aerprod |
|---|
| 236 | !Config Desc = |
|---|
| 237 | !Config Def = 0 |
|---|
| 238 | !Config Help = |
|---|
| 239 | ! |
|---|
| 240 | aerprod = 0 |
|---|
| 241 | call getin('aerprod',aerprod) |
|---|
| 242 | |
|---|
| 243 | ! |
|---|
| 244 | !Config Key = htoh2 |
|---|
| 245 | !Config Desc = |
|---|
| 246 | !Config Def = 1 |
|---|
| 247 | !Config Help = |
|---|
| 248 | ! |
|---|
| 249 | htoh2 = 1 |
|---|
| 250 | call getin('htoh2',htoh2) |
|---|
| 251 | |
|---|
| 252 | ! |
|---|
| 253 | !Config Key = ylellouch |
|---|
| 254 | !Config Desc = |
|---|
| 255 | !Config Def = .true. |
|---|
| 256 | !Config Help = |
|---|
| 257 | ! |
|---|
| 258 | ylellouch = .true. |
|---|
| 259 | call getin('ylellouch',ylellouch) |
|---|
| 260 | |
|---|
| 261 | ! |
|---|
| 262 | !Config Key = hcnrad |
|---|
| 263 | !Config Desc = |
|---|
| 264 | !Config Def = .false. |
|---|
| 265 | !Config Help = |
|---|
| 266 | ! |
|---|
| 267 | hcnrad = .false. |
|---|
| 268 | call getin('hcnrad',hcnrad) |
|---|
| 269 | |
|---|
| 270 | ! |
|---|
| 271 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|---|
| 272 | ! parametres MICROPHYSIQUE |
|---|
| 273 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|---|
| 274 | ! |
|---|
| 275 | !Config Key = microfi |
|---|
| 276 | !Config Desc = |
|---|
| 277 | !Config Def = 1 |
|---|
| 278 | !Config Help = |
|---|
| 279 | ! |
|---|
| 280 | microfi = 1 |
|---|
| 281 | call getin('microfi',microfi) |
|---|
| 282 | |
|---|
| 283 | ! |
|---|
| 284 | !Config Key = tx |
|---|
| 285 | !Config Desc = |
|---|
| 286 | !Config Def = 3.5 |
|---|
| 287 | !Config Help = |
|---|
| 288 | ! |
|---|
| 289 | zzz = 3.5 |
|---|
| 290 | call getin('tx',zzz) |
|---|
| 291 | tx = zzz |
|---|
| 292 | |
|---|
| 293 | ! |
|---|
| 294 | !Config Key = tcorrect |
|---|
| 295 | !Config Desc = |
|---|
| 296 | !Config Def = 1. |
|---|
| 297 | !Config Help = |
|---|
| 298 | ! |
|---|
| 299 | zzz = 1. |
|---|
| 300 | call getin('tcorrect',zzz) |
|---|
| 301 | tcorrect = zzz |
|---|
| 302 | |
|---|
| 303 | ! |
|---|
| 304 | !Config Key = cutoff |
|---|
| 305 | !Config Desc = |
|---|
| 306 | !Config Def = 2 |
|---|
| 307 | !Config Help = |
|---|
| 308 | ! |
|---|
| 309 | cutoff = 2 |
|---|
| 310 | call getin('cutoff',cutoff) |
|---|
| 311 | |
|---|
| 312 | ! |
|---|
| 313 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|---|
| 314 | ! PARAMETER FOR THE OUTPUT LEVELS |
|---|
| 315 | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|---|
| 316 | ! |
|---|
| 317 | ! |
|---|
| 318 | !Config Key = lev_histmth |
|---|
| 319 | !Config Desc = |
|---|
| 320 | !Config Def = 2 |
|---|
| 321 | !Config Help = |
|---|
| 322 | ! |
|---|
| 323 | lev_histmth = 2 |
|---|
| 324 | call getin('lev_histmth',lev_histmth) |
|---|
| 325 | |
|---|
| 326 | ! |
|---|
| 327 | !Config Key = lev_histday |
|---|
| 328 | !Config Desc = |
|---|
| 329 | !Config Def = 1 |
|---|
| 330 | !Config Help = |
|---|
| 331 | ! |
|---|
| 332 | lev_histday = 1 |
|---|
| 333 | call getin('lev_histday',lev_histday) |
|---|
| 334 | |
|---|
| 335 | ! |
|---|
| 336 | ! |
|---|
| 337 | !Config Key = |
|---|
| 338 | !Config Desc = |
|---|
| 339 | !Config Def = |
|---|
| 340 | !Config Help = |
|---|
| 341 | ! |
|---|
| 342 | ! = |
|---|
| 343 | ! call getin('',) |
|---|
| 344 | ! |
|---|
| 345 | ! |
|---|
| 346 | ! |
|---|
| 347 | ! |
|---|
| 348 | |
|---|
| 349 | write(numout,*)' ##############################################' |
|---|
| 350 | write(numout,*)' Configuration des parametres de la physique: ' |
|---|
| 351 | write(numout,*)' Sortie mensuelle = ', ok_mensuel |
|---|
| 352 | write(numout,*)' Sortie journaliere = ', ok_journe |
|---|
| 353 | write(numout,*)' Sortie instantanee = ', ok_instan |
|---|
| 354 | write(numout,*)' Sortie bilan d energie, if_ebil =', if_ebil |
|---|
| 355 | write(numout,*)' Duree de l annee = ',year_day |
|---|
| 356 | write(numout,*)' Position du perihelie = ',peri_day |
|---|
| 357 | write(numout,*)' Perihelie = ',periheli |
|---|
| 358 | write(numout,*)' Aphelie = ',aphelie |
|---|
| 359 | write(numout,*)' Obliquite =',obliquit |
|---|
| 360 | write(numout,*)' iflag_pbl = ', iflag_pbl |
|---|
| 361 | write(numout,*)' z0 = ',z0 |
|---|
| 362 | write(numout,*)' lmixmin = ',lmixmin |
|---|
| 363 | write(numout,*)' ksta = ',ksta |
|---|
| 364 | write(numout,*)' ok_kzmin = ',ok_kzmin |
|---|
| 365 | write(numout,*)' inertie = ', inertie |
|---|
| 366 | write(numout,*)' iflag_ajs = ', iflag_ajs |
|---|
| 367 | write(numout,*)' chimi = ', chimi |
|---|
| 368 | write(numout,*)' vchim = ', vchim |
|---|
| 369 | write(numout,*)' aerprod = ', aerprod |
|---|
| 370 | write(numout,*)' htoh2 = ', htoh2 |
|---|
| 371 | write(numout,*)' ylellouch = ', ylellouch |
|---|
| 372 | write(numout,*)' hcnrad = ', hcnrad |
|---|
| 373 | write(numout,*)' microfi = ', microfi |
|---|
| 374 | write(numout,*)' tx = ', tx |
|---|
| 375 | write(numout,*)' tcorrect = ', tcorrect |
|---|
| 376 | write(numout,*)' cutoff = ', cutoff |
|---|
| 377 | write(numout,*)' lev_histmth = ',lev_histmth |
|---|
| 378 | write(numout,*)' lev_histday = ',lev_histday |
|---|
| 379 | |
|---|
| 380 | return |
|---|
| 381 | |
|---|
| 382 | end subroutine conf_phys |
|---|
| 383 | |
|---|