Changeset 2048
- Timestamp:
- Nov 29, 2018, 4:49:10 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/dyn3d_common/geopot.F
r1703 r2048 21 21 c .. ngrid,teta,pk,pks,phis sont des argum. d'entree pour le s-pg .. 22 22 c phi est un argum. de sortie pour le s-pg . 23 c 24 c This computation (with teta = cp T / pk !) is identical to 25 c delta phi = R/RMD T/p delta p (r=R/RMD=cpp*kappa) 23 26 c 24 27 c======================================================================= -
trunk/LMDZ.VENUS/libf/phyvenus/chemparam_mod.F90
r1691 r2048 307 307 308 308 ! =============================================== 309 ! Initialisation TRIMODALE Knollenberg 309 ! Initialisation TRIMODALE Knollenberg 310 310 ! =============================================== 311 311 … … 430 430 END DO 431 431 432 ! option: upper haze remplacee par extension upper cloud 433 ! => 35 remplace par cloudmax et upper haze commentee 434 ! =============================================== 432 435 433 436 ! Upper Cloud: mode 1 434 DO i_lev=29,35 437 DO i_lev=29,35 !cloudmax 435 438 R_MEDIAN(:,i_lev,1)=0.2e-6 436 439 PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev,1) … … 442 445 443 446 ! Upper Cloud: mode 2 444 DO i_lev=29,35 447 DO i_lev=29,35 !cloudmax 445 448 R_MEDIAN(:,i_lev,2)=1.0e-6 446 449 PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev,2) … … 452 455 453 456 ! Upper Cloud: mode 3 454 DO i_lev=29,35 457 DO i_lev=29,35 !cloudmax 455 458 R_MEDIAN(:,i_lev,3)=3.65e-6 456 459 PRINT*,'level',i_lev,'R R_MEDIAN',R_MEDIAN(1,i_lev,3) … … 677 680 ! PRINT*,'level',i_lev,'Coeff Mass: k_mass',K_MASS(1,i_lev,3) 678 681 ! END DO 682 679 683 !============================================================= 680 684 PRINT*,'===============================' -
trunk/LMDZ.VENUS/libf/phyvenus/clmain.F
r1723 r2048 921 921 use dimphy 922 922 use cpdet_phy_mod, only: cpdet,t2tpot 923 #ifdef CPP_XIOS 924 use xios_output_mod, only: send_xios_field 925 #endif 926 923 927 IMPLICIT none 924 928 c====================================================================== … … 989 993 REAL zt(klon,klev),ztvu(klon,klev),ztvd(klon,klev) 990 994 real ztetav(klon,klev),ztetavu(klon,klev),ztetavd(klon,klev) 991 REAL zri(klon ),z1(klon)995 REAL zri(klon,klev),zri1(klon),z1(klon) 992 996 REAL pcfm1(klon), pcfh1(klon) 993 997 c … … 1135 1139 c 1136 1140 IF (tvirtu) THEN 1137 zri(i ) =( zmgeom(i,k)*(ztetavd(i,k)-ztetavu(i,k))1141 zri(i,k) =( zmgeom(i,k)*(ztetavd(i,k)-ztetavu(i,k)) 1138 1142 . + zmgeom(i,k)*zmgeom(i,k)/RG*gamh(k)) ! contregradient 1139 1143 . /(zdu2*ztetav(i,k)) … … 1155 1159 zalh2=(0.5*ckap/rg*z2geomf 1156 1160 . /(1.+0.5*ckap/RG/(clam*SQRT(1.5*cd))*z2geomf))**2 1157 IF (zri(i ).LT.0.0) THEN ! situation instable1161 IF (zri(i,k).LT.0.0) THEN ! situation instable 1158 1162 zscf = ((zgeop(i,k)/zgeop(i,k-1))**(1./3.)-1.)**3 1159 1163 . / (zmgeom(i,k)/RG)**3 / (zgeop(i,k-1)/RG) 1160 zscf = SQRT(-zri(i )*zscf)1164 zscf = SQRT(-zri(i,k)*zscf) 1161 1165 zscfm = 1.0 / (1.0+3.0*cb*cc*zalm2*zscf) 1162 1166 zscfh = 1.0 / (1.0+3.0*cb*cc*zalh2*zscf) 1163 pcfm(i,k)=zcdn*zalm2*(1.-2.0*cb*zri(i )*zscfm)1164 pcfh(i,k)=zcdn*zalh2*(1.-3.0*cb*zri(i )*zscfh)1167 pcfm(i,k)=zcdn*zalm2*(1.-2.0*cb*zri(i,k)*zscfm) 1168 pcfh(i,k)=zcdn*zalh2*(1.-3.0*cb*zri(i,k)*zscfh) 1165 1169 ELSE ! situation stable 1166 zscf=SQRT(1.+cd*zri(i ))1167 pcfm(i,k)=zcdn*zalm2/(1.+2.0*cb*zri(i )/zscf)1168 pcfh(i,k)=zcdn*zalh2/(1.+3.0*cb*zri(i )*zscf)1170 zscf=SQRT(1.+cd*zri(i,k)) 1171 pcfm(i,k)=zcdn*zalm2/(1.+2.0*cb*zri(i,k)/zscf) 1172 pcfh(i,k)=zcdn*zalh2/(1.+3.0*cb*zri(i,k)*zscf) 1169 1173 ENDIF 1170 1174 ELSE 1171 1175 zl2=(lmixmin*MAX(0.0,(paprs(i,k)-paprs(i,itop(i)+1)) 1172 1176 . /(paprs(i,2)-paprs(i,itop(i)+1)) ))**2 1173 pcfm(i,k)=sqrt(max(zcdn*zcdn*(ric-zri(i ))/ric, ksta))1177 pcfm(i,k)=sqrt(max(zcdn*zcdn*(ric-zri(i,k))/ric, ksta)) 1174 1178 pcfm(i,k)= zl2* pcfm(i,k) 1175 1179 pcfh(i,k) = pcfm(i,k) /prandtl ! h et m different … … 1180 1184 DO i = 1, knon 1181 1185 zdu2=MAX(cepdu2,u(i,1)**2+v(i,1)**2) 1182 zri(i ) = zgeop(i,1)*(ztetavd(i,1)-ztetavu(i,1))1186 zri(i,1) = zgeop(i,1)*(ztetavd(i,1)-ztetavu(i,1)) 1183 1187 . /(zdu2*ztetav(i,1)) 1184 1188 ENDDO … … 1189 1193 DO i = 1, knon 1190 1194 z1(i) = zgeop(i,1) 1195 zri1(i) = zri(i,1) 1191 1196 ENDDO 1192 1197 c 1193 1198 CALL clcdrag(klon, knon, zxli, 1194 $ z1, zri ,1199 $ z1, zri1, 1195 1200 $ pcfm1, pcfh1) 1196 1201 C … … 1218 1223 c pcfm(:,1)= pcfm(:,1)*20. 1219 1224 c pcfh(:,1)= pcfh(:,1)*20. 1225 1226 c#ifdef CPP_XIOS 1227 c CALL send_xios_field("Ri",zri) 1228 c#endif 1220 1229 1221 1230 RETURN -
trunk/LMDZ.VENUS/libf/phyvenus/flott_gwd_ran.F90
r1675 r2048 135 135 DELTAT=24.*3600. ! Time scale of the waves (first introduced in 9b) 136 136 137 !!!! TEST GG .Values corresponding to min/max horizontal wavel 50-500 km137 !!!! TEST GG Values corresponding to min/max horizontal wavel 50-500 km 138 138 !(similar to observations) 139 139 KMIN = 1.E-5 ! Min horizontal wavenumber 140 ! KMIN = 6.3E-6 ! Min horizontal wavenumber140 ! KMIN = 6.3E-6 ! Min horizontal wavenumber 141 141 KMAX = 1.E-4 ! Max horizontal wavenumber 142 142 !Online output: one value only … … 146 146 endif 147 147 CMIN = 1. ! Min phase velocity 148 CMAX = 61. ! Max phase speed velocity148 CMAX = 111. ! Max phase speed velocity 149 149 ! XLAUNCH=0.6 ! Parameter that control launching altitude 150 150 XLAUNCH=5e-3 ! Value for top of cloud convective region -
trunk/LMDZ.VENUS/libf/phyvenus/nlte_aux.F
r1310 r2048 202 202 real*8 factor 203 203 real*8 temperatura ! para evitar valores ligeramnt out of limits 204 character(len=100) text 204 205 205 206 c *********** … … 227 228 c @ thist(1),thist(nhist) 228 229 c write (*,*) ' HUNT/ location in grid:', xtemp(k) 229 stop ' INTERSHP/ Interpolation error. T out of Histogram.' 230 text='INTERSHP/ Interpolation error. T out of Histogram.' 231 CALL abort_physic("nlte_aux",text, 1) 230 232 endif 231 233 factor = 1.d0 / (thist(i+1)-thist(i)) … … 261 263 real*8 factor 262 264 real*8 temperatura 265 character(len=100) text 263 266 264 267 c *********** … … 286 289 c $ thist(1),thist(nhist) 287 290 c write(*,*)'HUNT/ location in grid:',xtemp(k) 288 stop'INTERSTR/1/ Interpolation error. T out of Histogram.' 291 text='INTERSTR/1/ Interpolation error. T out of Histogram.' 292 CALL abort_physic("nlte_aux",text, 1) 289 293 endif 290 294 factor = 1.d0 / (thist(i+1)-thist(i)) … … 315 319 c @ thist(1),thist(nhist) 316 320 c write (*,*) ' HUNT/ location in grid:', ts 317 stop ' INTERSTR/2/ Interpolat error. T out of Histogram.' 321 text='INTERSTR/2/ Interpolat error. T out of Histogram.' 322 CALL abort_physic("nlte_aux",text, 1) 318 323 endif 319 324 factor = 1.d0 / (thist(i+1)-thist(i)) … … 1009 1014 real factor 1010 1015 real zaux 1016 character(len=100) text 1011 1017 1012 1018 !!!! … … 1027 1033 write (*,*) ' HUNT/ Limits input grid:', z(1),z(n) 1028 1034 write (*,*) ' HUNT/ location in new grid:', zz(i) 1029 stop ' interhunt2/ Interpolat error. zz out of limits.' 1035 text='interhunt2/ Interpolat error. zz out of limits.' 1036 CALL abort_physic("nlte_aux",text, 1) 1030 1037 endif 1031 1038 … … 1072 1079 real factor 1073 1080 real zaux 1081 character(len=100) text 1074 1082 1075 1083 !!!! … … 1090 1098 write (*,*) ' HUNT/ Limits input grid:', z(1),z(n) 1091 1099 write (*,*) ' HUNT/ location in new grid:', zz(i) 1092 stop ' interhunt5/ Interpolat error. zz out of limits.' 1100 text='interhunt5/ Interpolat error. zz out of limits.' 1101 CALL abort_physic("nlte_aux",text, 1) 1093 1102 endif 1094 1103 … … 1140 1149 real*8 factor 1141 1150 real*8 zaux 1151 character(len=100) text 1142 1152 1143 1153 !!!! … … 1158 1168 write (*,*) ' HUNT/ Limits input grid:', z(1),z(n) 1159 1169 write (*,*) ' HUNT/ location in new grid:', zz(i) 1160 stop ' INTERHUNTDP3/ Interpolat error. zz out of limits.' 1170 text='INTERHUNTDP3/ Interpolat error. zz out of limits.' 1171 CALL abort_physic("nlte_aux",text, 1) 1161 1172 endif 1162 1173 … … 1206 1217 real*8 factor 1207 1218 real*8 zaux 1219 character(len=100) text 1208 1220 1209 1221 !!!! … … 1224 1236 write (*,*) ' HUNT/ Limits input grid:', z(1),z(n) 1225 1237 write (*,*) ' HUNT/ location in new grid:', zz(i) 1226 stop ' INTERHUNTDP4/ Interpolat error. zz out of limits.' 1238 text='INTERHUNTDP4/ Interpolat error. zz out of limits.' 1239 CALL abort_physic("nlte_aux",text, 1) 1227 1240 endif 1228 1241 … … 1274 1287 real*8 factor 1275 1288 real*8 zaux 1289 character(len=100) text 1276 1290 1277 1291 !!!! … … 1292 1306 write (*,*) ' HUNT/ Limits input grid:', z(1),z(n) 1293 1307 write (*,*) ' HUNT/ location in new grid:', zz(i) 1294 stop ' INTERHUNT/ Interpolat error. zz out of limits.' 1308 text='INTERHUNT/ Interpolat error. zz out of limits.' 1309 CALL abort_physic("nlte_aux",text, 1) 1295 1310 endif 1296 1311 … … 1336 1351 real factor 1337 1352 real zaux 1353 character(len=100) text 1338 1354 1339 1355 !!!! … … 1354 1370 write (*,*) ' HUNT/ Limits input grid:', z(1),z(n) 1355 1371 write (*,*) ' HUNT/ location in new grid:', zz(i) 1356 stop ' interhunt/ Interpolat error. z out of limits.' 1372 text='interhunt/ Interpolat error. z out of limits.' 1373 CALL abort_physic("nlte_aux",text, 1) 1357 1374 endif 1358 1375 … … 1414 1431 real factor 1415 1432 real zaux 1433 character(len=100) text 1416 1434 1417 1435 !!!! … … 1432 1450 write (*,*) ' HUNT/ Limits input grid:', z(1),z(n) 1433 1451 write (*,*) ' HUNT/ location in new grid:', zz(i) 1434 stop ' interhuntlimits/ Interpolat error. z out of limits.' 1452 text='interhuntlimits/ Interpolat error. z out of limits.' 1453 CALL abort_physic("nlte_aux",text, 1) 1435 1454 endif 1436 1455 … … 1504 1523 real factor 1505 1524 real zaux 1525 character(len=100) text 1506 1526 1507 1527 !!!! … … 1522 1542 write (*,*) ' HUNT/ Limits input grid:', z(1),z(n) 1523 1543 write (*,*) ' HUNT/ location in new grid:', zz(i) 1524 stop ' interhuntlimits/ Interpolat error. z out of limits.' 1544 text='interhuntlimits/ Interpolat error. z out of limits.' 1545 CALL abort_physic("nlte_aux",text, 1) 1525 1546 endif 1526 1547 … … 1604 1625 real factor 1605 1626 real zaux 1627 character(len=100) text 1606 1628 1607 1629 !!!! … … 1622 1644 write (*,*) ' HUNT/ Limits input grid:', z(1),z(n) 1623 1645 write (*,*) ' HUNT/ location in new grid:', zz(i) 1624 stop ' interhuntlimits/ Interpolat error. z out of limits.' 1646 text='interhuntlimits/ Interpolat error. z out of limits.' 1647 CALL abort_physic("nlte_aux",text, 1) 1625 1648 endif 1626 1649 -
trunk/LMDZ.VENUS/libf/phyvenus/nlte_tcool.F
r1591 r2048 1410 1410 real*8 varerr 1411 1411 1412 character(len=100) text 1413 1412 1414 c*************** 1413 1415 … … 1647 1649 write (*,*) ' Negative vibr.temp xvt41 < 0 ' 1648 1650 1649 1650 1651 endif 1651 1652 1652 1653 stop ' Stopped in NLTE scheme due to severe error.'1653 text='Stopped in NLTE scheme due to severe error' 1654 CALL abort_physic("nlte_tcool",text, 1) 1654 1655 end -
trunk/LMDZ.VENUS/libf/phyvenus/phytrac_chimie.F
r1726 r2048 140 140 trac_sum(:,:)=0.0 141 141 c SEULEMENT LES GAZ 142 DO iq= 2,nqmax-nmicro143 trac_sum(:,:)= trac_sum(:,:) + trac(:,:,iq)142 DO iq=1,nqmax-nmicro 143 if (iq.ne.i_co2) trac_sum(:,:)= trac_sum(:,:) + trac(:,:,iq) 144 144 END DO 145 145 146 146 trac(:,:,i_co2)= 1-trac_sum(:,:) 147 147 148 else 148 149 write(*,*) "Réinitialisation des traceurs avec chimie " … … 362 363 363 364 IF (ok_cloud .AND. cl_scheme.eq.1) THEN 364 c Passage de R m a Rvpour les liq365 c Passage de Rv a Rm pour les liq 365 366 trac(:,:,i_h2so4liq)=trac(:,:,i_h2so4liq)*M_tr(i_h2so4liq) 366 367 & /mmean(:,:) -
trunk/LMDZ.VENUS/libf/phyvenus/sw_venus_rh.F
r1726 r2048 279 279 c-----TEST------- 280 280 c tayloring the solar flux... 281 c if ((PPB(j).gt.0.04).and.(PPB(j).le.0.1)) then 282 c PHEAT(j) = PHEAT(j)*1.5 283 c endif 284 c if ((PPB(j).gt.0.1).and.(PPB(j).le.0.5)) then 285 c PHEAT(j) = PHEAT(j)*2. 286 c endif 281 287 if ((PPB(j).gt.1.4).and.(PPB(j).le.10.)) then 288 c if ((PPB(j).gt.1.4).and.(PPB(j).le.100.)) then 282 289 PHEAT(j) = PHEAT(j)*3 283 290 endif 291 c if ((PPB(j).gt.10.).and.(PPB(j).le.120.)) then 292 c PHEAT(j) = PHEAT(j)*2 293 c endif 284 294 c---------------- 285 295 enddo
Note: See TracChangeset
for help on using the changeset viewer.