Changeset 169 for trunk/MESOSCALE
- Timestamp:
- Jun 20, 2011, 6:35:32 PM (13 years ago)
- Location:
- trunk/MESOSCALE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/mars_lmd_new_storm/libf/phymars/meso_physiq.F
r160 r169 50 50 c 5. Convective adjustment 51 51 c 6. Condensation and sublimation of carbon dioxide. 52 53 52 c 7. TRACERS : 54 53 c 7a. water and water ice … … 58 57 c 8. Contribution to tendencies due to thermosphere 59 58 c 9. Surface and sub-surface temperature calculations 60 c 10. dust bomb propagative perturbation 61 c 11. Write outputs : 59 c 10. Write outputs : 62 60 c - "startfi", "histfi" (if it's time) 63 61 c - Saving statistics (if "callstats = .true.") 64 62 c - Dumping eof (if "calleofdump = .true.") 65 63 c - Output any needed variables in "diagfi" 66 c 1 2. Diagnostic: mass conservation of tracers64 c 11. Diagnostic: mass conservation of tracers 67 65 c 68 66 c author: … … 202 200 LOGICAL flag_LES !! pour LES avec isfflx!=0 203 201 REAL qsurfice(ngridmx) !! pour diagnostics 204 REAL qsurfice_dust(ngridmx) !! pour diagnostics de poussi ère202 REAL qsurfice_dust(ngridmx) !! pour diagnostics de poussiere 205 203 real alpha,lay1 ! coefficients for building layers 206 204 integer iloop … … 252 250 c Albedo of deposited surface ice 253 251 !!REAL, PARAMETER :: alb_surfice = 0.4 ! 0.45 254 REAL, PARAMETER :: alb_surfice = 0.45 !!TESTS_JB 252 REAL, PARAMETER :: alb_surfice = 0.45 !!TESTS_JB 255 253 256 254 SAVE day_ini, icount … … 349 347 REAL ccn(ngridmx,nlayermx) ! Cloud condensation nuclei 350 348 ! (particules kg-1) 351 SAVE ccn !! in case iradia != 1 349 SAVE ccn !! in case iradia != 1 352 350 real rdust(ngridmx,nlayermx) ! dust geometric mean radius (m) 353 351 real qtot1,qtot2 ! total aerosol mass … … 372 370 REAL time_phys 373 371 372 c Variables from thermal 373 374 REAL lmax_th_out(ngrid) 375 REAL pdu_th(ngrid,nlayer),pdv_th(ngrid,nlayer) 376 REAL pdt_th(ngrid,nlayer),pdq_th(ngrid,nlayer,nq) 377 INTEGER lmax_th(ngrid) 378 REAL dtke_th(ngrid,nlayer+1) 379 REAL dummycol(ngrid) 374 380 c======================================================================= 375 381 #ifdef MESOSCALE … … 459 465 c ****WRF 460 466 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 461 462 467 463 468 … … 593 598 ENDIF ! (end of "if firstcall") 594 599 595 596 600 c --------------------------------------------------- 597 601 c 1.2 Initializations done at every physical timestep: … … 678 682 679 683 680 IF (callrad) THEN 684 IF (callrad) THEN 681 685 zdqnorm(:,:,:) = 0. 682 686 IF( MOD(icount-1,iradia).EQ.0) THEN … … 1009 1013 DO l=1,nlayer 1010 1014 DO ig=1,ngrid 1011 pdq(ig,l,iq)=pdq(ig,l,iq)+ zdqdif(ig,l,iq) 1012 ENDDO1015 pdq(ig,l,iq)=pdq(ig,l,iq)+ zdqdif(ig,l,iq) 1016 ENDDO 1013 1017 ENDDO 1014 1018 ENDDO 1015 1016 1019 DO iq=1, nq 1017 1020 DO ig=1,ngrid … … 1019 1022 ENDDO 1020 1023 ENDDO 1021 !truc ajout é pour vérifier la conservation.1024 !truc ajoute pour verifier la conservation. 1022 1025 DO ig=1,ngrid 1023 1026 zdqsdif_diag(ig)=zdqsdif(ig,igcm_dust_mass)*3.6e9 … … 1028 1031 DO ig=1,ngrid 1029 1032 zdtsurf(ig)=zdtsurf(ig)+ 1030 &(fluxrad(ig)+fluxgrd(ig))/capcal(ig)1033 s (fluxrad(ig)+fluxgrd(ig))/capcal(ig) 1031 1034 ENDDO 1032 1035 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 1039 1042 ENDIF ! of IF (calldifv) 1040 1043 1044 c----------------------------------------------------------------------- 1045 c TEST. Thermals : 1046 c HIGHLY EXPERIMENTAL, BEWARE !! 1047 c ----------------------------- 1048 1049 if(calltherm) then 1050 1051 call calltherm_interface(ngrid,nlayer,firstcall, 1052 $ long,lati,zzlev,zzlay, 1053 $ ptimestep,pu,pv,pt,pq,pdu,pdv,pdt,pdq,q2, 1054 $ pplay,pplev,pphi,nq,zpopsk, 1055 $ pdu_th,pdv_th,pdt_th,pdq_th,lmax_th,dtke_th) 1056 1057 DO l=1,nlayer 1058 DO ig=1,ngrid 1059 pdu(ig,l)=pdu(ig,l)+pdu_th(ig,l) 1060 pdv(ig,l)=pdv(ig,l)+pdv_th(ig,l) 1061 pdt(ig,l)=pdt(ig,l)+pdt_th(ig,l) 1062 q2(ig,l)=q2(ig,l)+dtke_th(ig,l)*ptimestep 1063 ENDDO 1064 ENDDO 1065 1066 DO ig=1,ngrid 1067 q2(ig,nlayer+1)=q2(ig,nlayer+1)+dtke_th(ig,nlayer+1)*ptimestep 1068 ENDDO 1069 1070 if (tracer) then 1071 DO iq=1,nq 1072 DO l=1,nlayer 1073 DO ig=1,ngrid 1074 pdq(ig,l,iq)=pdq(ig,l,iq)+pdq_th(ig,l,iq) 1075 ENDDO 1076 ENDDO 1077 ENDDO 1078 endif 1079 1080 else !of if calltherm 1081 lmax_th(:)=0 1082 end if 1041 1083 1042 1084 c----------------------------------------------------------------------- … … 1056 1098 1057 1099 CALL convadj(ngrid,nlayer,nq,ptimestep, 1058 $ pplay,pplev,zpopsk, 1100 $ pplay,pplev,zpopsk,lmax_th, 1059 1101 $ pu,pv,zh,pq, 1060 1102 $ pdu,pdv,zdh,pdq, 1061 1103 $ zduadj,zdvadj,zdhadj, 1062 1104 $ zdqadj) 1105 1063 1106 1064 1107 DO l=1,nlayer … … 1104 1147 DO ig=1,ngrid 1105 1148 zdtsurf(ig) = zdtsurf(ig) + zdtsurfc(ig) 1106 !!!**WRF: newphys: ici la pression n'est plus mise a jour ds le GCM1107 !!!**WRF: mais il faut retablir ca dans le cas du mesoscale ?1108 !!!**WRF: ...non probablement OK1109 ! ps(ig)=pplev(ig,1) + pdpsrf(ig)*ptimestep1110 1149 ENDDO 1111 1150 … … 1135 1174 c ---------------------------------------- 1136 1175 IF (water) THEN 1137 1138 c **WRF: new arguments here rnuclei,rice,nuice1139 c plus no more iqmin +igcm_h2o_vap replaces iq, what are the consequences?1140 c checks needed when tracers simulations1141 1176 1142 1177 call watercloud(ngrid,nlayer,ptimestep, … … 1260 1295 zdqssed(1:ngrid,1:nq)=0 1261 1296 1262 c1263 c **WRF: new arguments rnuclei, rice, need checks1264 c1265 1297 call callsedim(ngrid,nlayer, ptimestep, 1266 1298 & pplev,zzlev, pt, rdust, rice, 1267 1299 & pq, pdq, zdqsed, zdqssed,nq) 1300 1268 1301 DO iq=1, nq 1269 1302 DO l=1,nlayer … … 1283 1316 END IF ! of IF (sedimentation) 1284 1317 1285 1286 1318 c 7d. Updates 1287 1319 c --------- … … 1340 1372 ENDDO 1341 1373 1342 ccc1343 ccc **WRF very specific to GCM1344 ccc1345 1374 c Prescribe a cold trap at south pole (except at high obliquity !!) 1346 1375 c Temperature at the surface is set there to be the temperature … … 1372 1401 c ALWAYS PLACE these lines after newcondens !!! 1373 1402 c ------------------------------------------------------------- 1374 c1375 1403 c **WRF : OK avec le mesoscale, pas d'indices bizarres au pole 1376 c1377 1404 do ig=1,ngrid 1378 1405 if ((co2ice(ig).eq.0).and. … … 1392 1419 ENDIF 1393 1420 c----------------------------------------------------------- 1394 c 10. Ajout tache de poussi ère ou 'dust bomb propagative perturbation'1421 c 10. Ajout tache de poussiere ou 'dust bomb propagative perturbation' 1395 1422 c------------------------------------------------------------ 1396 1423 DO l=1,nlayer … … 1421 1448 1422 1449 c----------------------------------------------------------------------- 1423 c 1 1. Write output files1450 c 10. Write output files 1424 1451 c ---------------------- 1425 1452 … … 1563 1590 if (water) then 1564 1591 1565 !!1566 !!***WRF: ok, des nouveaux trucs cools de la nouvelle physique1567 !!1568 1592 call zerophys(ngrid,mtot) 1569 1593 call zerophys(ngrid,icetot) … … 1606 1630 c which can later be used to make the statistic files of the run: 1607 1631 c "stats") only possible in 3D runs ! 1608 1609 1632 1610 1633 IF (callstats) THEN … … 1723 1746 ! 1724 1747 !enddo 1725 TAU_lay(:)=tau(:,1)!!c'est le tau qui évolue1726 1748 TAU_lay(:)=tau(:,1)!!c'est le tau qui evolue 1749 wtsurf(1:ngrid) = tsurf(1:ngrid) !! surface temperature 1727 1750 wco2ice(1:ngrid) = co2ice(1:ngrid) !! co2 ice 1728 1751 mtot(1:ngrid) = mtot(1:ngrid) * 1.e6 / rho_ice 1729 c**********pour avoir qte poussi ère en surface****************1752 c**********pour avoir qte poussiere en surface**************** 1730 1753 IF (igcm_dust_mass .ne. 0) THEN 1731 1754 qsurfice_dust(1:ngrid) = qsurf(1:ngrid,igcm_dust_mass) -
trunk/MESOSCALE/NOTES.txt
r156 r169 20 20 21 21 22 il faudrait regler le prob du Registry dans le LES22 il faudrait regler le prob du Registry dans le LES 23 23 il y a un souci avec les variables liees a l'eau et d'autres 24 24
Note: See TracChangeset
for help on using the changeset viewer.