Changeset 1421 for LMDZ4/trunk/libf
- Timestamp:
- Jul 28, 2010, 3:28:42 PM (14 years ago)
- Location:
- LMDZ4/trunk/libf
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/dyn3d/dynetat0.F
r1403 r1421 321 321 ierr = NF_INQ_VARID (nid, tname(iq), nvarid) 322 322 IF (ierr .NE. NF_NOERR) THEN 323 write(lunout,*)"dynetat0: Le champ <"//tname(iq)//323 write(lunout,*)"dynetat0: Le traceur <"//trim(tname(iq))// 324 324 & "> est absent" 325 325 write(lunout,*)" Il est donc initialise a zero" -
LMDZ4/trunk/libf/dyn3dpar/dynetat0.F
r1403 r1421 321 321 ierr = NF_INQ_VARID (nid, tname(iq), nvarid) 322 322 IF (ierr .NE. NF_NOERR) THEN 323 write(lunout,*)"dynetat0: Le champ <"//tname(iq)//323 write(lunout,*)"dynetat0: Le traceur <"//trim(tname(iq))// 324 324 & "> est absent" 325 325 write(lunout,*)" Il est donc initialise a zero" -
LMDZ4/trunk/libf/phylmd/clesphys.h
r1403 r1421 73 73 LOGICAL :: ok_strato 74 74 LOGICAL :: ok_hines 75 INTEGER :: nseuil76 75 77 76 COMMON/clesphys/cycle_diurne, soil_model, new_oliq, & … … 94 93 & , ok_lic_melt, cvl_corr, aer_type & 95 94 & , qsol0, iflag_rrtm, ok_strato,ok_hines,ecrit_LES & 96 & , co2_ppm0 , nseuil95 & , co2_ppm0 97 96 98 97 !$OMP THREADPRIVATE(/clesphys/) -
LMDZ4/trunk/libf/phylmd/conf_phys.F90
r1403 r1421 153 153 REAL,SAVE :: ecrit_LES_omp 154 154 REAL,SAVE :: ecrit_tra_omp 155 INTEGER, SAVE :: nseuil_omp156 155 REAL,SAVE :: cvl_corr_omp 157 156 LOGICAL,SAVE :: ok_lic_melt_omp … … 1268 1267 ecrit_tra_omp = 30. 1269 1268 call getin('ecrit_tra',ecrit_tra_omp) 1270 !1271 !Config Key = nseuil1272 !Config Desc = Numero du traceur a partir duquel on ne transporte1273 ! pas par convection1274 !Config Def = 7 !a partir du numero 7 pour les pseudo-traceurs de Remy1275 !Config Help =1276 !1277 nseuil_omp = 71278 call getin('nseuil',nseuil_omp)1279 !1280 1269 ! 1281 1270 !Config Key = ecrit_reg … … 1571 1560 ecrit_mth = ecrit_mth_omp 1572 1561 ecrit_tra = ecrit_tra_omp 1573 nseuil = nseuil_omp1574 1562 ecrit_reg = ecrit_reg_omp 1575 1563 cvl_corr = cvl_corr_omp … … 1739 1727 write(numout,*)' ecrit_ hf, ins, day, mth, reg, tra, ISCCP, LES',& 1740 1728 ecrit_hf, ecrit_ins, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP, ecrit_LES 1741 write(numout,*)' nseuil ',nseuil1742 1729 1743 1730 write(numout,*) 'ok_strato = ', ok_strato -
LMDZ4/trunk/libf/phylmd/phys_output_mod.F90
r1403 r1421 1232 1232 o_trac(nq) = ctrl_out((/ 4, 5, 1, 1, 1 /),'trac'//TRIM(solsym(nq))) 1233 1233 ENDIF 1234 WRITE(*,*) 'nq, o_trac(nq)=',nq, o_trac(nq)1235 1234 ENDDO 1236 1235 ! -
LMDZ4/trunk/libf/phylmd/phytrac.F90
r1403 r1421 241 241 CASE('lmdz') 242 242 ! -- Traitement des traceurs avec traclmdz 243 244 243 CALL traclmdz(nstep, julien, gmtime, pdtphys, t_seri, paprs, pplay, & 245 244 cdragh, coefh, yu1, yv1, ftsol, pctsrf, xlat, xlon, couchelimite, & 246 245 sh, tr_seri, source, solsym, d_tr_cl, zmasse) 247 248 246 CASE('inca') 249 247 ! -- CHIMIE INCA config_inca = aero or chem -- … … 281 279 END IF 282 280 283 !IM ajout traceurs RR284 ! print*,'phytrac it,nseuil=',it,nseuil285 IF (it.lt.nseuil) THEN286 281 DO k = 1, klev 287 282 DO i = 1, klon … … 289 284 END DO 290 285 END DO 291 END IF !(it.lt.nseuil) then292 286 293 287 CALL minmaxqfi(tr_seri(:,:,it),0.,1.e33,'convection it = '//solsym(it)) -
LMDZ4/trunk/libf/phylmd/traclmdz_mod.F90
r1409 r1421 6 6 ! only if running without any other chemestry model as INCA or REPROBUS. 7 7 ! 8 9 8 IMPLICIT NONE 10 9 … … 45 44 !$OMP THREADPRIVATE(id_be) 46 45 47 !IM ajout traceurs RR48 INTEGER,SAVE :: id_dry !traceur dry intrusions49 !$OMP THREADPRIVATE(id_dry)50 46 INTEGER,SAVE :: id_pcsat, id_pcocsat, id_pcq ! traceurs pseudo-vapeur CL qsat, qsat_oc, q 51 47 !$OMP THREADPRIVATE(id_pcsat, id_pcocsat, id_pcq) 52 INTEGER,SAVE :: id_pcs0, id_pcos0, id_pcq0 ! traceurs pseudo-vapeur CL qsat, qsat_oc, q53 ! ! qui ne sont pas transportes par la convection48 INTEGER,SAVE :: id_pcs0, id_pcos0, id_pcq0 ! traceurs pseudo-vapeur CL qsat, qsat_oc, q 49 ! ! qui ne sont pas transportes par la convection 54 50 !$OMP THREADPRIVATE(id_pcs0, id_pcos0, id_pcq0) 55 51 56 52 INTEGER, SAVE:: id_o3 57 58 59 53 !$OMP THREADPRIVATE(id_o3) 54 ! index of ozone tracer with Cariolle parameterization 55 ! 0 means no ozone tracer 60 56 61 57 LOGICAL,SAVE :: rnpb=.FALSE. ! Presence du couple Rn222, Pb210 … … 90 86 SUBROUTINE traclmdz_init(pctsrf, ftsol, tr_seri, t_seri, pplay, sh, aerosol, lessivage) 91 87 ! This subroutine allocates and initialize module variables and control variables. 88 ! Initialization of the tracers should be done here only for those not found in the restart file. 92 89 USE dimphy 93 90 USE infotrac … … 95 92 USE press_coefoz_m, ONLY: press_coefoz 96 93 USE carbon_cycle_mod, ONLY : carbon_cycle_init, carbon_cycle_tr, carbon_cycle_cpl 94 USE mod_grid_phy_lmdz 95 USE mod_phys_lmdz_para 97 96 98 97 INCLUDE "indicesol.h" 99 98 INCLUDE "iniprint.h" 100 99 ! Input variables 101 100 REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: pctsrf ! Pourcentage de sol f(nature du sol) 102 101 REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: ftsol ! Temperature du sol (surf)(Kelvin) 103 !IM traceurs RR REAL,DIMENSION(klon,klev,nbtr),INTENT(IN) :: tr_seri! Concentration Traceur [U/KgA]104 102 REAL,DIMENSION(klon,klev,nbtr),INTENT(INOUT) :: tr_seri! Concentration Traceur [U/KgA] 105 103 REAL,DIMENSION(klon,klev),INTENT(IN) :: t_seri ! Temperature … … 113 111 ! Local variables 114 112 INTEGER :: ierr, it, iiq, i, k 115 REAL,DIMENSION(klon,klev) :: qsat ! pression de la vapeur a saturation 116 113 REAL, DIMENSION(klon_glo,klev) :: varglo ! variable temporaire sur la grille global 114 REAL, DIMENSION(klev) :: mintmp, maxtmp 115 LOGICAL :: zero 116 117 117 ! -------------------------------------------- 118 118 ! Allocation 119 119 ! -------------------------------------------- 120 121 120 ALLOCATE( scavtr(nbtr), stat=ierr) 122 121 IF (ierr /= 0) CALL abort_gcm('traclmdz_init', 'pb in allocation 9',1) … … 152 151 ! -------------------------------------------- 153 152 id_rn=0; id_pb=0; id_aga=0; id_be=0; id_o3=0 153 id_pcsat=0; id_pcocsat=0; id_pcq=0; id_pcs0=0; id_pcos0=0; id_pcq0=0 154 154 DO it=1,nbtr 155 155 iiq=niadv(it+2) … … 181 181 aerosol(id_be) = .TRUE. ! le Be est un aerosol 182 182 CALL init_be(pctsrf,masktr(:,id_be),tautr(id_be),vdeptr(id_be),scavtr(id_be),srcbe) 183 WRITE( *,*) 'Initialisation srcBe: OK'183 WRITE(lunout,*) 'Initialisation srcBe: OK' 184 184 ELSE IF (tname(iiq)=="O3" .OR. tname(iiq)=="o3") THEN 185 185 ! Recherche de l'ozone : parametrization de la chimie par Cariolle … … 187 187 CALL alloc_coefoz ! allocate ozone coefficients 188 188 CALL press_coefoz ! read input pressure levels 189 END IF 190 END DO 191 192 id_dry=0 193 DO it=1,nbtr 194 iiq=niadv(it+2) 195 IF ( tname(iiq) == "dry" .OR. tname(iiq) == "Dry" ) THEN 196 id_dry=it 197 END IF 198 END DO 199 200 id_pcsat=0 201 DO it=1,nbtr 202 iiq=niadv(it+2) 203 IF ( tname(iiq) == "pcsat" .OR. tname(iiq) == "Pcsat" ) THEN 204 id_pcsat=it 205 END IF 206 END DO 207 208 id_pcocsat=0 209 DO it=1,nbtr 210 iiq=niadv(it+2) 211 IF ( tname(iiq) == "pcocsat" .OR. tname(iiq) == "Pcocsat" ) THEN 212 id_pcocsat=it 213 END IF 214 END DO 215 216 id_pcq=0 217 DO it=1,nbtr 218 iiq=niadv(it+2) 219 IF ( tname(iiq) == "pcq" .OR. tname(iiq) == "Pcq" ) THEN 220 id_pcq=it 221 END IF 222 END DO 223 224 id_pcs0=0 225 DO it=1,nbtr 226 iiq=niadv(it+2) 227 IF ( tname(iiq) == "pcs0" .OR. tname(iiq) == "Pcs0" ) THEN 228 id_pcs0=it 229 END IF 230 END DO 231 232 id_pcos0=0 233 DO it=1,nbtr 234 iiq=niadv(it+2) 235 IF ( tname(iiq) == "pcos0" .OR. tname(iiq) == "Pcos0" ) THEN 236 id_pcos0=it 237 END IF 238 END DO 239 240 id_pcq0=0 241 DO it=1,nbtr 242 iiq=niadv(it+2) 243 IF ( tname(iiq) == "pcq0" .OR. tname(iiq) == "Pcq0" ) THEN 244 id_pcq0=it 189 ELSE IF ( tname(iiq) == "pcsat" .OR. tname(iiq) == "Pcsat" ) THEN 190 id_pcsat=it 191 ELSE IF ( tname(iiq) == "pcocsat" .OR. tname(iiq) == "Pcocsat" ) THEN 192 id_pcocsat=it 193 ELSE IF ( tname(iiq) == "pcq" .OR. tname(iiq) == "Pcq" ) THEN 194 id_pcq=it 195 ELSE IF ( tname(iiq) == "pcs0" .OR. tname(iiq) == "Pcs0" ) THEN 196 id_pcs0=it 197 conv_flg(it)=0 ! No transport by convection for this tracer 198 ELSE IF ( tname(iiq) == "pcos0" .OR. tname(iiq) == "Pcos0" ) THEN 199 id_pcos0=it 200 conv_flg(it)=0 ! No transport by convection for this tracer 201 ELSE IF ( tname(iiq) == "pcq0" .OR. tname(iiq) == "Pcq0" ) THEN 202 id_pcq0=it 203 conv_flg(it)=0 ! No transport by convection for this tracer 204 ELSE 205 WRITE(lunout,*) 'This is an unknown tracer in LMDZ : ', trim(tname(iiq)) 245 206 END IF 246 207 END DO … … 268 229 END IF 269 230 270 !IM initialisation traceurs pseudo-vapeurs 271 call q_sat(klon*klev,t_seri,pplay,qsat) 272 IF ( id_pcsat /= 0 ) THEN 273 DO k = 1, klev 274 DO i = 1, klon 275 IF ( pplay(i,k).GE.85000.) THEN 276 tr_seri(i,k,id_pcsat) = qsat(i,k) 277 ELSE 278 tr_seri(i,k,id_pcsat) = 100. 279 END IF 280 END DO 281 END DO 282 END IF 283 284 IF ( id_pcocsat /= 0 ) THEN 285 DO k = 1, klev 286 DO i = 1, klon 287 IF ( pplay(i,k).GE.85000.) THEN 288 IF ( pctsrf (i, is_oce) > 0. ) THEN 289 tr_seri(i,k,id_pcocsat) = qsat(i,k) 290 ELSE 291 tr_seri(i,k,id_pcocsat) = 100. 292 END IF 293 END IF 294 END DO 295 END DO 296 END IF 297 298 IF ( id_pcq /= 0 ) THEN 299 DO k = 1, klev 300 DO i = 1, klon 301 IF ( pplay(i,k).GE.85000.) THEN 302 tr_seri(i,k,id_pcq) = sh(i,k) 303 ELSE 304 tr_seri(i,k,id_pcq) = 100. 305 END IF 306 END DO 307 END DO 308 END IF 309 310 IF ( id_pcs0 /= 0 ) THEN 311 DO k = 1, klev 312 DO i = 1, klon 313 IF ( pplay(i,k).GE.85000.) THEN 314 tr_seri(i,k,id_pcs0) = qsat(i,k) 315 ELSE 316 tr_seri(i,k,id_pcs0) = 100. 317 END IF 318 END DO 319 END DO 320 END IF 321 322 IF ( id_pcos0 /= 0 ) THEN 323 DO k = 1, klev 324 DO i = 1, klon 325 IF ( pplay(i,k).GE.85000.) THEN 326 IF ( pctsrf (i, is_oce) > 0. ) THEN 327 tr_seri(i,k,id_pcos0) = qsat(i,k) 328 ELSE 329 tr_seri(i,k,id_pcos0) = 100. 330 END IF 331 END IF 332 END DO 333 END DO 334 END IF 335 336 IF ( id_pcq0 /= 0 ) THEN 337 DO k = 1, klev 338 DO i = 1, klon 339 IF ( pplay(i,k).GE.85000.) THEN 340 tr_seri(i,k,id_pcq0) = sh(i,k) 341 ELSE 342 tr_seri(i,k,id_pcq0) = 100. 343 END IF 344 END DO 345 END DO 346 END IF 347 231 ! Check if all tracers have restart values 232 ! ---------------------------------------------- 233 DO it=1,nbtr 234 iiq=niadv(it+2) 235 ! Test if tracer is zero everywhere. 236 ! Done by master process MPI and master thread OpenMP 237 CALL gather(tr_seri(:,:,it),varglo) 238 IF (is_mpi_root .AND. is_omp_root) THEN 239 mintmp=MINVAL(varglo,dim=1) 240 maxtmp=MAXVAL(varglo,dim=1) 241 IF (MINVAL(mintmp,dim=1)==0. .AND. MAXVAL(maxtmp,dim=1)==0.) THEN 242 ! Tracer is zero everywhere 243 zero=.TRUE. 244 ELSE 245 zero=.FALSE. 246 END IF 247 END IF 248 249 ! Distribute variable at all processes 250 CALL bcast(zero) 251 252 ! Initalize tracer that was not found in restart file. 253 IF (zero) THEN 254 ! The tracer was not found in restart file or it was equal zero everywhere. 255 WRITE(lunout,*) "The tracer ",trim(tname(iiq))," will be initialized" 256 IF (it==id_pcsat .OR. it==id_pcq .OR. & 257 it==id_pcs0 .OR. it==id_pcq0) THEN 258 tr_seri(:,:,it) = 100. 259 ELSE IF (it==id_pcocsat .OR. it==id_pcos0) THEN 260 DO i = 1, klon 261 IF ( pctsrf (i, is_oce) == 0. ) THEN 262 tr_seri(i,:,it) = 0. 263 ELSE 264 tr_seri(i,:,it) = 100. 265 END IF 266 END DO 267 ELSE 268 ! No specific initialization exist for this tracer 269 tr_seri(:,:,it) = 0. 270 END IF 271 END IF 272 END DO 273 348 274 END SUBROUTINE traclmdz_init 349 275 … … 391 317 REAL,DIMENSION(klon),INTENT(IN) :: yv1 ! vents au premier niveau 392 318 LOGICAL,INTENT(IN) :: couchelimite 393 !IM traceurs RR 394 REAL,DIMENSION(klon,klev),INTENT(IN) :: sh ! humidite specifique 319 REAL,DIMENSION(klon,klev),INTENT(IN) :: sh ! humidite specifique 395 320 396 321 ! Arguments necessaires pour les sources et puits de traceur: 397 322 REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: ftsol ! Temperature du sol (surf)(Kelvin) 398 323 REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: pctsrf ! Pourcentage de sol f(nature du sol) 399 400 324 401 325 ! InOutput argument … … 412 336 413 337 INTEGER :: i, k, it 414 INTEGER lmt_pas ! number of time steps of "physics" per day338 INTEGER :: lmt_pas ! number of time steps of "physics" per day 415 339 416 340 REAL,DIMENSION(klon) :: d_trs ! Td dans le reservoir 341 REAL,DIMENSION(klon,klev) :: qsat ! pression de la vapeur a saturation 417 342 REAL,DIMENSION(klon,klev,nbtr) :: d_tr_dec ! Td radioactive 418 REAL :: zrho ! Masse Volumique de l'air KgA/m3 419 420 !IM traceurs RR 421 REAL,DIMENSION(klon,klev) :: qsat ! pression de la vapeur a saturation 422 REAL :: amn, amx 343 REAL :: zrho ! Masse Volumique de l'air KgA/m3 344 REAL :: amn, amx 423 345 ! 424 346 !================================================================= … … 435 357 END IF 436 358 437 !IM ajout traceurs RR 438 call q_sat(klon*klev,t_seri,pplay,qsat) 439 359 360 !================================================================= 361 ! Update pseudo-vapor tracers 362 !================================================================= 363 364 CALL q_sat(klon*klev,t_seri,pplay,qsat) 365 440 366 IF ( id_pcsat /= 0 ) THEN 441 367 DO k = 1, klev 442 368 DO i = 1, klon 443 IF ( pplay(i,k).GE.85000.) THEN 444 tr_seri(i,k,id_pcsat) = qsat(i,k) 445 END IF 369 IF ( pplay(i,k).GE.85000.) THEN 370 tr_seri(i,k,id_pcsat) = qsat(i,k) 371 ELSE 372 tr_seri(i,k,id_pcsat) = MIN (qsat(i,k), tr_seri(i,k,id_pcsat)) 373 END IF 446 374 END DO 447 375 END DO … … 451 379 DO k = 1, klev 452 380 DO i = 1, klon 453 IF ( pplay(i,k).GE.85000.) THEN 454 IF ( pctsrf (i, is_oce) > 0. ) THEN 455 tr_seri(i,k,id_pcocsat) = qsat(i,k) 456 END IF 381 IF ( pplay(i,k).GE.85000.) THEN 382 IF ( pctsrf (i, is_oce) > 0. ) THEN 383 tr_seri(i,k,id_pcocsat) = qsat(i,k) 384 ELSE 385 tr_seri(i,k,id_pcocsat) = 0. 386 END IF 387 ELSE 388 tr_seri(i,k,id_pcocsat) = MIN (qsat(i,k), tr_seri(i,k,id_pcocsat)) 457 389 END IF 458 390 END DO … … 463 395 DO k = 1, klev 464 396 DO i = 1, klon 465 IF ( pplay(i,k).GE.85000.) THEN 466 tr_seri(i,k,id_pcq) = sh(i,k) 467 END IF 397 IF ( pplay(i,k).GE.85000.) THEN 398 tr_seri(i,k,id_pcq) = sh(i,k) 399 ELSE 400 tr_seri(i,k,id_pcq) = MIN (qsat(i,k), tr_seri(i,k,id_pcq)) 401 END IF 468 402 END DO 469 403 END DO 470 404 END IF 405 471 406 472 407 IF ( id_pcs0 /= 0 ) THEN 473 408 DO k = 1, klev 474 409 DO i = 1, klon 475 IF ( pplay(i,k).GE.85000.) THEN 476 tr_seri(i,k,id_pcs0) = qsat(i,k) 477 END IF 410 IF ( pplay(i,k).GE.85000.) THEN 411 tr_seri(i,k,id_pcs0) = qsat(i,k) 412 ELSE 413 tr_seri(i,k,id_pcs0) = MIN (qsat(i,k), tr_seri(i,k,id_pcs0)) 414 END IF 478 415 END DO 479 416 END DO 480 417 END IF 418 481 419 482 420 IF ( id_pcos0 /= 0 ) THEN 483 421 DO k = 1, klev 484 422 DO i = 1, klon 485 IF ( pplay(i,k).GE.85000.) THEN 486 IF ( pctsrf (i, is_oce) > 0. ) THEN 487 tr_seri(i,k,id_pcos0) = qsat(i,k) 488 END IF 489 END IF 423 IF ( pplay(i,k).GE.85000.) THEN 424 IF ( pctsrf (i, is_oce) > 0. ) THEN 425 tr_seri(i,k,id_pcos0) = qsat(i,k) 426 ELSE 427 tr_seri(i,k,id_pcos0) = 0. 428 END IF 429 ELSE 430 tr_seri(i,k,id_pcos0) = MIN (qsat(i,k), tr_seri(i,k,id_pcos0)) 431 END IF 490 432 END DO 491 433 END DO 492 434 END IF 435 493 436 494 437 IF ( id_pcq0 /= 0 ) THEN 495 438 DO k = 1, klev 496 439 DO i = 1, klon 497 IF ( pplay(i,k).GE.85000.) THEN 498 tr_seri(i,k,id_pcq0) = sh(i,k) 499 END IF 440 IF ( pplay(i,k).GE.85000.) THEN 441 tr_seri(i,k,id_pcq0) = sh(i,k) 442 ELSE 443 tr_seri(i,k,id_pcq0) = MIN (qsat(i,k), tr_seri(i,k,id_pcq0)) 444 END IF 500 445 END DO 501 446 END DO 502 447 END IF 503 504 DO it=1,nbtr505 WRITE(solsym(it),'(i2)') it506 END DO507 448 508 449 !================================================================= … … 566 507 END DO 567 508 568 !IM traceurs RR 569 IF ( id_pcsat /= 0 ) THEN 570 DO k = 1, klev 571 DO i = 1, klon 572 IF ( pplay(i,k).LT.85000.) THEN 573 tr_seri(i,k,id_pcsat) = MIN (qsat(i,k), tr_seri(i,k,id_pcsat)) 574 END IF 575 END DO 576 END DO 577 END IF 578 579 IF ( id_pcocsat /= 0 ) THEN 580 DO k = 1, klev 581 DO i = 1, klon 582 IF ( pplay(i,k).LT.85000.) THEN 583 tr_seri(i,k,id_pcocsat) = MIN (qsat(i,k), tr_seri(i,k,id_pcocsat)) 584 END IF 585 END DO 586 END DO 587 END IF 588 589 IF ( id_pcq /= 0 ) THEN 590 DO k = 1, klev 591 DO i = 1, klon 592 IF ( pplay(i,k).LT.85000.) THEN 593 tr_seri(i,k,id_pcq) = MIN (qsat(i,k), tr_seri(i,k,id_pcq)) 594 END IF 595 END DO 596 END DO 597 END IF 598 599 IF ( id_pcs0 /= 0 ) THEN 600 DO k = 1, klev 601 DO i = 1, klon 602 IF ( pplay(i,k).LT.85000.) THEN 603 tr_seri(i,k,id_pcs0) = MIN (qsat(i,k), tr_seri(i,k,id_pcs0)) 604 END IF 605 END DO 606 END DO 607 END IF 608 609 IF ( id_pcos0 /= 0 ) THEN 610 DO k = 1, klev 611 DO i = 1, klon 612 IF ( pplay(i,k).LT.85000.) THEN 613 tr_seri(i,k,id_pcos0) = MIN (qsat(i,k), tr_seri(i,k,id_pcos0)) 614 END IF 615 END DO 616 END DO 617 END IF 618 619 IF ( id_pcq0 /= 0 ) THEN 620 DO k = 1, klev 621 DO i = 1, klon 622 IF ( pplay(i,k).LT.85000.) THEN 623 tr_seri(i,k,id_pcq0) = MIN (qsat(i,k), tr_seri(i,k,id_pcq0)) 624 END IF 625 END DO 626 END DO 627 END IF 509 628 510 !====================================================================== 629 511 ! Calcul de l'effet du puits radioactif 630 512 !====================================================================== 631 513 CALL radio_decay (radio,rnpb,pdtphys,tautr,tr_seri,d_tr_dec) 632 514 515 DO it=1,nbtr 516 WRITE(solsym(it),'(i2)') it 517 END DO 518 633 519 DO it=1,nbtr 634 520 IF(radio(it)) then
Note: See TracChangeset
for help on using the changeset viewer.