Changeset 1543 for trunk/LMDZ.VENUS/libf/phyvenus/physiq.F
- Timestamp:
- Apr 22, 2016, 9:02:11 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/libf/phyvenus/physiq.F
r1530 r1543 58 58 USE infotrac 59 59 use dimphy 60 USE comgeomphy60 USE geometry_mod, only: longitude, latitude, cell_area, dx, dy 61 61 USE mod_phys_lmdz_para, only : is_parallel,jj_nb 62 62 USE phys_state_var_mod ! Variables sauvegardees de la physique … … 665 665 DO k = 1, klev 666 666 DO i = 1, klon 667 ilat=( rlatd(i)/5.625) + 17.667 ilat=(latitude(i)/5.625) + 17. 668 668 delta_temp(i,k)=mat_dtemp(INT(ilat),k) 669 669 ENDDO … … 719 719 IF (if_ebil.ge.1) THEN 720 720 ztit='after dynamic' 721 CALL diagetpq( airephy,ztit,ip_ebil,1,1,dtime721 CALL diagetpq(cell_area,ztit,ip_ebil,1,1,dtime 722 722 e , t_seri,zero_v2,zero_v2,zero_v2,u_seri,v_seri,paprs,pplay 723 723 s , d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec) … … 726 726 C est egale a la variation de la physique au pas de temps precedent. 727 727 C Donc la somme de ces 2 variations devrait etre nulle. 728 call diagphy( airephy,ztit,ip_ebil728 call diagphy(cell_area,ztit,ip_ebil 729 729 e , zero_v, zero_v, zero_v, zero_v, zero_v 730 730 e , zero_v, zero_v, zero_v, ztsol … … 767 767 DO k = 1, klev 768 768 DO i = 1, klon 769 omega(i,k) = RG*flxmw(i,k) / airephy(i)769 omega(i,k) = RG*flxmw(i,k) / cell_area(i) 770 770 END DO 771 771 END DO … … 832 832 IF (cycle_diurne) THEN 833 833 zdtime=dtime*REAL(radpas) ! pas de temps du rayonnement (s) 834 CALL zenang(zlongi,gmtime,zdtime, rlatd,rlond,rmu0,fract)834 CALL zenang(zlongi,gmtime,zdtime,latitude,longitude,rmu0,fract) 835 835 ELSE 836 call mucorr(klon,zlongi, rlatd,rmu0,fract)836 call mucorr(klon,zlongi,latitude,rmu0,fract) 837 837 ENDIF 838 838 … … 859 859 I debut,lafin,nqmax, 860 860 I nlon,nlev,dtime,paprs, 861 I rlatd,rlond,861 I latitude,longitude, 862 862 O tr_seri) 863 863 … … 869 869 DO k = 1, klev 870 870 DO i = 1, klon 871 ilat=( rlatd(i)/5.625) + 17.872 ! PRINT*,INT(ilat), rlatd(i),mat_dtemp(INT(ilat),k)871 ilat=(latitude(i)/5.625) + 17. 872 ! PRINT*,INT(ilat),latitude(i),mat_dtemp(INT(ilat),k) 873 873 delta_temp(i,k)=mat_dtemp(INT(ilat),k) 874 874 ENDDO … … 888 888 I nqmax, 889 889 I klon, 890 I rlatd,891 I rlond,890 I latitude, 891 I longitude, 892 892 I nlev, 893 893 I dtime, … … 902 902 I nqmax, 903 903 I klon, 904 I rlatd,905 I rlond,904 I latitude, 905 I longitude, 906 906 I nlev, 907 907 I dtime, … … 926 926 CALL new_cloud_sedim( 927 927 I klon, 928 I 929 I 928 I nlev, 929 I dtime, 930 930 I pplay, 931 I 932 I 931 I paprs, 932 I t_seri+delta_temp, 933 933 I tr_seri, 934 O 935 O 936 I 934 O d_tr_sed, 935 O d_tr_ssed, 936 I nqmax, 937 937 O Fsedim) 938 938 else … … 940 940 CALL new_cloud_sedim( 941 941 I klon, 942 I 943 I 942 I nlev, 943 I dtime, 944 944 I pplay, 945 I 946 I 945 I paprs, 946 I t_seri, 947 947 I tr_seri, 948 O 949 O 950 I 948 O d_tr_sed, 949 O d_tr_ssed, 950 I nqmax, 951 951 O Fsedim) 952 952 … … 1032 1032 $ paprs,pplay,ppk,radsol,falbe, 1033 1033 e solsw, sollw, sollwdown, fder, 1034 e rlond, rlatd, cuphy, cvphy,1034 e longitude, latitude, dx, dy, 1035 1035 e debut, lafin, 1036 1036 s d_t_vdf,d_u_vdf,d_v_vdf,d_ts, … … 1082 1082 IF (if_ebil.ge.2) THEN 1083 1083 ztit='after clmain' 1084 CALL diagetpq( airephy,ztit,ip_ebil,2,1,dtime1084 CALL diagetpq(cell_area,ztit,ip_ebil,2,1,dtime 1085 1085 e , t_seri,zero_v2,zero_v2,zero_v2,u_seri,v_seri,paprs,pplay 1086 1086 s , d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec) 1087 call diagphy( airephy,ztit,ip_ebil1087 call diagphy(cell_area,ztit,ip_ebil 1088 1088 e , zero_v, zero_v, zero_v, zero_v, sens 1089 1089 e , zero_v, zero_v, zero_v, ztsol … … 1175 1175 IF (if_ebil.ge.2) THEN 1176 1176 ztit='after dry_adjust' 1177 CALL diagetpq( airephy,ztit,ip_ebil,2,2,dtime1177 CALL diagetpq(cell_area,ztit,ip_ebil,2,2,dtime 1178 1178 e , t_seri,zero_v2,zero_v2,zero_v2,u_seri,v_seri,paprs,pplay 1179 1179 s , d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec) 1180 call diagphy( airephy,ztit,ip_ebil1180 call diagphy(cell_area,ztit,ip_ebil 1181 1181 e , zero_v, zero_v, zero_v, zero_v, sens 1182 1182 e , zero_v, zero_v, zero_v, ztsol … … 1215 1215 IF(callnlte.or.callthermos) THEN 1216 1216 call compo_hedin83_mod(pplay,rmu0, 1217 & 1217 & co2vmr_gcm,covmr_gcm,ovmr_gcm,n2vmr_gcm,nvmr_gcm) 1218 1218 1219 1219 IF(ok_chem) then … … 1234 1234 ENDIF 1235 1235 1236 ENDIF 1236 ENDIF 1237 1237 1238 1238 c … … 1261 1261 d_t_nlte(:,:)=0. 1262 1262 1263 ENDIF 1263 ENDIF 1264 1264 1265 1265 c Find number of layers for LTE radiation calculations … … 1293 1293 & cool, d_t_nirco2,d_t_nlte, dtsw, dtlw) 1294 1294 ELSE 1295 1296 1297 1295 dtsw(:,:)=heat(:,:) 1296 dtlw(:,:)=-1*cool(:,:) 1297 ENDIF 1298 1298 1299 1299 DO k=1,klev … … 1319 1319 $ rmu0,pdtphys,gmtime,rjourvrai, 1320 1320 $ tr_seri, d_tr, d_t_euv ) 1321 1321 1322 1322 DO k=1,klev 1323 1323 DO ig=1,klon … … 1405 1405 IF (if_ebil.ge.2) THEN 1406 1406 ztit='after rad' 1407 CALL diagetpq( airephy,ztit,ip_ebil,2,2,dtime1407 CALL diagetpq(cell_area,ztit,ip_ebil,2,2,dtime 1408 1408 e , t_seri,zero_v2,zero_v2,zero_v2,u_seri,v_seri,paprs,pplay 1409 1409 s , d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec) 1410 call diagphy( airephy,ztit,ip_ebil1410 call diagphy(cell_area,ztit,ip_ebil 1411 1411 e , topsw, toplw, solsw, sollw, zero_v 1412 1412 e , zero_v, zero_v, zero_v, ztsol … … 1424 1424 do i=1,klon 1425 1425 do k=2,klev 1426 1427 1428 1426 ztlev(i,k) = (t_seri(i,k)+t_seri(i,k-1))/2. 1427 zpklev(i,k) = sqrt(ppk(i,k)*ppk(i,k-1)) 1428 enddo 1429 1429 enddo 1430 1430 call t2tpot(klon*klev,ztlev, ztetalev,zpklev) … … 1432 1432 do i=1,klon 1433 1433 do k=2,klev 1434 1435 1434 zdtetalev(i,k) = ztetalay(i,k)-ztetalay(i,k-1) 1435 zdzlev(i,k) = (zphi(i,k)-zphi(i,k-1))/RG 1436 1436 zn2(i,k) = RG*zdtetalev(i,k)/(ztetalev(i,k)*zdzlev(i,k)) 1437 1437 zn2(i,k) = max(zn2(i,k),1.e-12) ! securite 1438 1438 enddo 1439 1439 zn2(i,1) = 1.e-12 ! securite 1440 1440 enddo … … 1479 1479 d_u_oro = 0. 1480 1480 d_v_oro = 0. 1481 1482 1481 zustrdr = 0. 1482 zvstrdr = 0. 1483 1483 c 1484 1484 ENDIF ! fin de test sur ok_orodr … … 1508 1508 c A ADAPTER POUR VENUS!!! 1509 1509 c CALL lift_noro(klon,klev,dtime,paprs,pplay, 1510 c e rlatd,zmea,zstd,zpic,zgam,zthe,zpic,zval,1510 c e latitude,zmea,zstd,zpic,zgam,zthe,zpic,zval, 1511 1511 c e igwd,idx,itest, 1512 1512 c e t_seri, u_seri, v_seri, … … 1567 1567 c==================================================================== 1568 1568 if (ballons.eq.1) then 1569 CALL ballon(30,pdtphys,rjourvrai,gmtime*RDAY,rlatd,rlond,1570 c C 1571 C 1569 CALL ballon(30,pdtphys,rjourvrai,gmtime*RDAY,latitude,longitude, 1570 c C t,pplay,u,v,pphi) ! alt above surface (smoothed for GCM) 1571 C t,pplay,u,v,zphi) ! alt above planet average radius 1572 1572 endif !ballons 1573 1573 … … 1601 1601 CALL aaam_bud (27,klon,klev,rjourvrai,gmtime*RDAY, 1602 1602 C ra,rg,romega, 1603 C rlatd,rlond,pphis,1603 C latitude,longitude,pphis, 1604 1604 C zustrdr,zustrli,zustrcl, 1605 1605 C zvstrdr,zvstrli,zvstrcl, … … 1641 1641 IF (if_ebil.ge.1) THEN 1642 1642 ztit='after physic' 1643 CALL diagetpq( airephy,ztit,ip_ebil,1,1,dtime1643 CALL diagetpq(cell_area,ztit,ip_ebil,1,1,dtime 1644 1644 e , t_seri,zero_v2,zero_v2,zero_v2,u_seri,v_seri,paprs,pplay 1645 1645 s , d_h_vcol, d_qt, d_qw, d_ql, d_qs, d_ec) … … 1648 1648 C est egale a la variation de la physique au pas de temps precedent. 1649 1649 C Donc la somme de ces 2 variations devrait etre nulle. 1650 call diagphy( airephy,ztit,ip_ebil1650 call diagphy(cell_area,ztit,ip_ebil 1651 1651 e , topsw, toplw, solsw, sollw, sens 1652 1652 e , zero_v, zero_v, zero_v, ztsol … … 1687 1687 c DO k = 1, klev 1688 1688 c DO i = 1, klon 1689 c mang(i,k) = RA*cos( rlatd(i)*RPI/180.)1690 c . *(u_seri(i,k)+RA*cos( rlatd(i)*RPI/180.)*ROMEGA)1691 c . * airephy(i)*(paprs(i,k)-paprs(i,k+1))/RG1689 c mang(i,k) = RA*cos(latitude(i)*RPI/180.) 1690 c . *(u_seri(i,k)+RA*cos(latitude(i)*RPI/180.)*ROMEGA) 1691 c . *cell_area(i)*(paprs(i,k)-paprs(i,k+1))/RG 1692 1692 c mangtot=mangtot+mang(i,k) 1693 1693 c ENDDO
Note: See TracChangeset
for help on using the changeset viewer.