Changeset 2499 for LMDZ5/trunk/libf/phylmd/physiq_mod.F90
- Timestamp:
- Apr 24, 2016, 12:38:19 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/physiq_mod.F90
r2496 r2499 1043 1043 forall (k=1: nbp_lev) zmasse(:, k) = (paprs(:, k)-paprs(:, k+1)) / rg 1044 1044 1045 1046 1047 1045 modname = 'physiq' 1048 1046 !IM … … 1599 1597 !--store initial water burden 1600 1598 qql1(:)=0.0 1601 DO i = 1, klon 1602 DO k = 1, klev 1603 qql1(i)=qql1(i)+(q_seri(i,k)+ql_seri(i,k))*zmasse(i,k) 1604 ENDDO 1599 DO k = 1, klev 1600 qql1(:)=qql1(:)+(q_seri(:,k)+ql_seri(:,k)+qs_seri(:,k))*zmasse(:,k) 1605 1601 ENDDO 1606 1602 ENDIF … … 1656 1652 ! 1657 1653 IF (ancien_ok) THEN 1658 DO k = 1, klev 1659 DO i = 1, klon 1660 d_u_dyn(i,k) = (u_seri(i,k)-u_ancien(i,k))/dtime 1661 d_v_dyn(i,k) = (v_seri(i,k)-v_ancien(i,k))/dtime 1662 d_t_dyn(i,k) = (t_seri(i,k)-t_ancien(i,k))/dtime 1663 d_q_dyn(i,k) = (q_seri(i,k)-q_ancien(i,k))/dtime 1664 d_ql_dyn(i,k) = (ql_seri(i,k)-ql_ancien(i,k))/dtime 1665 d_qs_dyn(i,k) = (qs_seri(i,k)-qs_ancien(i,k))/dtime 1666 ENDDO 1667 ENDDO 1654 ! 1655 d_u_dyn(:,:) = (u_seri(:,:)-u_ancien(:,:))/dtime 1656 d_v_dyn(:,:) = (v_seri(:,:)-v_ancien(:,:))/dtime 1657 d_t_dyn(:,:) = (t_seri(:,:)-t_ancien(:,:))/dtime 1658 d_q_dyn(:,:) = (q_seri(:,:)-q_ancien(:,:))/dtime 1659 d_ql_dyn(:,:) = (ql_seri(:,:)-ql_ancien(:,:))/dtime 1660 d_qs_dyn(:,:) = (qs_seri(:,:)-qs_ancien(:,:))/dtime 1661 CALL water_int(klon,klev,q_seri,zmasse,zx_tmp_fi2d) 1662 d_q_dyn2d(:)=(zx_tmp_fi2d(:)-prw_ancien(:))/dtime 1663 CALL water_int(klon,klev,ql_seri,zmasse,zx_tmp_fi2d) 1664 d_ql_dyn2d(:)=(zx_tmp_fi2d(:)-prlw_ancien(:))/dtime 1665 CALL water_int(klon,klev,qs_seri,zmasse,zx_tmp_fi2d) 1666 d_qs_dyn2d(:)=(zx_tmp_fi2d(:)-prsw_ancien(:))/dtime 1668 1667 ! !! RomP >>> td dyn traceur 1669 !! IF (nqtot.GE.3) THEN ! jyg 1670 !! DO iq = 3, nqtot ! jyg 1671 IF (nqtot.GE.nqo+1) THEN ! jyg 1668 IF (nqtot.GT.nqo) THEN ! jyg 1672 1669 DO iq = nqo+1, nqtot ! jyg 1673 DO k = 1, klev 1674 DO i = 1, klon 1675 !! d_tr_dyn(i,k,iq-2)= & ! jyg 1676 !! (tr_seri(i,k,iq-2)-tr_ancien(i,k,iq-2))/dtime ! jyg 1677 d_tr_dyn(i,k,iq-nqo)= & ! jyg 1678 (tr_seri(i,k,iq-nqo)-tr_ancien(i,k,iq-nqo))/dtime ! jyg 1679 ! iiq=niadv(iq) 1680 ! print*,i,k," d_tr_dyn",d_tr_dyn(i,k,iq-nqo),"tra:",iq,& 1681 ! tname(iiq) 1682 ENDDO 1683 ENDDO 1670 d_tr_dyn(:,:,iq-nqo)=(tr_seri(:,:,iq-nqo)-tr_ancien(:,:,iq-nqo))/dtime ! jyg 1684 1671 ENDDO 1685 1672 ENDIF 1686 1673 ! !! RomP <<< 1687 1674 ELSE 1688 DO k = 1, klev 1689 DO i = 1, klon 1690 d_u_dyn(i,k) = 0.0 1691 d_v_dyn(i,k) = 0.0 1692 d_t_dyn(i,k) = 0.0 1693 d_q_dyn(i,k) = 0.0 1694 d_ql_dyn(i,k) = 0.0 1695 d_qs_dyn(i,k) = 0.0 1696 ENDDO 1697 ENDDO 1675 d_u_dyn(:,:) = 0.0 1676 d_v_dyn(:,:) = 0.0 1677 d_t_dyn(:,:) = 0.0 1678 d_q_dyn(:,:) = 0.0 1679 d_ql_dyn(:,:) = 0.0 1680 d_qs_dyn(:,:) = 0.0 1681 d_q_dyn2d(:) = 0.0 1682 d_ql_dyn2d(:) = 0.0 1683 d_qs_dyn2d(:) = 0.0 1698 1684 ! !! RomP >>> td dyn traceur 1699 !! IF (nqtot.GE.3) THEN ! jyg 1700 !! DO iq = 3, nqtot ! jyg 1701 IF (nqtot.GE.nqo+1) THEN ! jyg 1702 DO iq = nqo+1, nqtot ! jyg 1703 DO k = 1, klev 1704 DO i = 1, klon 1705 !! d_tr_dyn(i,k,iq-2)= 0.0 ! jyg 1706 d_tr_dyn(i,k,iq-nqo)= 0.0 ! jyg 1707 ENDDO 1708 ENDDO 1685 IF (nqtot.GT.nqo) THEN ! jyg 1686 DO iq = nqo+1, nqtot ! jyg 1687 d_tr_dyn(:,:,iq-nqo)= 0.0 ! jyg 1709 1688 ENDDO 1710 1689 ENDIF … … 4306 4285 ! prlw = colonne eau liquide 4307 4286 ! prlw = colonne eau solide 4308 DO i = 1, klon 4309 prw(i) = 0. 4310 prlw(i) = 0. 4311 prsw(i) = 0. 4312 DO k = 1, klev 4313 prw(i) = prw(i) + & 4314 q_seri(i,k)*(paprs(i,k)-paprs(i,k+1))/RG 4315 prlw(i) = prlw(i) + & 4316 ql_seri(i,k)*(paprs(i,k)-paprs(i,k+1))/RG 4317 prsw(i) = prsw(i) + & 4318 qs_seri(i,k)*(paprs(i,k)-paprs(i,k+1))/RG 4319 ENDDO 4287 prw(:) = 0. 4288 prlw(:) = 0. 4289 prsw(:) = 0. 4290 DO k = 1, klev 4291 prw(:) = prw(:) + q_seri(:,k)*zmasse(:,k) 4292 prlw(:) = prlw(:) + ql_seri(:,k)*zmasse(:,k) 4293 prsw(:) = prsw(:) + qs_seri(:,k)*zmasse(:,k) 4320 4294 ENDDO 4321 4295 ! … … 4395 4369 IF (mass_fixer) THEN 4396 4370 qql2(:)=0.0 4397 DO i = 1, klon 4398 DO k = 1, klev 4399 qql2(i)=qql2(i)+(q_seri(i,k)+ql_seri(i,k))*zmasse(i,k) 4400 ENDDO 4371 DO k = 1, klev 4372 qql2(:)=qql2(:)+(q_seri(:,k)+ql_seri(:,k)+qs_seri(:,k))*zmasse(:,k) 4401 4373 ENDDO 4402 4374 DO i = 1, klon … … 4413 4385 ! Sauvegarder les valeurs de t et q a la fin de la physique: 4414 4386 ! 4415 DO k = 1, klev 4416 DO i = 1, klon 4417 u_ancien(i,k) = u_seri(i,k) 4418 v_ancien(i,k) = v_seri(i,k) 4419 t_ancien(i,k) = t_seri(i,k) 4420 q_ancien(i,k) = q_seri(i,k) 4421 ql_ancien(i,k) = ql_seri(i,k) 4422 qs_ancien(i,k) = qs_seri(i,k) 4423 ENDDO 4424 ENDDO 4425 4387 u_ancien(:,:) = u_seri(:,:) 4388 v_ancien(:,:) = v_seri(:,:) 4389 t_ancien(:,:) = t_seri(:,:) 4390 q_ancien(:,:) = q_seri(:,:) 4391 ql_ancien(:,:) = ql_seri(:,:) 4392 qs_ancien(:,:) = qs_seri(:,:) 4393 CALL water_int(klon,klev,q_ancien,zmasse,prw_ancien) 4394 CALL water_int(klon,klev,ql_ancien,zmasse,prlw_ancien) 4395 CALL water_int(klon,klev,qs_ancien,zmasse,prsw_ancien) 4426 4396 ! !! RomP >>> 4427 4397 !CR: nb de traceurs eau: nqo 4428 ! IF (nqtot.GE.3) THEN 4429 IF (nqtot.GE.(nqo+1)) THEN 4430 ! DO iq = 3, nqtot 4398 IF (nqtot.GT.nqo) THEN 4431 4399 DO iq = nqo+1, nqtot 4432 DO k = 1, klev 4433 DO i = 1, klon 4434 ! tr_ancien(i,k,iq-2) = tr_seri(i,k,iq-2) 4435 tr_ancien(i,k,iq-nqo) = tr_seri(i,k,iq-nqo) 4436 ENDDO 4437 ENDDO 4400 tr_ancien(:,:,iq-nqo) = tr_seri(:,:,iq-nqo) 4438 4401 ENDDO 4439 4402 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.