Changeset 2142 for LMDZ5/trunk/libf/dyn3dpar
- Timestamp:
- Nov 14, 2014, 2:32:39 PM (10 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/dyn3dpar/conf_gcm.F90
r2141 r2142 1 ! 1 2 2 ! $Id$ 3 ! 4 ! 5 ! 6 SUBROUTINE conf_gcm( tapedef, etatinit, clesphy0 ) 7 ! 8 USE control_mod 3 4 SUBROUTINE conf_gcm( tapedef, etatinit, clesphy0 ) 5 6 USE control_mod 9 7 #ifdef CPP_IOIPSL 10 8 use IOIPSL 11 9 #else 12 ! if not using IOIPSL, we still need to use (a local version of) getin13 10 ! if not using IOIPSL, we still need to use (a local version of) getin 11 use ioipsl_getincom 14 12 #endif 15 use misc_mod 16 use mod_filtre_fft, ONLY : use_filtre_fft 17 use mod_hallo, ONLY : use_mpi_alloc 18 USE infotrac, ONLY : type_trac 19 use assert_m, only: assert 20 21 IMPLICIT NONE 22 !----------------------------------------------------------------------- 23 ! Auteurs : L. Fairhead , P. Le Van . 24 ! 25 ! Arguments : 26 ! 27 ! tapedef : 28 ! etatinit : = TRUE , on ne compare pas les valeurs des para- 29 ! -metres du zoom avec celles lues sur le fichier start . 30 ! clesphy0 : sortie . 31 ! 32 LOGICAL etatinit 33 INTEGER tapedef 34 35 INTEGER longcles 36 PARAMETER( longcles = 20 ) 37 REAL clesphy0( longcles ) 38 ! 39 ! Declarations : 40 ! -------------- 41 #include "dimensions.h" 42 #include "paramet.h" 43 #include "logic.h" 44 #include "serre.h" 45 #include "comdissnew.h" 46 #include "temps.h" 47 #include "comconst.h" 48 49 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 50 ! #include "clesphys.h" 51 #include "iniprint.h" 52 ! 53 ! 54 ! local: 55 ! ------ 56 57 CHARACTER ch1*72,ch2*72,ch3*72,ch4*12 58 REAL clonn,clatt,grossismxx,grossismyy 59 REAL dzoomxx,dzoomyy, tauxx,tauyy 60 LOGICAL fxyhypbb, ysinuss 61 INTEGER i 62 character(len=*),parameter :: modname="conf_gcm" 63 character (len=80) :: abort_message 13 use misc_mod 14 use mod_filtre_fft, ONLY : use_filtre_fft 15 use mod_hallo, ONLY : use_mpi_alloc 16 USE infotrac, ONLY : type_trac 17 use assert_m, only: assert 18 19 IMPLICIT NONE 20 !----------------------------------------------------------------------- 21 ! Auteurs : L. Fairhead , P. Le Van . 22 23 ! Arguments : 24 25 ! tapedef : 26 ! etatinit : = TRUE , on ne compare pas les valeurs des para- 27 ! -metres du zoom avec celles lues sur le fichier start . 28 ! clesphy0 : sortie . 29 30 LOGICAL etatinit 31 INTEGER tapedef 32 33 INTEGER longcles 34 PARAMETER( longcles = 20 ) 35 REAL clesphy0( longcles ) 36 37 ! Declarations : 38 ! -------------- 39 include "dimensions.h" 40 include "paramet.h" 41 include "logic.h" 42 include "serre.h" 43 include "comdissnew.h" 44 include "temps.h" 45 include "comconst.h" 46 47 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 48 ! include "clesphys.h" 49 include "iniprint.h" 50 51 ! local: 52 ! ------ 53 54 CHARACTER ch1*72,ch2*72,ch3*72,ch4*12 55 REAL clonn,clatt,grossismxx,grossismyy 56 REAL dzoomxx,dzoomyy, tauxx,tauyy 57 LOGICAL fxyhypbb, ysinuss 58 INTEGER i 59 character(len=*),parameter :: modname="conf_gcm" 60 character (len=80) :: abort_message 64 61 #ifdef CPP_OMP 65 62 integer,external :: OMP_GET_NUM_THREADS 66 63 #endif 67 ! 68 ! -------------------------------------------------------------------69 ! 70 ! ......... Version du 29/04/97 ..........71 ! 72 ! Nouveaux parametres nitergdiv,nitergrot,niterh,tetagdiv,tetagrot,73 ! tetatemp ajoutes pour la dissipation .74 ! 75 ! Autre parametre ajoute en fin de liste de tapedef : ** fxyhypb **76 ! 77 ! Si fxyhypb = .TRUE. , choix de la fonction a derivee tangente hyperb.78 ! Sinon , choix de fxynew , a derivee sinusoidale ..79 ! 80 ! ...... etatinit = . TRUE. si defrun est appele dans ETAT0_LMD ou81 ! LIMIT_LMD pour l'initialisation de start.dat (dic) et82 ! de limit.dat ( dic) ...........83 ! Sinon etatinit = . FALSE .84 ! 85 ! Donc etatinit = .F. si on veut comparer les valeurs de grossismx ,86 ! grossismy,clon,clat, fxyhypb lues sur le fichier start avec87 ! celles passees par run.def , au debut du gcm, apres l'appel a88 ! lectba .89 ! Ces parmetres definissant entre autres la grille et doivent etre90 ! pareils et coherents , sinon il y aura divergence du gcm .91 ! 92 !-----------------------------------------------------------------------93 ! initialisations:94 ! ----------------95 96 !Config Key = lunout97 !Config Desc = unite de fichier pour les impressions98 !Config Def = 699 !Config Help = unite de fichier pour les impressions100 !Config (defaut sortie standard = 6)101 102 103 104 OPEN(UNIT=lunout,FILE='lmdz.out_0000',ACTION='write',105 &STATUS='unknown',FORM='formatted')106 107 108 109 64 65 ! ------------------------------------------------------------------- 66 67 ! ......... Version du 29/04/97 .......... 68 69 ! Nouveaux parametres nitergdiv,nitergrot,niterh,tetagdiv,tetagrot, 70 ! tetatemp ajoutes pour la dissipation . 71 72 ! Autre parametre ajoute en fin de liste de tapedef : ** fxyhypb ** 73 74 ! Si fxyhypb = .TRUE. , choix de la fonction a derivee tangente hyperb. 75 ! Sinon , choix de fxynew , a derivee sinusoidale .. 76 77 ! ...... etatinit = . TRUE. si defrun est appele dans ETAT0_LMD ou 78 ! LIMIT_LMD pour l'initialisation de start.dat (dic) et 79 ! de limit.dat ( dic) ........... 80 ! Sinon etatinit = . FALSE . 81 82 ! Donc etatinit = .F. si on veut comparer les valeurs de grossismx , 83 ! grossismy,clon,clat, fxyhypb lues sur le fichier start avec 84 ! celles passees par run.def , au debut du gcm, apres l'appel a 85 ! lectba . 86 ! Ces parmetres definissant entre autres la grille et doivent etre 87 ! pareils et coherents , sinon il y aura divergence du gcm . 88 89 !----------------------------------------------------------------------- 90 ! initialisations: 91 ! ---------------- 92 93 !Config Key = lunout 94 !Config Desc = unite de fichier pour les impressions 95 !Config Def = 6 96 !Config Help = unite de fichier pour les impressions 97 !Config (defaut sortie standard = 6) 98 lunout=6 99 CALL getin('lunout', lunout) 100 IF (lunout /= 5 .and. lunout /= 6) THEN 101 OPEN(UNIT=lunout,FILE='lmdz.out_0000',ACTION='write', & 102 STATUS='unknown',FORM='formatted') 103 ENDIF 104 105 adjust=.false. 106 call getin('adjust',adjust) 110 107 111 108 #ifdef CPP_OMP 112 113 !$OMP PARALLEL114 115 write(lunout,*)'conf_gcm: Error, adjust should be set to n'116 &,' when running with OpenMP threads'117 118 119 120 !$OMP END PARALLEL109 ! adjust=y not implemented in case of OpenMP threads... 110 !$OMP PARALLEL 111 if ((OMP_GET_NUM_THREADS()>1).and.adjust) then 112 write(lunout,*)'conf_gcm: Error, adjust should be set to n' & 113 ,' when running with OpenMP threads' 114 abort_message = 'Wrong value for adjust' 115 call abort_gcm(modname,abort_message,1) 116 endif 117 !$OMP END PARALLEL 121 118 #endif 122 119 123 itaumax=0 124 call getin('itaumax',itaumax); 125 if (itaumax<=0) itaumax=HUGE(itaumax) 126 127 !Config Key = prt_level 128 !Config Desc = niveau d'impressions de débogage 129 !Config Def = 0 130 !Config Help = Niveau d'impression pour le débogage 131 !Config (0 = minimum d'impression) 132 prt_level = 0 133 CALL getin('prt_level',prt_level) 134 135 !----------------------------------------------------------------------- 136 ! Parametres de controle du run: 137 !----------------------------------------------------------------------- 138 !Config Key = planet_type 139 !Config Desc = planet type ("earth", "mars", "venus", ...) 140 !Config Def = earth 141 !Config Help = this flag sets the type of atymosphere that is considered 142 planet_type="earth" 143 CALL getin('planet_type',planet_type) 144 145 !Config Key = calend 146 !Config Desc = type de calendrier utilise 147 !Config Def = earth_360d 148 !Config Help = valeur possible: earth_360d, earth_365d, earth_366d 149 !Config 150 calend = 'earth_360d' 151 CALL getin('calend', calend) 152 153 !Config Key = dayref 154 !Config Desc = Jour de l'etat initial 155 !Config Def = 1 156 !Config Help = Jour de l'etat initial ( = 350 si 20 Decembre , 157 !Config par expl. ,comme ici ) ... A completer 158 dayref=1 159 CALL getin('dayref', dayref) 160 161 !Config Key = anneeref 162 !Config Desc = Annee de l'etat initial 163 !Config Def = 1998 164 !Config Help = Annee de l'etat initial 165 !Config ( avec 4 chiffres ) ... A completer 166 anneeref = 1998 167 CALL getin('anneeref',anneeref) 168 169 !Config Key = raz_date 170 !Config Desc = Remise a zero de la date initiale 171 !Config Def = 0 (pas de remise a zero) 172 !Config Help = Remise a zero de la date initiale 173 !Config 0 pas de remise a zero, on garde la date du fichier restart 174 !Config 1 prise en compte de la date de gcm.def avec remise a zero 175 !Config des compteurs de pas de temps 176 raz_date = 0 177 CALL getin('raz_date', raz_date) 178 179 !Config Key = resetvarc 180 !Config Desc = Reinit des variables de controle 181 !Config Def = n 182 !Config Help = Reinit des variables de controle 183 resetvarc = .false. 184 CALL getin('resetvarc',resetvarc) 185 186 !Config Key = nday 187 !Config Desc = Nombre de jours d'integration 188 !Config Def = 10 189 !Config Help = Nombre de jours d'integration 190 !Config ... On pourait aussi permettre des mois ou des annees ! 191 nday = 10 192 CALL getin('nday',nday) 193 194 !Config Key = starttime 195 !Config Desc = Heure de depart de la simulation 196 !Config Def = 0 197 !Config Help = Heure de depart de la simulation 198 !Config en jour 199 starttime = 0 200 CALL getin('starttime',starttime) 201 202 !Config Key = day_step 203 !Config Desc = nombre de pas par jour 204 !Config Def = 240 205 !Config Help = nombre de pas par jour (multiple de iperiod) ( 206 !Config ici pour dt = 1 min ) 207 day_step = 240 208 CALL getin('day_step',day_step) 209 210 !Config Key = nsplit_phys 211 nsplit_phys = 1 212 CALL getin('nsplit_phys',nsplit_phys) 213 214 !Config Key = iperiod 215 !Config Desc = periode pour le pas Matsuno 216 !Config Def = 5 217 !Config Help = periode pour le pas Matsuno (en pas de temps) 218 iperiod = 5 219 CALL getin('iperiod',iperiod) 220 221 !Config Key = iapp_tracvl 222 !Config Desc = frequence du groupement des flux 223 !Config Def = iperiod 224 !Config Help = frequence du groupement des flux (en pas de temps) 225 iapp_tracvl = iperiod 226 CALL getin('iapp_tracvl',iapp_tracvl) 227 228 !Config Key = iconser 229 !Config Desc = periode de sortie des variables de controle 230 !Config Def = 240 231 !Config Help = periode de sortie des variables de controle 232 !Config (En pas de temps) 233 iconser = 240 234 CALL getin('iconser', iconser) 235 236 !Config Key = iecri 237 !Config Desc = periode d'ecriture du fichier histoire 238 !Config Def = 1 239 !Config Help = periode d'ecriture du fichier histoire (en jour) 240 iecri = 1 241 CALL getin('iecri',iecri) 242 243 244 !Config Key = periodav 245 !Config Desc = periode de stockage fichier histmoy 246 !Config Def = 1 247 !Config Help = periode de stockage fichier histmoy (en jour) 248 periodav = 1. 249 CALL getin('periodav',periodav) 250 251 !Config Key = output_grads_dyn 252 !Config Desc = output dynamics diagnostics in 'dyn.dat' file 253 !Config Def = n 254 !Config Help = output dynamics diagnostics in Grads-readable 'dyn.dat' file 255 output_grads_dyn=.false. 256 CALL getin('output_grads_dyn',output_grads_dyn) 257 258 !Config Key = dissip_period 259 !Config Desc = periode de la dissipation 260 !Config Def = 0 261 !Config Help = periode de la dissipation 262 !Config dissip_period=0 => la valeur sera calcule dans inidissip 263 !Config dissip_period>0 => on prend cette valeur 264 dissip_period = 0 265 CALL getin('dissip_period',dissip_period) 266 267 !cc .... P. Le Van , modif le 29/04/97 .pour la dissipation ... 268 !cc 269 270 !Config Key = lstardis 271 !Config Desc = choix de l'operateur de dissipation 272 !Config Def = y 273 !Config Help = choix de l'operateur de dissipation 274 !Config 'y' si on veut star et 'n' si on veut non-start ! 275 !Config Moi y en a pas comprendre ! 276 lstardis = .TRUE. 277 CALL getin('lstardis',lstardis) 278 279 280 !Config Key = nitergdiv 281 !Config Desc = Nombre d'iteration de gradiv 282 !Config Def = 1 283 !Config Help = nombre d'iterations de l'operateur de dissipation 284 !Config gradiv 285 nitergdiv = 1 286 CALL getin('nitergdiv',nitergdiv) 287 288 !Config Key = nitergrot 289 !Config Desc = nombre d'iterations de nxgradrot 290 !Config Def = 2 291 !Config Help = nombre d'iterations de l'operateur de dissipation 292 !Config nxgradrot 293 nitergrot = 2 294 CALL getin('nitergrot',nitergrot) 295 296 297 !Config Key = niterh 298 !Config Desc = nombre d'iterations de divgrad 299 !Config Def = 2 300 !Config Help = nombre d'iterations de l'operateur de dissipation 301 !Config divgrad 302 niterh = 2 303 CALL getin('niterh',niterh) 304 305 306 !Config Key = tetagdiv 307 !Config Desc = temps de dissipation pour div 308 !Config Def = 7200 309 !Config Help = temps de dissipation des plus petites longeur 310 !Config d'ondes pour u,v (gradiv) 311 tetagdiv = 7200. 312 CALL getin('tetagdiv',tetagdiv) 313 314 !Config Key = tetagrot 315 !Config Desc = temps de dissipation pour grad 316 !Config Def = 7200 317 !Config Help = temps de dissipation des plus petites longeur 318 !Config d'ondes pour u,v (nxgradrot) 319 tetagrot = 7200. 320 CALL getin('tetagrot',tetagrot) 321 322 !Config Key = tetatemp 323 !Config Desc = temps de dissipation pour h 324 !Config Def = 7200 325 !Config Help = temps de dissipation des plus petites longeur 326 !Config d'ondes pour h (divgrad) 327 tetatemp = 7200. 328 CALL getin('tetatemp',tetatemp ) 329 330 ! Parametres controlant la variation sur la verticale des constantes de 331 ! dissipation. 332 ! Pour le moment actifs uniquement dans la version a 39 niveaux 333 ! avec ok_strato=y 334 335 dissip_factz=4. 336 dissip_deltaz=10. 337 dissip_zref=30. 338 CALL getin('dissip_factz',dissip_factz ) 339 CALL getin('dissip_deltaz',dissip_deltaz ) 340 CALL getin('dissip_zref',dissip_zref ) 341 342 ! top_bound sponge: only active if ok_strato=.true. and iflag_top_bound!=0 343 ! iflag_top_bound=0 for no sponge 344 ! iflag_top_bound=1 for sponge over 4 topmost layers 345 ! iflag_top_bound=2 for sponge from top to ~1% of top layer pressure 346 iflag_top_bound=1 347 CALL getin('iflag_top_bound',iflag_top_bound) 348 349 ! mode_top_bound : fields towards which sponge relaxation will be done: 350 ! mode_top_bound=0: no relaxation 351 ! mode_top_bound=1: u and v relax towards 0 352 ! mode_top_bound=2: u and v relax towards their zonal mean 353 ! mode_top_bound=3: u,v and pot. temp. relax towards their zonal mean 354 mode_top_bound=3 355 CALL getin('mode_top_bound',mode_top_bound) 356 357 ! top_bound sponge : inverse of charactericstic relaxation time scale for sponge 358 tau_top_bound=1.e-5 359 CALL getin('tau_top_bound',tau_top_bound) 360 361 !Config Key = coefdis 362 !Config Desc = coefficient pour gamdissip 363 !Config Def = 0 364 !Config Help = coefficient pour gamdissip 365 coefdis = 0. 366 CALL getin('coefdis',coefdis) 367 368 !Config Key = purmats 369 !Config Desc = Schema d'integration 370 !Config Def = n 371 !Config Help = Choix du schema d'integration temporel. 372 !Config y = pure Matsuno sinon c'est du Matsuno-leapfrog 373 purmats = .FALSE. 374 CALL getin('purmats',purmats) 375 376 !Config Key = ok_guide 377 !Config Desc = Guidage 378 !Config Def = n 379 !Config Help = Guidage 380 ok_guide = .FALSE. 381 CALL getin('ok_guide',ok_guide) 382 383 if (ok_guide .and. adjust) call abort_gcm("conf_gcm", 384 $ "adjust does not work with ok_guide", 1) 385 386 !Config Key = read_start 387 !Config Desc = Initialize model using a 'start.nc' file 388 !Config Def = y 389 !Config Help = y: intialize dynamical fields using a 'start.nc' file 390 ! n: fields are initialized by 'iniacademic' routine 391 read_start= .true. 392 CALL getin('read_start',read_start) 393 394 !Config Key = iflag_phys 395 !Config Desc = Avec ls physique 396 !Config Def = 1 397 !Config Help = Permet de faire tourner le modele sans 398 !Config physique. 399 iflag_phys = 1 400 CALL getin('iflag_phys',iflag_phys) 401 402 403 !Config Key = iphysiq 404 !Config Desc = Periode de la physique 405 !Config Def = 5 406 !Config Help = Periode de la physique en pas de temps de la dynamique. 407 iphysiq = 5 408 CALL getin('iphysiq', iphysiq) 409 410 if (mod(iphysiq, iperiod) /= 0) call abort_gcm("conf_gcm", 411 $ "iphysiq must be a multiple of iperiod", 1) 412 413 !Config Key = ip_ebil_dyn 414 !Config Desc = PRINT level for energy conserv. diag. 415 !Config Def = 0 416 !Config Help = PRINT level for energy conservation diag. ; 417 ! les options suivantes existent : 418 !Config 0 pas de print 419 !Config 1 pas de print 420 !Config 2 print, 421 ip_ebil_dyn = 0 422 CALL getin('ip_ebil_dyn',ip_ebil_dyn) 423 ! 424 425 426 !cc .... P. Le Van , ajout le 7/03/95 .pour le zoom ... 427 ! ......... ( modif le 17/04/96 ) ......... 428 ! 429 IF( etatinit ) GO TO 100 430 431 !Config Key = clon 432 !Config Desc = centre du zoom, longitude 433 !Config Def = 0 434 !Config Help = longitude en degres du centre 435 !Config du zoom 436 clonn = 0. 437 CALL getin('clon',clonn) 438 439 !Config Key = clat 440 !Config Desc = centre du zoom, latitude 441 !Config Def = 0 442 !Config Help = latitude en degres du centre du zoom 443 !Config 444 clatt = 0. 445 CALL getin('clat',clatt) 446 447 ! 448 ! 449 IF( ABS(clat - clatt).GE. 0.001 ) THEN 450 write(lunout,*)'conf_gcm: La valeur de clat passee par run.def', 451 & ' est differente de celle lue sur le fichier start ' 120 itaumax=0 121 call getin('itaumax',itaumax); 122 if (itaumax<=0) itaumax=HUGE(itaumax) 123 124 !Config Key = prt_level 125 !Config Desc = niveau d'impressions de débogage 126 !Config Def = 0 127 !Config Help = Niveau d'impression pour le débogage 128 !Config (0 = minimum d'impression) 129 prt_level = 0 130 CALL getin('prt_level',prt_level) 131 132 !----------------------------------------------------------------------- 133 ! Parametres de controle du run: 134 !----------------------------------------------------------------------- 135 !Config Key = planet_type 136 !Config Desc = planet type ("earth", "mars", "venus", ...) 137 !Config Def = earth 138 !Config Help = this flag sets the type of atymosphere that is considered 139 planet_type="earth" 140 CALL getin('planet_type',planet_type) 141 142 !Config Key = calend 143 !Config Desc = type de calendrier utilise 144 !Config Def = earth_360d 145 !Config Help = valeur possible: earth_360d, earth_365d, earth_366d 146 !Config 147 calend = 'earth_360d' 148 CALL getin('calend', calend) 149 150 !Config Key = dayref 151 !Config Desc = Jour de l'etat initial 152 !Config Def = 1 153 !Config Help = Jour de l'etat initial ( = 350 si 20 Decembre , 154 !Config par expl. ,comme ici ) ... A completer 155 dayref=1 156 CALL getin('dayref', dayref) 157 158 !Config Key = anneeref 159 !Config Desc = Annee de l'etat initial 160 !Config Def = 1998 161 !Config Help = Annee de l'etat initial 162 !Config ( avec 4 chiffres ) ... A completer 163 anneeref = 1998 164 CALL getin('anneeref',anneeref) 165 166 !Config Key = raz_date 167 !Config Desc = Remise a zero de la date initiale 168 !Config Def = 0 (pas de remise a zero) 169 !Config Help = Remise a zero de la date initiale 170 !Config 0 pas de remise a zero, on garde la date du fichier restart 171 !Config 1 prise en compte de la date de gcm.def avec remise a zero 172 !Config des compteurs de pas de temps 173 raz_date = 0 174 CALL getin('raz_date', raz_date) 175 176 !Config Key = resetvarc 177 !Config Desc = Reinit des variables de controle 178 !Config Def = n 179 !Config Help = Reinit des variables de controle 180 resetvarc = .false. 181 CALL getin('resetvarc',resetvarc) 182 183 !Config Key = nday 184 !Config Desc = Nombre de jours d'integration 185 !Config Def = 10 186 !Config Help = Nombre de jours d'integration 187 !Config ... On pourait aussi permettre des mois ou des annees ! 188 nday = 10 189 CALL getin('nday',nday) 190 191 !Config Key = starttime 192 !Config Desc = Heure de depart de la simulation 193 !Config Def = 0 194 !Config Help = Heure de depart de la simulation 195 !Config en jour 196 starttime = 0 197 CALL getin('starttime',starttime) 198 199 !Config Key = day_step 200 !Config Desc = nombre de pas par jour 201 !Config Def = 240 202 !Config Help = nombre de pas par jour (multiple de iperiod) ( 203 !Config ici pour dt = 1 min ) 204 day_step = 240 205 CALL getin('day_step',day_step) 206 207 !Config Key = nsplit_phys 208 nsplit_phys = 1 209 CALL getin('nsplit_phys',nsplit_phys) 210 211 !Config Key = iperiod 212 !Config Desc = periode pour le pas Matsuno 213 !Config Def = 5 214 !Config Help = periode pour le pas Matsuno (en pas de temps) 215 iperiod = 5 216 CALL getin('iperiod',iperiod) 217 218 !Config Key = iapp_tracvl 219 !Config Desc = frequence du groupement des flux 220 !Config Def = iperiod 221 !Config Help = frequence du groupement des flux (en pas de temps) 222 iapp_tracvl = iperiod 223 CALL getin('iapp_tracvl',iapp_tracvl) 224 225 !Config Key = iconser 226 !Config Desc = periode de sortie des variables de controle 227 !Config Def = 240 228 !Config Help = periode de sortie des variables de controle 229 !Config (En pas de temps) 230 iconser = 240 231 CALL getin('iconser', iconser) 232 233 !Config Key = iecri 234 !Config Desc = periode d'ecriture du fichier histoire 235 !Config Def = 1 236 !Config Help = periode d'ecriture du fichier histoire (en jour) 237 iecri = 1 238 CALL getin('iecri',iecri) 239 240 !Config Key = periodav 241 !Config Desc = periode de stockage fichier histmoy 242 !Config Def = 1 243 !Config Help = periode de stockage fichier histmoy (en jour) 244 periodav = 1. 245 CALL getin('periodav',periodav) 246 247 !Config Key = output_grads_dyn 248 !Config Desc = output dynamics diagnostics in 'dyn.dat' file 249 !Config Def = n 250 !Config Help = output dynamics diagnostics in Grads-readable 'dyn.dat' file 251 output_grads_dyn=.false. 252 CALL getin('output_grads_dyn',output_grads_dyn) 253 254 !Config Key = dissip_period 255 !Config Desc = periode de la dissipation 256 !Config Def = 0 257 !Config Help = periode de la dissipation 258 !Config dissip_period=0 => la valeur sera calcule dans inidissip 259 !Config dissip_period>0 => on prend cette valeur 260 dissip_period = 0 261 CALL getin('dissip_period',dissip_period) 262 263 !cc .... P. Le Van , modif le 29/04/97 .pour la dissipation ... 264 !cc 265 266 !Config Key = lstardis 267 !Config Desc = choix de l'operateur de dissipation 268 !Config Def = y 269 !Config Help = choix de l'operateur de dissipation 270 !Config 'y' si on veut star et 'n' si on veut non-start ! 271 !Config Moi y en a pas comprendre ! 272 lstardis = .TRUE. 273 CALL getin('lstardis',lstardis) 274 275 !Config Key = nitergdiv 276 !Config Desc = Nombre d'iteration de gradiv 277 !Config Def = 1 278 !Config Help = nombre d'iterations de l'operateur de dissipation 279 !Config gradiv 280 nitergdiv = 1 281 CALL getin('nitergdiv',nitergdiv) 282 283 !Config Key = nitergrot 284 !Config Desc = nombre d'iterations de nxgradrot 285 !Config Def = 2 286 !Config Help = nombre d'iterations de l'operateur de dissipation 287 !Config nxgradrot 288 nitergrot = 2 289 CALL getin('nitergrot',nitergrot) 290 291 !Config Key = niterh 292 !Config Desc = nombre d'iterations de divgrad 293 !Config Def = 2 294 !Config Help = nombre d'iterations de l'operateur de dissipation 295 !Config divgrad 296 niterh = 2 297 CALL getin('niterh',niterh) 298 299 !Config Key = tetagdiv 300 !Config Desc = temps de dissipation pour div 301 !Config Def = 7200 302 !Config Help = temps de dissipation des plus petites longeur 303 !Config d'ondes pour u,v (gradiv) 304 tetagdiv = 7200. 305 CALL getin('tetagdiv',tetagdiv) 306 307 !Config Key = tetagrot 308 !Config Desc = temps de dissipation pour grad 309 !Config Def = 7200 310 !Config Help = temps de dissipation des plus petites longeur 311 !Config d'ondes pour u,v (nxgradrot) 312 tetagrot = 7200. 313 CALL getin('tetagrot',tetagrot) 314 315 !Config Key = tetatemp 316 !Config Desc = temps de dissipation pour h 317 !Config Def = 7200 318 !Config Help = temps de dissipation des plus petites longeur 319 !Config d'ondes pour h (divgrad) 320 tetatemp = 7200. 321 CALL getin('tetatemp',tetatemp ) 322 323 ! Parametres controlant la variation sur la verticale des constantes de 324 ! dissipation. 325 ! Pour le moment actifs uniquement dans la version a 39 niveaux 326 ! avec ok_strato=y 327 328 dissip_factz=4. 329 dissip_deltaz=10. 330 dissip_zref=30. 331 CALL getin('dissip_factz',dissip_factz ) 332 CALL getin('dissip_deltaz',dissip_deltaz ) 333 CALL getin('dissip_zref',dissip_zref ) 334 335 ! top_bound sponge: only active if ok_strato=.true. and iflag_top_bound!=0 336 ! iflag_top_bound=0 for no sponge 337 ! iflag_top_bound=1 for sponge over 4 topmost layers 338 ! iflag_top_bound=2 for sponge from top to ~1% of top layer pressure 339 iflag_top_bound=1 340 CALL getin('iflag_top_bound',iflag_top_bound) 341 342 ! mode_top_bound : fields towards which sponge relaxation will be done: 343 ! mode_top_bound=0: no relaxation 344 ! mode_top_bound=1: u and v relax towards 0 345 ! mode_top_bound=2: u and v relax towards their zonal mean 346 ! mode_top_bound=3: u,v and pot. temp. relax towards their zonal mean 347 mode_top_bound=3 348 CALL getin('mode_top_bound',mode_top_bound) 349 350 ! top_bound sponge : inverse of charactericstic relaxation time scale for sponge 351 tau_top_bound=1.e-5 352 CALL getin('tau_top_bound',tau_top_bound) 353 354 !Config Key = coefdis 355 !Config Desc = coefficient pour gamdissip 356 !Config Def = 0 357 !Config Help = coefficient pour gamdissip 358 coefdis = 0. 359 CALL getin('coefdis',coefdis) 360 361 !Config Key = purmats 362 !Config Desc = Schema d'integration 363 !Config Def = n 364 !Config Help = Choix du schema d'integration temporel. 365 !Config y = pure Matsuno sinon c'est du Matsuno-leapfrog 366 purmats = .FALSE. 367 CALL getin('purmats',purmats) 368 369 !Config Key = ok_guide 370 !Config Desc = Guidage 371 !Config Def = n 372 !Config Help = Guidage 373 ok_guide = .FALSE. 374 CALL getin('ok_guide',ok_guide) 375 376 if (ok_guide .and. adjust) call abort_gcm("conf_gcm", & 377 "adjust does not work with ok_guide", 1) 378 379 !Config Key = read_start 380 !Config Desc = Initialize model using a 'start.nc' file 381 !Config Def = y 382 !Config Help = y: intialize dynamical fields using a 'start.nc' file 383 ! n: fields are initialized by 'iniacademic' routine 384 read_start= .true. 385 CALL getin('read_start',read_start) 386 387 !Config Key = iflag_phys 388 !Config Desc = Avec ls physique 389 !Config Def = 1 390 !Config Help = Permet de faire tourner le modele sans 391 !Config physique. 392 iflag_phys = 1 393 CALL getin('iflag_phys',iflag_phys) 394 395 !Config Key = iphysiq 396 !Config Desc = Periode de la physique 397 !Config Def = 5 398 !Config Help = Periode de la physique en pas de temps de la dynamique. 399 iphysiq = 5 400 CALL getin('iphysiq', iphysiq) 401 402 if (mod(iphysiq, iperiod) /= 0) call abort_gcm("conf_gcm", & 403 "iphysiq must be a multiple of iperiod", 1) 404 405 !Config Key = ip_ebil_dyn 406 !Config Desc = PRINT level for energy conserv. diag. 407 !Config Def = 0 408 !Config Help = PRINT level for energy conservation diag. ; 409 ! les options suivantes existent : 410 !Config 0 pas de print 411 !Config 1 pas de print 412 !Config 2 print, 413 ip_ebil_dyn = 0 414 CALL getin('ip_ebil_dyn',ip_ebil_dyn) 415 416 !cc .... P. Le Van , ajout le 7/03/95 .pour le zoom ... 417 ! ......... ( modif le 17/04/96 ) ......... 418 419 test_etatinit: IF (.not. etatinit) then 420 !Config Key = clon 421 !Config Desc = centre du zoom, longitude 422 !Config Def = 0 423 !Config Help = longitude en degres du centre 424 !Config du zoom 425 clonn = 0. 426 CALL getin('clon',clonn) 427 428 !Config Key = clat 429 !Config Desc = centre du zoom, latitude 430 !Config Def = 0 431 !Config Help = latitude en degres du centre du zoom 432 !Config 433 clatt = 0. 434 CALL getin('clat',clatt) 435 436 IF( ABS(clat - clatt).GE. 0.001 ) THEN 437 write(lunout,*)'conf_gcm: La valeur de clat passee par run.def', & 438 ' est differente de celle lue sur le fichier start ' 452 439 STOP 453 ENDIF 454 455 !Config Key = grossismx 456 !Config Desc = zoom en longitude 457 !Config Def = 1.0 458 !Config Help = facteur de grossissement du zoom, 459 !Config selon la longitude 460 grossismxx = 1.0 461 CALL getin('grossismx',grossismxx) 462 463 464 IF( ABS(grossismx - grossismxx).GE. 0.001 ) THEN 465 write(lunout,*)'conf_gcm: La valeur de grossismx passee par ', 466 & 'run.def est differente de celle lue sur le fichier start ' 440 ENDIF 441 442 !Config Key = grossismx 443 !Config Desc = zoom en longitude 444 !Config Def = 1.0 445 !Config Help = facteur de grossissement du zoom, 446 !Config selon la longitude 447 grossismxx = 1.0 448 CALL getin('grossismx',grossismxx) 449 450 IF( ABS(grossismx - grossismxx).GE. 0.001 ) THEN 451 write(lunout,*)'conf_gcm: La valeur de grossismx passee par ', & 452 'run.def est differente de celle lue sur le fichier start ' 467 453 STOP 468 469 470 !Config Key = grossismy471 !Config Desc = zoom en latitude472 !Config Def = 1.0473 !Config Help = facteur de grossissement du zoom,474 !Config selon la latitude475 476 477 478 479 write(lunout,*)'conf_gcm: La valeur de grossismy passee par ', 480 &'run.def est differente de celle lue sur le fichier start '454 ENDIF 455 456 !Config Key = grossismy 457 !Config Desc = zoom en latitude 458 !Config Def = 1.0 459 !Config Help = facteur de grossissement du zoom, 460 !Config selon la latitude 461 grossismyy = 1.0 462 CALL getin('grossismy',grossismyy) 463 464 IF( ABS(grossismy - grossismyy).GE. 0.001 ) THEN 465 write(lunout,*)'conf_gcm: La valeur de grossismy passee par ', & 466 'run.def est differente de celle lue sur le fichier start ' 481 467 STOP 482 ENDIF 483 484 IF( grossismx.LT.1. ) THEN 485 write(lunout,*) 486 & 'conf_gcm: *** ATTENTION !! grossismx < 1 . *** ' 487 STOP 488 ELSE 489 alphax = 1. - 1./ grossismx 490 ENDIF 491 492 493 IF( grossismy.LT.1. ) THEN 494 write(lunout,*) 495 & 'conf_gcm: *** ATTENTION !! grossismy < 1 . *** ' 496 STOP 497 ELSE 498 alphay = 1. - 1./ grossismy 499 ENDIF 500 501 write(lunout,*)'conf_gcm: alphax alphay',alphax,alphay 502 ! 503 ! alphax et alphay sont les anciennes formulat. des grossissements 504 ! 505 ! 506 507 !Config Key = fxyhypb 508 !Config Desc = Fonction hyperbolique 509 !Config Def = y 510 !Config Help = Fonction f(y) hyperbolique si = .true. 511 !Config sinon sinusoidale 512 fxyhypbb = .TRUE. 513 CALL getin('fxyhypb',fxyhypbb) 514 515 IF( .NOT.fxyhypb ) THEN 516 IF( fxyhypbb ) THEN 517 write(lunout,*)' ******** PBS DANS CONF_GCM ******** ' 518 write(lunout,*)' *** fxyhypb lu sur le fichier start est ', 519 * 'F alors qu il est T sur run.def ***' 468 ENDIF 469 470 IF( grossismx.LT.1. ) THEN 471 write(lunout,*) & 472 'conf_gcm: *** ATTENTION !! grossismx < 1 . *** ' 473 STOP 474 ELSE 475 alphax = 1. - 1./ grossismx 476 ENDIF 477 478 IF( grossismy.LT.1. ) THEN 479 write(lunout,*) & 480 'conf_gcm: *** ATTENTION !! grossismy < 1 . *** ' 481 STOP 482 ELSE 483 alphay = 1. - 1./ grossismy 484 ENDIF 485 486 write(lunout,*)'conf_gcm: alphax alphay',alphax,alphay 487 488 ! alphax et alphay sont les anciennes formulat. des grossissements 489 490 !Config Key = fxyhypb 491 !Config Desc = Fonction hyperbolique 492 !Config Def = y 493 !Config Help = Fonction f(y) hyperbolique si = .true. 494 !Config sinon sinusoidale 495 fxyhypbb = .TRUE. 496 CALL getin('fxyhypb',fxyhypbb) 497 498 IF( .NOT.fxyhypb ) THEN 499 IF( fxyhypbb ) THEN 500 write(lunout,*)' ******** PBS DANS CONF_GCM ******** ' 501 write(lunout,*)' *** fxyhypb lu sur le fichier start est ', & 502 'F alors qu il est T sur run.def ***' 503 STOP 504 ENDIF 505 ELSE 506 IF( .NOT.fxyhypbb ) THEN 507 write(lunout,*)' ******** PBS DANS CONF_GCM ******** ' 508 write(lunout,*)' *** fxyhypb lu sur le fichier start est ', & 509 'T alors qu il est F sur run.def **** ' 510 STOP 511 ENDIF 512 ENDIF 513 514 !Config Key = dzoomx 515 !Config Desc = extension en longitude 516 !Config Def = 0 517 !Config Help = extension en longitude de la zone du zoom 518 !Config ( fraction de la zone totale) 519 dzoomxx = 0.0 520 CALL getin('dzoomx',dzoomxx) 521 522 IF( fxyhypb ) THEN 523 IF( ABS(dzoomx - dzoomxx).GE. 0.001 ) THEN 524 write(lunout,*)'conf_gcm: La valeur de dzoomx passee par ', & 525 'run.def est differente de celle lue sur le fichier start ' 526 STOP 527 ENDIF 528 ENDIF 529 530 !Config Key = dzoomy 531 !Config Desc = extension en latitude 532 !Config Def = 0 533 !Config Help = extension en latitude de la zone du zoom 534 !Config ( fraction de la zone totale) 535 dzoomyy = 0.0 536 CALL getin('dzoomy',dzoomyy) 537 538 IF( fxyhypb ) THEN 539 IF( ABS(dzoomy - dzoomyy).GE. 0.001 ) THEN 540 write(lunout,*)'conf_gcm: La valeur de dzoomy passee par ', & 541 'run.def est differente de celle lue sur le fichier start ' 542 STOP 543 ENDIF 544 ENDIF 545 546 !Config Key = taux 547 !Config Desc = raideur du zoom en X 548 !Config Def = 3 549 !Config Help = raideur du zoom en X 550 tauxx = 3.0 551 CALL getin('taux',tauxx) 552 553 IF( fxyhypb ) THEN 554 IF( ABS(taux - tauxx).GE. 0.001 ) THEN 555 write(lunout,*)'conf_gcm: La valeur de taux passee par ', & 556 'run.def est differente de celle lue sur le fichier start ' 557 STOP 558 ENDIF 559 ENDIF 560 561 !Config Key = tauyy 562 !Config Desc = raideur du zoom en Y 563 !Config Def = 3 564 !Config Help = raideur du zoom en Y 565 tauyy = 3.0 566 CALL getin('tauy',tauyy) 567 568 IF( fxyhypb ) THEN 569 IF( ABS(tauy - tauyy).GE. 0.001 ) THEN 570 write(lunout,*)'conf_gcm: La valeur de tauy passee par ', & 571 'run.def est differente de celle lue sur le fichier start ' 572 STOP 573 ENDIF 574 ENDIF 575 576 !c 577 IF( .NOT.fxyhypb ) THEN 578 579 !Config Key = ysinus 580 !Config IF = !fxyhypb 581 !Config Desc = Fonction en Sinus 582 !Config Def = y 583 !Config Help = Fonction f(y) avec y = Sin(latit.) si = .true. 584 !Config sinon y = latit. 585 ysinuss = .TRUE. 586 CALL getin('ysinus',ysinuss) 587 588 IF( .NOT.ysinus ) THEN 589 IF( ysinuss ) THEN 590 write(lunout,*)' ******** PBS DANS CONF_GCM ******** ' 591 write(lunout,*)' *** ysinus lu sur le fichier start est F', & 592 ' alors qu il est T sur run.def ***' 520 593 STOP 521 ENDIF522 ELSE523 IF( .NOT.fxyhypbb) THEN524 write(lunout,*)' ******** PBS DANS CONF_GCM ******** '525 write(lunout,*)' *** fxyhypb lu sur le fichier start est ',526 * 'Talors qu il est F sur run.def **** '594 ENDIF 595 ELSE 596 IF( .NOT.ysinuss ) THEN 597 write(lunout,*)' ******** PBS DANS CONF_GCM ******** ' 598 write(lunout,*)' *** ysinus lu sur le fichier start est T', & 599 ' alors qu il est F sur run.def **** ' 527 600 STOP 528 ENDIF 529 ENDIF 530 ! 531 !Config Key = dzoomx 532 !Config Desc = extension en longitude 533 !Config Def = 0 534 !Config Help = extension en longitude de la zone du zoom 535 !Config ( fraction de la zone totale) 536 dzoomxx = 0.0 537 CALL getin('dzoomx',dzoomxx) 538 539 IF( fxyhypb ) THEN 540 IF( ABS(dzoomx - dzoomxx).GE. 0.001 ) THEN 541 write(lunout,*)'conf_gcm: La valeur de dzoomx passee par ', 542 * 'run.def est differente de celle lue sur le fichier start ' 601 ENDIF 602 ENDIF 603 ENDIF ! of IF( .NOT.fxyhypb ) 604 605 !Config Key = offline 606 !Config Desc = Nouvelle eau liquide 607 !Config Def = n 608 !Config Help = Permet de mettre en route la 609 !Config nouvelle parametrisation de l'eau liquide ! 610 offline = .FALSE. 611 CALL getin('offline',offline) 612 IF (offline .AND. adjust) THEN 613 WRITE(lunout,*) & 614 'WARNING : option offline does not work with adjust=y :' 615 WRITE(lunout,*) 'the files defstoke.nc, fluxstoke.nc ', & 616 'and fluxstokev.nc will not be created' 617 WRITE(lunout,*) & 618 'only the file phystoke.nc will still be created ' 619 END IF 620 621 !Config Key = type_trac 622 !Config Desc = Choix de couplage avec model de chimie INCA ou REPROBUS 623 !Config Def = lmdz 624 !Config Help = 625 !Config 'lmdz' = pas de couplage, pur LMDZ 626 !Config 'inca' = model de chime INCA 627 !Config 'repr' = model de chime REPROBUS 628 type_trac = 'lmdz' 629 CALL getin('type_trac',type_trac) 630 631 !Config Key = config_inca 632 !Config Desc = Choix de configuration de INCA 633 !Config Def = none 634 !Config Help = Choix de configuration de INCA : 635 !Config 'none' = sans INCA 636 !Config 'chem' = INCA avec calcul de chemie 637 !Config 'aero' = INCA avec calcul des aerosols 638 config_inca = 'none' 639 CALL getin('config_inca',config_inca) 640 641 !Config Key = ok_dynzon 642 !Config Desc = calcul et sortie des transports 643 !Config Def = n 644 !Config Help = Permet de mettre en route le calcul des transports 645 !Config 646 ok_dynzon = .FALSE. 647 CALL getin('ok_dynzon',ok_dynzon) 648 649 !Config Key = ok_dyn_ins 650 !Config Desc = sorties instantanees dans la dynamique 651 !Config Def = n 652 !Config Help = 653 !Config 654 ok_dyn_ins = .FALSE. 655 CALL getin('ok_dyn_ins',ok_dyn_ins) 656 657 !Config Key = ok_dyn_ave 658 !Config Desc = sorties moyennes dans la dynamique 659 !Config Def = n 660 !Config Help = 661 !Config 662 ok_dyn_ave = .FALSE. 663 CALL getin('ok_dyn_ave',ok_dyn_ave) 664 665 write(lunout,*)' #########################################' 666 write(lunout,*)' Configuration des parametres du gcm: ' 667 write(lunout,*)' planet_type = ', planet_type 668 write(lunout,*)' calend = ', calend 669 write(lunout,*)' dayref = ', dayref 670 write(lunout,*)' anneeref = ', anneeref 671 write(lunout,*)' nday = ', nday 672 write(lunout,*)' day_step = ', day_step 673 write(lunout,*)' iperiod = ', iperiod 674 write(lunout,*)' nsplit_phys = ', nsplit_phys 675 write(lunout,*)' iconser = ', iconser 676 write(lunout,*)' iecri = ', iecri 677 write(lunout,*)' periodav = ', periodav 678 write(lunout,*)' output_grads_dyn = ', output_grads_dyn 679 write(lunout,*)' dissip_period = ', dissip_period 680 write(lunout,*)' lstardis = ', lstardis 681 write(lunout,*)' nitergdiv = ', nitergdiv 682 write(lunout,*)' nitergrot = ', nitergrot 683 write(lunout,*)' niterh = ', niterh 684 write(lunout,*)' tetagdiv = ', tetagdiv 685 write(lunout,*)' tetagrot = ', tetagrot 686 write(lunout,*)' tetatemp = ', tetatemp 687 write(lunout,*)' coefdis = ', coefdis 688 write(lunout,*)' purmats = ', purmats 689 write(lunout,*)' read_start = ', read_start 690 write(lunout,*)' iflag_phys = ', iflag_phys 691 write(lunout,*)' iphysiq = ', iphysiq 692 write(lunout,*)' clonn = ', clonn 693 write(lunout,*)' clatt = ', clatt 694 write(lunout,*)' grossismx = ', grossismx 695 write(lunout,*)' grossismy = ', grossismy 696 write(lunout,*)' fxyhypbb = ', fxyhypbb 697 write(lunout,*)' dzoomxx = ', dzoomxx 698 write(lunout,*)' dzoomy = ', dzoomyy 699 write(lunout,*)' tauxx = ', tauxx 700 write(lunout,*)' tauyy = ', tauyy 701 write(lunout,*)' offline = ', offline 702 write(lunout,*)' type_trac = ', type_trac 703 write(lunout,*)' config_inca = ', config_inca 704 write(lunout,*)' ok_dynzon = ', ok_dynzon 705 write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins 706 write(lunout,*)' ok_dyn_ave = ', ok_dyn_ave 707 else 708 !Config Key = clon 709 !Config Desc = centre du zoom, longitude 710 !Config Def = 0 711 !Config Help = longitude en degres du centre 712 !Config du zoom 713 clon = 0. 714 CALL getin('clon',clon) 715 716 !Config Key = clat 717 !Config Desc = centre du zoom, latitude 718 !Config Def = 0 719 !Config Help = latitude en degres du centre du zoom 720 !Config 721 clat = 0. 722 CALL getin('clat',clat) 723 724 !Config Key = grossismx 725 !Config Desc = zoom en longitude 726 !Config Def = 1.0 727 !Config Help = facteur de grossissement du zoom, 728 !Config selon la longitude 729 grossismx = 1.0 730 CALL getin('grossismx',grossismx) 731 732 !Config Key = grossismy 733 !Config Desc = zoom en latitude 734 !Config Def = 1.0 735 !Config Help = facteur de grossissement du zoom, 736 !Config selon la latitude 737 grossismy = 1.0 738 CALL getin('grossismy',grossismy) 739 740 IF( grossismx.LT.1. ) THEN 741 write(lunout,*) & 742 'conf_gcm: *** ATTENTION !! grossismx < 1 . *** ' 543 743 STOP 544 ENDIF 545 ENDIF 546 547 !Config Key = dzoomy 548 !Config Desc = extension en latitude 549 !Config Def = 0 550 !Config Help = extension en latitude de la zone du zoom 551 !Config ( fraction de la zone totale) 552 dzoomyy = 0.0 553 CALL getin('dzoomy',dzoomyy) 554 555 IF( fxyhypb ) THEN 556 IF( ABS(dzoomy - dzoomyy).GE. 0.001 ) THEN 557 write(lunout,*)'conf_gcm: La valeur de dzoomy passee par ', 558 * 'run.def est differente de celle lue sur le fichier start ' 744 ELSE 745 alphax = 1. - 1./ grossismx 746 ENDIF 747 748 IF( grossismy.LT.1. ) THEN 749 write(lunout,*) 'conf_gcm: ***ATTENTION !! grossismy < 1 . *** ' 559 750 STOP 560 ENDIF 561 ENDIF 562 563 !Config Key = taux 564 !Config Desc = raideur du zoom en X 565 !Config Def = 3 566 !Config Help = raideur du zoom en X 567 tauxx = 3.0 568 CALL getin('taux',tauxx) 569 570 IF( fxyhypb ) THEN 571 IF( ABS(taux - tauxx).GE. 0.001 ) THEN 572 write(lunout,*)'conf_gcm: La valeur de taux passee par ', 573 * 'run.def est differente de celle lue sur le fichier start ' 574 STOP 575 ENDIF 576 ENDIF 577 578 !Config Key = tauyy 579 !Config Desc = raideur du zoom en Y 580 !Config Def = 3 581 !Config Help = raideur du zoom en Y 582 tauyy = 3.0 583 CALL getin('tauy',tauyy) 584 585 IF( fxyhypb ) THEN 586 IF( ABS(tauy - tauyy).GE. 0.001 ) THEN 587 write(lunout,*)'conf_gcm: La valeur de tauy passee par ', 588 * 'run.def est differente de celle lue sur le fichier start ' 589 STOP 590 ENDIF 591 ENDIF 592 593 !c 594 IF( .NOT.fxyhypb ) THEN 595 596 !Config Key = ysinus 597 !Config IF = !fxyhypb 598 !Config Desc = Fonction en Sinus 599 !Config Def = y 600 !Config Help = Fonction f(y) avec y = Sin(latit.) si = .true. 601 !Config sinon y = latit. 602 ysinuss = .TRUE. 603 CALL getin('ysinus',ysinuss) 604 605 IF( .NOT.ysinus ) THEN 606 IF( ysinuss ) THEN 607 write(lunout,*)' ******** PBS DANS CONF_GCM ******** ' 608 write(lunout,*)' *** ysinus lu sur le fichier start est F', 609 * ' alors qu il est T sur run.def ***' 610 STOP 611 ENDIF 612 ELSE 613 IF( .NOT.ysinuss ) THEN 614 write(lunout,*)' ******** PBS DANS CONF_GCM ******** ' 615 write(lunout,*)' *** ysinus lu sur le fichier start est T', 616 * ' alors qu il est F sur run.def **** ' 617 STOP 618 ENDIF 619 ENDIF 620 ENDIF ! of IF( .NOT.fxyhypb ) 621 ! 622 !Config Key = offline 623 !Config Desc = Nouvelle eau liquide 624 !Config Def = n 625 !Config Help = Permet de mettre en route la 626 !Config nouvelle parametrisation de l'eau liquide ! 627 offline = .FALSE. 628 CALL getin('offline',offline) 629 IF (offline .AND. adjust) THEN 630 WRITE(lunout,*) 631 & 'WARNING : option offline does not work with adjust=y :' 632 WRITE(lunout,*) 'the files defstoke.nc, fluxstoke.nc ', 633 & 'and fluxstokev.nc will not be created' 634 WRITE(lunout,*) 635 & 'only the file phystoke.nc will still be created ' 636 END IF 637 638 !Config Key = type_trac 639 !Config Desc = Choix de couplage avec model de chimie INCA ou REPROBUS 640 !Config Def = lmdz 641 !Config Help = 642 !Config 'lmdz' = pas de couplage, pur LMDZ 643 !Config 'inca' = model de chime INCA 644 !Config 'repr' = model de chime REPROBUS 645 type_trac = 'lmdz' 646 CALL getin('type_trac',type_trac) 647 648 !Config Key = config_inca 649 !Config Desc = Choix de configuration de INCA 650 !Config Def = none 651 !Config Help = Choix de configuration de INCA : 652 !Config 'none' = sans INCA 653 !Config 'chem' = INCA avec calcul de chemie 654 !Config 'aero' = INCA avec calcul des aerosols 655 config_inca = 'none' 656 CALL getin('config_inca',config_inca) 657 658 !Config Key = ok_dynzon 659 !Config Desc = calcul et sortie des transports 660 !Config Def = n 661 !Config Help = Permet de mettre en route le calcul des transports 662 !Config 663 ok_dynzon = .FALSE. 664 CALL getin('ok_dynzon',ok_dynzon) 665 666 !Config Key = ok_dyn_ins 667 !Config Desc = sorties instantanees dans la dynamique 668 !Config Def = n 669 !Config Help = 670 !Config 671 ok_dyn_ins = .FALSE. 672 CALL getin('ok_dyn_ins',ok_dyn_ins) 673 674 !Config Key = ok_dyn_ave 675 !Config Desc = sorties moyennes dans la dynamique 676 !Config Def = n 677 !Config Help = 678 !Config 679 ok_dyn_ave = .FALSE. 680 CALL getin('ok_dyn_ave',ok_dyn_ave) 681 682 write(lunout,*)' #########################################' 683 write(lunout,*)' Configuration des parametres du gcm: ' 684 write(lunout,*)' planet_type = ', planet_type 685 write(lunout,*)' calend = ', calend 686 write(lunout,*)' dayref = ', dayref 687 write(lunout,*)' anneeref = ', anneeref 688 write(lunout,*)' nday = ', nday 689 write(lunout,*)' day_step = ', day_step 690 write(lunout,*)' iperiod = ', iperiod 691 write(lunout,*)' nsplit_phys = ', nsplit_phys 692 write(lunout,*)' iconser = ', iconser 693 write(lunout,*)' iecri = ', iecri 694 write(lunout,*)' periodav = ', periodav 695 write(lunout,*)' output_grads_dyn = ', output_grads_dyn 696 write(lunout,*)' dissip_period = ', dissip_period 697 write(lunout,*)' lstardis = ', lstardis 698 write(lunout,*)' nitergdiv = ', nitergdiv 699 write(lunout,*)' nitergrot = ', nitergrot 700 write(lunout,*)' niterh = ', niterh 701 write(lunout,*)' tetagdiv = ', tetagdiv 702 write(lunout,*)' tetagrot = ', tetagrot 703 write(lunout,*)' tetatemp = ', tetatemp 704 write(lunout,*)' coefdis = ', coefdis 705 write(lunout,*)' purmats = ', purmats 706 write(lunout,*)' read_start = ', read_start 707 write(lunout,*)' iflag_phys = ', iflag_phys 708 write(lunout,*)' iphysiq = ', iphysiq 709 write(lunout,*)' clonn = ', clonn 710 write(lunout,*)' clatt = ', clatt 711 write(lunout,*)' grossismx = ', grossismx 712 write(lunout,*)' grossismy = ', grossismy 713 write(lunout,*)' fxyhypbb = ', fxyhypbb 714 write(lunout,*)' dzoomxx = ', dzoomxx 715 write(lunout,*)' dzoomy = ', dzoomyy 716 write(lunout,*)' tauxx = ', tauxx 717 write(lunout,*)' tauyy = ', tauyy 718 write(lunout,*)' offline = ', offline 719 write(lunout,*)' type_trac = ', type_trac 720 write(lunout,*)' config_inca = ', config_inca 721 write(lunout,*)' ok_dynzon = ', ok_dynzon 722 write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins 723 write(lunout,*)' ok_dyn_ave = ', ok_dyn_ave 724 725 RETURN 726 ! ............................................... 727 ! 728 100 CONTINUE 729 !Config Key = clon 730 !Config Desc = centre du zoom, longitude 731 !Config Def = 0 732 !Config Help = longitude en degres du centre 733 !Config du zoom 734 clon = 0. 735 CALL getin('clon',clon) 736 737 !Config Key = clat 738 !Config Desc = centre du zoom, latitude 739 !Config Def = 0 740 !Config Help = latitude en degres du centre du zoom 741 !Config 742 clat = 0. 743 CALL getin('clat',clat) 744 745 !Config Key = grossismx 746 !Config Desc = zoom en longitude 747 !Config Def = 1.0 748 !Config Help = facteur de grossissement du zoom, 749 !Config selon la longitude 750 grossismx = 1.0 751 CALL getin('grossismx',grossismx) 752 753 !Config Key = grossismy 754 !Config Desc = zoom en latitude 755 !Config Def = 1.0 756 !Config Help = facteur de grossissement du zoom, 757 !Config selon la latitude 758 grossismy = 1.0 759 CALL getin('grossismy',grossismy) 760 761 IF( grossismx.LT.1. ) THEN 762 write(lunout,*) 763 & 'conf_gcm: *** ATTENTION !! grossismx < 1 . *** ' 764 STOP 765 ELSE 766 alphax = 1. - 1./ grossismx 767 ENDIF 768 769 770 IF( grossismy.LT.1. ) THEN 771 write(lunout,*) 'conf_gcm: ***ATTENTION !! grossismy < 1 . *** ' 772 STOP 773 ELSE 774 alphay = 1. - 1./ grossismy 775 ENDIF 776 777 write(lunout,*)'conf_gcm: alphax alphay ',alphax,alphay 778 ! 779 ! alphax et alphay sont les anciennes formulat. des grossissements 780 ! 781 ! 782 783 !Config Key = fxyhypb 784 !Config Desc = Fonction hyperbolique 785 !Config Def = y 786 !Config Help = Fonction f(y) hyperbolique si = .true. 787 !Config sinon sinusoidale 788 fxyhypb = .TRUE. 789 CALL getin('fxyhypb',fxyhypb) 790 791 !Config Key = dzoomx 792 !Config Desc = extension en longitude 793 !Config Def = 0 794 !Config Help = extension en longitude de la zone du zoom 795 !Config ( fraction de la zone totale) 796 dzoomx = 0.0 797 CALL getin('dzoomx',dzoomx) 798 799 !Config Key = dzoomy 800 !Config Desc = extension en latitude 801 !Config Def = 0 802 !Config Help = extension en latitude de la zone du zoom 803 !Config ( fraction de la zone totale) 804 dzoomy = 0.0 805 CALL getin('dzoomy',dzoomy) 806 807 !Config Key = taux 808 !Config Desc = raideur du zoom en X 809 !Config Def = 3 810 !Config Help = raideur du zoom en X 811 taux = 3.0 812 CALL getin('taux',taux) 813 814 !Config Key = tauy 815 !Config Desc = raideur du zoom en Y 816 !Config Def = 3 817 !Config Help = raideur du zoom en Y 818 tauy = 3.0 819 CALL getin('tauy',tauy) 820 821 !Config Key = ysinus 822 !Config IF = !fxyhypb 823 !Config Desc = Fonction en Sinus 824 !Config Def = y 825 !Config Help = Fonction f(y) avec y = Sin(latit.) si = .true. 826 !Config sinon y = latit. 827 ysinus = .TRUE. 828 CALL getin('ysinus',ysinus) 829 ! 830 !Config Key = offline 831 !Config Desc = Nouvelle eau liquide 832 !Config Def = n 833 !Config Help = Permet de mettre en route la 834 !Config nouvelle parametrisation de l'eau liquide ! 835 offline = .FALSE. 836 CALL getin('offline',offline) 837 IF (offline .AND. adjust) THEN 838 WRITE(lunout,*) 839 & 'WARNING : option offline does not work with adjust=y :' 840 WRITE(lunout,*) 'the files defstoke.nc, fluxstoke.nc ', 841 & 'and fluxstokev.nc will not be created' 842 WRITE(lunout,*) 843 & 'only the file phystoke.nc will still be created ' 844 END IF 845 846 !Config Key = type_trac 847 !Config Desc = Choix de couplage avec model de chimie INCA ou REPROBUS 848 !Config Def = lmdz 849 !Config Help = 850 !Config 'lmdz' = pas de couplage, pur LMDZ 851 !Config 'inca' = model de chime INCA 852 !Config 'repr' = model de chime REPROBUS 853 type_trac = 'lmdz' 854 CALL getin('type_trac',type_trac) 855 856 !Config Key = config_inca 857 !Config Desc = Choix de configuration de INCA 858 !Config Def = none 859 !Config Help = Choix de configuration de INCA : 860 !Config 'none' = sans INCA 861 !Config 'chem' = INCA avec calcul de chemie 862 !Config 'aero' = INCA avec calcul des aerosols 863 config_inca = 'none' 864 CALL getin('config_inca',config_inca) 865 866 !Config Key = ok_dynzon 867 !Config Desc = sortie des transports zonaux dans la dynamique 868 !Config Def = n 869 !Config Help = Permet de mettre en route le calcul des transports 870 !Config 871 ok_dynzon = .FALSE. 872 CALL getin('ok_dynzon',ok_dynzon) 873 874 !Config Key = ok_dyn_ins 875 !Config Desc = sorties instantanees dans la dynamique 876 !Config Def = n 877 !Config Help = 878 !Config 879 ok_dyn_ins = .FALSE. 880 CALL getin('ok_dyn_ins',ok_dyn_ins) 881 882 !Config Key = ok_dyn_ave 883 !Config Desc = sorties moyennes dans la dynamique 884 !Config Def = n 885 !Config Help = 886 !Config 887 ok_dyn_ave = .FALSE. 888 CALL getin('ok_dyn_ave',ok_dyn_ave) 889 890 !Config Key = use_filtre_fft 891 !Config Desc = flag d'activation des FFT pour le filtre 892 !Config Def = false 893 !Config Help = permet d'activer l'utilisation des FFT pour effectuer 894 !Config le filtrage aux poles. 895 use_filtre_fft=.FALSE. 896 CALL getin('use_filtre_fft',use_filtre_fft) 897 898 IF (use_filtre_fft .AND. grossismx /= 1.0) THEN 751 ELSE 752 alphay = 1. - 1./ grossismy 753 ENDIF 754 755 write(lunout,*)'conf_gcm: alphax alphay ',alphax,alphay 756 757 ! alphax et alphay sont les anciennes formulat. des grossissements 758 759 !Config Key = fxyhypb 760 !Config Desc = Fonction hyperbolique 761 !Config Def = y 762 !Config Help = Fonction f(y) hyperbolique si = .true. 763 !Config sinon sinusoidale 764 fxyhypb = .TRUE. 765 CALL getin('fxyhypb',fxyhypb) 766 767 !Config Key = dzoomx 768 !Config Desc = extension en longitude 769 !Config Def = 0 770 !Config Help = extension en longitude de la zone du zoom 771 !Config ( fraction de la zone totale) 772 dzoomx = 0.0 773 CALL getin('dzoomx',dzoomx) 774 775 !Config Key = dzoomy 776 !Config Desc = extension en latitude 777 !Config Def = 0 778 !Config Help = extension en latitude de la zone du zoom 779 !Config ( fraction de la zone totale) 780 dzoomy = 0.0 781 CALL getin('dzoomy',dzoomy) 782 783 !Config Key = taux 784 !Config Desc = raideur du zoom en X 785 !Config Def = 3 786 !Config Help = raideur du zoom en X 787 taux = 3.0 788 CALL getin('taux',taux) 789 790 !Config Key = tauy 791 !Config Desc = raideur du zoom en Y 792 !Config Def = 3 793 !Config Help = raideur du zoom en Y 794 tauy = 3.0 795 CALL getin('tauy',tauy) 796 797 !Config Key = ysinus 798 !Config IF = !fxyhypb 799 !Config Desc = Fonction en Sinus 800 !Config Def = y 801 !Config Help = Fonction f(y) avec y = Sin(latit.) si = .true. 802 !Config sinon y = latit. 803 ysinus = .TRUE. 804 CALL getin('ysinus',ysinus) 805 806 !Config Key = offline 807 !Config Desc = Nouvelle eau liquide 808 !Config Def = n 809 !Config Help = Permet de mettre en route la 810 !Config nouvelle parametrisation de l'eau liquide ! 811 offline = .FALSE. 812 CALL getin('offline',offline) 813 IF (offline .AND. adjust) THEN 814 WRITE(lunout,*) & 815 'WARNING : option offline does not work with adjust=y :' 816 WRITE(lunout,*) 'the files defstoke.nc, fluxstoke.nc ', & 817 'and fluxstokev.nc will not be created' 818 WRITE(lunout,*) & 819 'only the file phystoke.nc will still be created ' 820 END IF 821 822 !Config Key = type_trac 823 !Config Desc = Choix de couplage avec model de chimie INCA ou REPROBUS 824 !Config Def = lmdz 825 !Config Help = 826 !Config 'lmdz' = pas de couplage, pur LMDZ 827 !Config 'inca' = model de chime INCA 828 !Config 'repr' = model de chime REPROBUS 829 type_trac = 'lmdz' 830 CALL getin('type_trac',type_trac) 831 832 !Config Key = config_inca 833 !Config Desc = Choix de configuration de INCA 834 !Config Def = none 835 !Config Help = Choix de configuration de INCA : 836 !Config 'none' = sans INCA 837 !Config 'chem' = INCA avec calcul de chemie 838 !Config 'aero' = INCA avec calcul des aerosols 839 config_inca = 'none' 840 CALL getin('config_inca',config_inca) 841 842 !Config Key = ok_dynzon 843 !Config Desc = sortie des transports zonaux dans la dynamique 844 !Config Def = n 845 !Config Help = Permet de mettre en route le calcul des transports 846 !Config 847 ok_dynzon = .FALSE. 848 CALL getin('ok_dynzon',ok_dynzon) 849 850 !Config Key = ok_dyn_ins 851 !Config Desc = sorties instantanees dans la dynamique 852 !Config Def = n 853 !Config Help = 854 !Config 855 ok_dyn_ins = .FALSE. 856 CALL getin('ok_dyn_ins',ok_dyn_ins) 857 858 !Config Key = ok_dyn_ave 859 !Config Desc = sorties moyennes dans la dynamique 860 !Config Def = n 861 !Config Help = 862 !Config 863 ok_dyn_ave = .FALSE. 864 CALL getin('ok_dyn_ave',ok_dyn_ave) 865 866 !Config Key = use_filtre_fft 867 !Config Desc = flag d'activation des FFT pour le filtre 868 !Config Def = false 869 !Config Help = permet d'activer l'utilisation des FFT pour effectuer 870 !Config le filtrage aux poles. 871 use_filtre_fft=.FALSE. 872 CALL getin('use_filtre_fft',use_filtre_fft) 873 874 IF (use_filtre_fft .AND. grossismx /= 1.0) THEN 899 875 write(lunout,*)'WARNING !!! ' 900 write(lunout,*)"Le zoom en longitude est incompatible", 901 & " avec l'utilisation du filtre FFT ", 902 & "---> FFT filter not active" 903 use_filtre_fft=.FALSE. 904 ENDIF 905 906 907 908 !Config Key = use_mpi_alloc 909 !Config Desc = Utilise un buffer MPI en m�moire globale 910 !Config Def = false 911 !Config Help = permet d'activer l'utilisation d'un buffer MPI 912 !Config en m�moire globale a l'aide de la fonction MPI_ALLOC. 913 !Config Cela peut am�liorer la bande passante des transferts MPI 914 !Config d'un facteur 2 915 use_mpi_alloc=.FALSE. 916 CALL getin('use_mpi_alloc',use_mpi_alloc) 917 918 !Config key = ok_strato 919 !Config Desc = activation de la version strato 920 !Config Def = .FALSE. 921 !Config Help = active la version stratosphérique de LMDZ de F. Lott 922 923 ok_strato=.FALSE. 924 CALL getin('ok_strato',ok_strato) 925 926 vert_prof_dissip = merge(1, 0, ok_strato .and. llm==39) 927 CALL getin('vert_prof_dissip', vert_prof_dissip) 928 call assert(vert_prof_dissip == 0 .or. vert_prof_dissip == 1, 929 $ "bad value for vert_prof_dissip") 930 931 !Config Key = ok_gradsfile 932 !Config Desc = activation des sorties grads du guidage 933 !Config Def = n 934 !Config Help = active les sorties grads du guidage 935 936 ok_gradsfile = .FALSE. 937 CALL getin('ok_gradsfile',ok_gradsfile) 938 939 !Config Key = ok_limit 940 !Config Desc = creation des fichiers limit dans create_etat0_limit 941 !Config Def = y 942 !Config Help = production du fichier limit.nc requise 943 944 ok_limit = .TRUE. 945 CALL getin('ok_limit',ok_limit) 946 947 !Config Key = ok_etat0 948 !Config Desc = creation des fichiers etat0 dans create_etat0_limit 949 !Config Def = y 950 !Config Help = production des fichiers start.nc, startphy.nc requise 951 952 ok_etat0 = .TRUE. 953 CALL getin('ok_etat0',ok_etat0) 954 955 write(lunout,*)' #########################################' 956 write(lunout,*)' Configuration des parametres de cel0' 957 & //'_limit: ' 958 write(lunout,*)' planet_type = ', planet_type 959 write(lunout,*)' calend = ', calend 960 write(lunout,*)' dayref = ', dayref 961 write(lunout,*)' anneeref = ', anneeref 962 write(lunout,*)' nday = ', nday 963 write(lunout,*)' day_step = ', day_step 964 write(lunout,*)' iperiod = ', iperiod 965 write(lunout,*)' iconser = ', iconser 966 write(lunout,*)' iecri = ', iecri 967 write(lunout,*)' periodav = ', periodav 968 write(lunout,*)' output_grads_dyn = ', output_grads_dyn 969 write(lunout,*)' dissip_period = ', dissip_period 970 write(lunout,*)' lstardis = ', lstardis 971 write(lunout,*)' nitergdiv = ', nitergdiv 972 write(lunout,*)' nitergrot = ', nitergrot 973 write(lunout,*)' niterh = ', niterh 974 write(lunout,*)' tetagdiv = ', tetagdiv 975 write(lunout,*)' tetagrot = ', tetagrot 976 write(lunout,*)' tetatemp = ', tetatemp 977 write(lunout,*)' coefdis = ', coefdis 978 write(lunout,*)' purmats = ', purmats 979 write(lunout,*)' read_start = ', read_start 980 write(lunout,*)' iflag_phys = ', iflag_phys 981 write(lunout,*)' iphysiq = ', iphysiq 982 write(lunout,*)' clon = ', clon 983 write(lunout,*)' clat = ', clat 984 write(lunout,*)' grossismx = ', grossismx 985 write(lunout,*)' grossismy = ', grossismy 986 write(lunout,*)' fxyhypb = ', fxyhypb 987 write(lunout,*)' dzoomx = ', dzoomx 988 write(lunout,*)' dzoomy = ', dzoomy 989 write(lunout,*)' taux = ', taux 990 write(lunout,*)' tauy = ', tauy 991 write(lunout,*)' offline = ', offline 992 write(lunout,*)' type_trac = ', type_trac 993 write(lunout,*)' config_inca = ', config_inca 994 write(lunout,*)' ok_dynzon = ', ok_dynzon 995 write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins 996 write(lunout,*)' ok_dyn_ave = ', ok_dyn_ave 997 write(lunout,*)' use_filtre_fft = ', use_filtre_fft 998 write(lunout,*)' use_mpi_alloc = ', use_mpi_alloc 999 write(lunout,*)' ok_strato = ', ok_strato 1000 write(lunout,*)' ok_gradsfile = ', ok_gradsfile 1001 write(lunout,*)' ok_limit = ', ok_limit 1002 write(lunout,*)' ok_etat0 = ', ok_etat0 1003 ! 1004 RETURN 1005 END 876 write(lunout,*)"Le zoom en longitude est incompatible", & 877 " avec l'utilisation du filtre FFT ", & 878 "---> FFT filter not active" 879 use_filtre_fft=.FALSE. 880 ENDIF 881 882 !Config Key = use_mpi_alloc 883 !Config Desc = Utilise un buffer MPI en m�moire globale 884 !Config Def = false 885 !Config Help = permet d'activer l'utilisation d'un buffer MPI 886 !Config en m�moire globale a l'aide de la fonction MPI_ALLOC. 887 !Config Cela peut am�liorer la bande passante des transferts MPI 888 !Config d'un facteur 2 889 use_mpi_alloc=.FALSE. 890 CALL getin('use_mpi_alloc',use_mpi_alloc) 891 892 !Config key = ok_strato 893 !Config Desc = activation de la version strato 894 !Config Def = .FALSE. 895 !Config Help = active la version stratosphérique de LMDZ de F. Lott 896 897 ok_strato=.FALSE. 898 CALL getin('ok_strato',ok_strato) 899 900 vert_prof_dissip = merge(1, 0, ok_strato .and. llm==39) 901 CALL getin('vert_prof_dissip', vert_prof_dissip) 902 call assert(vert_prof_dissip == 0 .or. vert_prof_dissip == 1, & 903 "bad value for vert_prof_dissip") 904 905 !Config Key = ok_gradsfile 906 !Config Desc = activation des sorties grads du guidage 907 !Config Def = n 908 !Config Help = active les sorties grads du guidage 909 910 ok_gradsfile = .FALSE. 911 CALL getin('ok_gradsfile',ok_gradsfile) 912 913 !Config Key = ok_limit 914 !Config Desc = creation des fichiers limit dans create_etat0_limit 915 !Config Def = y 916 !Config Help = production du fichier limit.nc requise 917 918 ok_limit = .TRUE. 919 CALL getin('ok_limit',ok_limit) 920 921 !Config Key = ok_etat0 922 !Config Desc = creation des fichiers etat0 dans create_etat0_limit 923 !Config Def = y 924 !Config Help = production des fichiers start.nc, startphy.nc requise 925 926 ok_etat0 = .TRUE. 927 CALL getin('ok_etat0',ok_etat0) 928 929 write(lunout,*)' #########################################' 930 write(lunout,*)' Configuration des parametres de cel0' & 931 //'_limit: ' 932 write(lunout,*)' planet_type = ', planet_type 933 write(lunout,*)' calend = ', calend 934 write(lunout,*)' dayref = ', dayref 935 write(lunout,*)' anneeref = ', anneeref 936 write(lunout,*)' nday = ', nday 937 write(lunout,*)' day_step = ', day_step 938 write(lunout,*)' iperiod = ', iperiod 939 write(lunout,*)' iconser = ', iconser 940 write(lunout,*)' iecri = ', iecri 941 write(lunout,*)' periodav = ', periodav 942 write(lunout,*)' output_grads_dyn = ', output_grads_dyn 943 write(lunout,*)' dissip_period = ', dissip_period 944 write(lunout,*)' lstardis = ', lstardis 945 write(lunout,*)' nitergdiv = ', nitergdiv 946 write(lunout,*)' nitergrot = ', nitergrot 947 write(lunout,*)' niterh = ', niterh 948 write(lunout,*)' tetagdiv = ', tetagdiv 949 write(lunout,*)' tetagrot = ', tetagrot 950 write(lunout,*)' tetatemp = ', tetatemp 951 write(lunout,*)' coefdis = ', coefdis 952 write(lunout,*)' purmats = ', purmats 953 write(lunout,*)' read_start = ', read_start 954 write(lunout,*)' iflag_phys = ', iflag_phys 955 write(lunout,*)' iphysiq = ', iphysiq 956 write(lunout,*)' clon = ', clon 957 write(lunout,*)' clat = ', clat 958 write(lunout,*)' grossismx = ', grossismx 959 write(lunout,*)' grossismy = ', grossismy 960 write(lunout,*)' fxyhypb = ', fxyhypb 961 write(lunout,*)' dzoomx = ', dzoomx 962 write(lunout,*)' dzoomy = ', dzoomy 963 write(lunout,*)' taux = ', taux 964 write(lunout,*)' tauy = ', tauy 965 write(lunout,*)' offline = ', offline 966 write(lunout,*)' type_trac = ', type_trac 967 write(lunout,*)' config_inca = ', config_inca 968 write(lunout,*)' ok_dynzon = ', ok_dynzon 969 write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins 970 write(lunout,*)' ok_dyn_ave = ', ok_dyn_ave 971 write(lunout,*)' use_filtre_fft = ', use_filtre_fft 972 write(lunout,*)' use_mpi_alloc = ', use_mpi_alloc 973 write(lunout,*)' ok_strato = ', ok_strato 974 write(lunout,*)' ok_gradsfile = ', ok_gradsfile 975 write(lunout,*)' ok_limit = ', ok_limit 976 write(lunout,*)' ok_etat0 = ', ok_etat0 977 end IF test_etatinit 978 979 END SUBROUTINE conf_gcm
Note: See TracChangeset
for help on using the changeset viewer.