Changeset 2203 for trunk/LMDZ.VENUS/libf/phyvenus/cloudvenus
- Timestamp:
- Dec 24, 2019, 1:57:50 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/libf/phyvenus/cloudvenus/new_cloud_sedim.F
r2200 r2203 1 1 subroutine new_cloud_sedim(n_lon, n_lev, ptimestep, 2 2 $ pmidlay, pbndlay, pt, pq, 3 $ d_tr_chem, pdqsed, pdqs_sed,3 $ d_tr_chem, pdqsed, 4 4 $ nq, F_sed) 5 5 … … 33 33 real pdqsed(n_lon,n_lev,2) ! tendency due to sedimentation (kg/kg) 34 34 real d_tr_chem(n_lon,n_lev,nq)! tendency due to chemistry and clouds (kg/kg) 35 real pdqs_sed(n_lon) ! surface density (Flux if /ptimestep) at surface due to sedimentation (kg.m-2)36 35 37 36 c local: … … 53 52 c Gas molecular viscosity (N.s.m-2) 54 53 c real,parameter :: visc=1.e-5 ! CO2 55 54 REAL :: VISCOSITY_CO2 56 55 c Effective gas molecular radius (m) 57 56 real,parameter :: molrad=2.2e-10 ! CO2 … … 91 90 c ----------------- 92 91 93 ! Updating the droplet mass mixing ratio with the partition H2O/H2SO492 ! update water vapour and sulfuric acid mixing ratios 94 93 95 94 zqi_wv(:,:) = pq(:,:,i_h2oliq) + d_tr_chem(:,:,i_h2oliq)*ptimestep 96 95 zqi_sa(:,:) = pq(:,:,i_h2so4liq) 97 96 $ + d_tr_chem(:,:,i_h2so4liq)*ptimestep 97 98 98 wgt_SA(:,:) = wh2so4(:,:) 99 99 … … 348 348 349 349 ENDDO 350 c****************************************************************351 350 352 351 c Passage du Flux au Flux pour un pas de temps (== kg.m-2) 353 F_sed(:,:)=F_sed(:,:)*ptimestep 354 355 356 c VENUS: le flux à la surface est fixé à 0 357 c les conditions P/T en surface ne permettent pas la condensation 358 DO ig=1,n_lon 359 pdqs_sed(ig) = 0.0d0 360 ENDDO 361 362 c Compute the final tendency: 363 c --------------------------- 364 365 c Partie H2SO4l 366 c ~~~~~~~~~~~~ 367 368 DO l = 1, n_lev 369 DO ig=1,n_lon 370 zqi_sa(ig,l) = zqi_sa(ig,l) + ( 371 & F_sed(ig,l+1)*wgt_SA(ig,l+1) 372 & - F_sed(ig,l)*wgt_SA(ig,l)) 373 & / m_lay(ig,l) 374 c On peut avoir theoriquement le cas ou on epuise tout le VMR present 375 IF (zqi_sa(ig,l).LT.0.0D0) THEN 376 c PRINT*,'STOP sedimentation on epuise tout le VMR present' 377 c PRINT*,'couche',ig,'level',l 378 c STOP 379 c Ce n est pas juste mais il faudrait alors adapter les pas 380 c de tps de la phys, microphys et chimie 381 c car dans ce cas, c est comme si on epuisait la couche pour un pdtphys 382 c mais en fait on l epuise pour un pdt<pdtphys 383 zqi_sa(ig,l) = 0.0D0 384 ENDIF 385 pdqsed(ig,l,1) = zqi_sa(ig,l) - pq(ig,l,i_h2so4liq) 386 ENDDO 387 ENDDO 388 389 c Partie H2Ol 390 c ~~~~~~~~~~~ 352 353 F_sed(:,:) = F_sed(:,:)*ptimestep 354 355 !========================================================= 356 ! compute tendency due to sedimentation 357 !========================================================= 358 359 ! h2so4 360 361 do l = 1,n_lev 362 do ig = 1,n_lon 363 zqi_sa(ig,l) = zqi_sa(ig,l) 364 $ + (F_sed(ig,l+1)*wgt_SA(ig,l+1) 365 $ - F_sed(ig,l)*wgt_SA(ig,l))/m_lay(ig,l) 366 ! if (zqi_sa(ig,l) < 0.) THEN 367 ! print*,'STOP sedim on epuise tout le H2SO4l present' 368 ! print*,'point ',ig,'level ',l 369 ! print*,'zqi_sa = ', zqi_sa(ig,l) 370 ! STOP 371 ! zqi_sa(ig,l) = 0. 372 ! end if 373 zqi_sa(ig,l) = max(zqi_sa(ig,l), 0.) 374 pdqsed(ig,l,1) = zqi_sa(ig,l) - pq(ig,l,i_h2so4liq) 375 end do 376 end do 377 378 ! h2o 391 379 392 DO l = 1, n_lev 393 DO ig=1,n_lon 394 zqi_wv(ig,l) = zqi_wv(ig,l) + ( 395 & F_sed(ig,l+1)*(1. - wgt_SA(ig,l+1)) 396 & - F_sed(ig,l)*(1. - wgt_SA(ig,l))) 397 & / m_lay(ig,l) 398 c On peut avoir theoriquement le cas ou on epuise tout le VMR present 399 IF (zqi_wv(ig,l).LT.0.0D0) THEN 400 c PRINT*,'STOP sedimentation on epuise tout le VMR present' 401 c PRINT*,'couche',ig,'level',l 402 c STOP 403 c Ce n est pas juste mais il faudrait alors adapter les pas 404 c de tps de la phys, microphys et chimie 405 c car dans ce cas, c est comme si on epuisait la couche pour un pdtphys 406 c mais en fait on l epuise pour un pdt<pdtphys 407 zqi_wv(ig,l) = 0.0D0 408 ENDIF 409 pdqsed(ig,l,2) = zqi_wv(ig,l) - pq(ig,l,i_h2oliq) 410 ENDDO 411 ENDDO 380 do l = 1, n_lev 381 do ig=1,n_lon 382 zqi_wv(ig,l) = zqi_wv(ig,l) 383 $ + (F_sed(ig,l+1)*(1. - wgt_SA(ig,l+1)) 384 & - F_sed(ig,l)*(1. - wgt_SA(ig,l))) 385 & /m_lay(ig,l) 386 ! if (zqi_wv(ig,l) < 0.) THEN 387 ! print*,'STOP sedim on epuise tout le H2Ol present' 388 ! print*,'point ',ig,'level ',l 389 ! print*,'zqi_wv = ', zqi_wv(ig,l) 390 ! STOP 391 ! zqi_wv(ig,l) = 0. 392 ! end if 393 zqi_wv(ig,l) = max(zqi_wv(ig,l), 0.) 394 pdqsed(ig,l,2) = zqi_wv(ig,l) - pq(ig,l,i_h2oliq) 395 end do 396 end do 412 397 413 398 c Save output file in 1D model 414 399 c ============================ 415 416 400 c IF (n_lon .EQ. 1) THEN 417 401 c PRINT*,'Save output sedim'
Note: See TracChangeset
for help on using the changeset viewer.