Changeset 549 for trunk/MESOSCALE/LMD_MM_MARS/SRC
- Timestamp:
- Mar 1, 2012, 12:57:47 AM (13 years ago)
- Location:
- trunk/MESOSCALE/LMD_MM_MARS/SRC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MESOSCALE/LMD_MM_MARS/SRC/PREP_MARS/readmeteo.F90
r324 r549 88 88 real, dimension(:,:,:), allocatable :: swatericefile!, swaterfile 89 89 real, dimension(:,:,:,:), allocatable :: dustfile,dustnfile 90 real, dimension(:,:,:,:), allocatable :: ccnfile,ccnnfile 90 91 91 92 !! Reading the parameter file … … 229 230 allocate(dustfile(lonlen,latlen,altlen,timelen)) 230 231 allocate(dustnfile(lonlen,latlen,altlen,timelen)) 232 allocate(ccnfile(lonlen,latlen,altlen,timelen)) 233 allocate(ccnnfile(lonlen,latlen,altlen,timelen)) 231 234 allocate(psfile(lonlen,latlen,timelen)) 232 235 allocate(tsfile(lonlen,latlen,timelen)) … … 282 285 dustfile(:,:,:,:)=0 283 286 dustnfile(:,:,:,:)=0 287 ccnfile(:,:,:,:)=0 288 ccnnfile(:,:,:,:)=0 284 289 psfile(:,:,:)=0 285 290 tsfile(:,:,:)=0 … … 651 656 else 652 657 ierr=NF_GET_VAR_REAL(nid,nvarid,dustnfile) 658 endif 659 660 print *,'CCN mass' 661 ierr=NF_INQ_VARID(nid,"ccn",nvarid) 662 if (ierr.ne.NF_NOERR) then 663 write(*,*) "...No ccn - CCN mass set to 0" 664 dustfile(:,:,:,:)=0. 665 else 666 ierr=NF_GET_VAR_REAL(nid,nvarid,ccnfile) 667 endif 668 669 print *,'CCN number' 670 ierr=NF_INQ_VARID(nid,"ccnN",nvarid) 671 if (ierr.ne.NF_NOERR) then 672 write(*,*) "...No ccnN - CCN number set to 0" 673 dustnfile(:,:,:,:)=0. 674 else 675 ierr=NF_GET_VAR_REAL(nid,nvarid,ccnnfile) 653 676 endif 654 677 !!------------------------ … … 1241 1264 !------------------------! 1242 1265 ! >>> Write a variable ! 1266 ! ... Copy&Paste part ! 1267 !------------------------! 1268 FIELD='CCNQ' 1269 UNITS='kg/kg' 1270 DESC='CCN mixing ratio' 1271 XLVL=200100. 1272 SLAB=ccnfile(:,:,1,time_out(l)) 1273 ! And now put everything in the destination file 1274 ! ... Header 1275 write(1) IFV 1276 write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ 1277 write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON 1278 ! ... Data 1279 write(1) SLAB 1280 !print *,'The field '//DESC//' was written to '//output 1281 1282 !------------------------! 1283 ! >>> Write a variable ! 1284 ! ... Copy&Paste part ! 1285 !------------------------! 1286 FIELD='CCNN' 1287 UNITS='part/kg' 1288 DESC='CCN number density' 1289 XLVL=200100. 1290 SLAB=ccnnfile(:,:,1,time_out(l)) 1291 ! And now put everything in the destination file 1292 ! ... Header 1293 write(1) IFV 1294 write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ 1295 write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON 1296 ! ... Data 1297 write(1) SLAB 1298 !print *,'The field '//DESC//' was written to '//output 1299 1300 1301 !------------------------! 1302 ! >>> Write a variable ! 1243 1303 ! PHOTOCHEMISTRY ! 1244 1304 !------------------------! … … 1513 1573 XLVL=levels(k) 1514 1574 SLAB=dustnfile(:,:,k,time_out(l)) 1575 ! And now put everything in the destination file 1576 ! ... Header 1577 write(1) IFV 1578 write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ 1579 write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON 1580 ! ... Data 1581 write(1) SLAB 1582 END DO 1583 !print *,'The field '//DESC//' was written to '//output 1584 1585 !------------------------! 1586 ! >>> Write a variable ! 1587 ! ... Copy&Paste part ! 1588 !------------------------! 1589 FIELD='CCNQ' 1590 UNITS='kg/kg' 1591 DESC='CCN mixing ratio' 1592 DO k = 1,altlen 1593 XLVL=levels(k) 1594 SLAB=ccnfile(:,:,k,time_out(l)) 1595 ! And now put everything in the destination file 1596 ! ... Header 1597 write(1) IFV 1598 write(1) HDATE,XFCST,SOURCE,FIELD,UNITS,DESC,XLVL,NX,NY,IPROJ 1599 write(1) STARTLOC,STARTLAT,STARTLON,DELTALAT,DELTALON 1600 ! ... Data 1601 write(1) SLAB 1602 END DO 1603 !print *,'The field '//DESC//' was written to '//output 1604 1605 !------------------------! 1606 ! >>> Write a variable ! 1607 ! ... Copy&Paste part ! 1608 !------------------------! 1609 FIELD='CCNN' 1610 UNITS='part/kg' 1611 DESC='CCN number density' 1612 DO k = 1,altlen 1613 XLVL=levels(k) 1614 SLAB=ccnnfile(:,:,k,time_out(l)) 1515 1615 ! And now put everything in the destination file 1516 1616 ! ... Header … … 1576 1676 deallocate(dustfile) 1577 1677 deallocate(dustnfile) 1678 deallocate(ccnfile) 1679 deallocate(ccnnfile) 1578 1680 deallocate(psfile) 1579 1681 deallocate(tsfile) -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WPS/wps_mars/metgrid/METGRID.TBL.ARW_MarsBase_newphys
r72 r549 580 580 missing_value=-9.99e+33 581 581 ======================================== 582 name=CCNQ 583 # mandatory=yes # MUST HAVE THIS FIELD 584 # interp_option=sixteen_pt+four_pt+average_4pt 585 # interp_option=sixteen_pt+four_pt 586 interp_option=four_pt 587 # fill_lev=200100:const(0.) 588 fill_missing=-1.0e+30 589 missing_value=-9.99e+33 590 ======================================== 591 name=CCNN 592 # mandatory=yes # MUST HAVE THIS FIELD 593 # interp_option=sixteen_pt+four_pt+average_4pt 594 # interp_option=sixteen_pt+four_pt 595 interp_option=four_pt 596 # fill_lev=200100:const(0.) 597 fill_missing=-1.0e+30 598 missing_value=-9.99e+33 599 ======================================== -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/Registry/Registry.EM
r523 r549 221 221 state real dsoil_gc igj dyn_em 1 Z i1 "DSOIL" "soil depths" "m" 222 222 state real dustq_gc igj dyn_em 1 Z i1 "DUSTQ" "dust mixing ratio" "kg/kg" 223 state real dustn_gc igj dyn_em 1 Z i1 "DUSTN" "dust number density" "kg/kg" 223 state real dustn_gc igj dyn_em 1 Z i1 "DUSTN" "dust number density" "part/kg" 224 state real ccnq_gc igj dyn_em 1 Z i1 "CCNQ" "ccn mixing ratio" "kg/kg" 225 state real ccnn_gc igj dyn_em 1 Z i1 "CCNN" "ccn number density" "part/kg" 224 226 #### 225 227 #### variables dans wrf -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/dyn_em/module_initialize_real.F
r488 r549 1322 1322 ims , ime , jms , jme , kms , kme , & 1323 1323 its , ite , jts , jte , kts , kte ) 1324 print *, '**** INTERPOLATE DUST Q**** RANK 5 in SCALAR'1324 print *, '**** INTERPOLATE DUSTN **** RANK 5 in SCALAR' 1325 1325 CALL vert_interp_old ( grid%em_dustn_gc , grid%em_pd_gc , scalar(:,:,:,5) , grid%em_pb , & 1326 1326 num_metgrid_levels , 'Q' , & … … 1332 1332 endif 1333 1333 if ( config_flags%mars == 12 ) then 1334 print *, "**** mars=12... CCN TRACERS SET TO 0" 1335 DO k = 1, kte 1336 DO j = jts, MIN(jte,jde-1) 1337 DO i = its, MIN(ite,ide-1) 1338 scalar(i,k,j,6) = 1.E-30 1339 scalar(i,k,j,7) = 1.E-30 1340 ENDDO 1341 ENDDO 1342 ENDDO 1334 print *, '**** INTERPOLATE CCNQ **** RANK 6 in SCALAR' 1335 CALL vert_interp_old ( grid%em_ccnq_gc , grid%em_pd_gc , scalar(:,:,:,6) , grid%em_pb , & 1336 num_metgrid_levels , 'Q' , & 1337 interp_type , lagrange_order , lowest_lev_from_sfc , & 1338 zap_close_levels , force_sfc_in_vinterp , & 1339 ids , ide , jds , jde , kds , kde , & 1340 ims , ime , jms , jme , kms , kme , & 1341 its , ite , jts , jte , kts , kte ) 1342 print *, '**** INTERPOLATE CCNN **** RANK 7 in SCALAR' 1343 CALL vert_interp_old ( grid%em_ccnn_gc , grid%em_pd_gc , scalar(:,:,:,7) , grid%em_pb , & 1344 num_metgrid_levels , 'Q' , & 1345 interp_type , lagrange_order , lowest_lev_from_sfc , & 1346 zap_close_levels , force_sfc_in_vinterp , & 1347 ids , ide , jds , jde , kds , kde , & 1348 ims , ime , jms , jme , kms , kme , & 1349 its , ite , jts , jte , kts , kte ) 1343 1350 endif 1344 1351 #endif -
trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/main/real_em.F
r481 r549 566 566 REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q3bdy3dtemp1 567 567 REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q4bdy3dtemp1 568 REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q5bdy3dtemp1 569 REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q6bdy3dtemp1 568 570 !!!!***MARS << 569 571 REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: mbdy2dtemp1 … … 573 575 REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q3bdy3dtemp2 574 576 REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q4bdy3dtemp2 577 REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q5bdy3dtemp2 578 REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: q6bdy3dtemp2 575 579 !!!!***MARS << 576 580 REAL , DIMENSION(:,:,:) , ALLOCATABLE , SAVE :: mbdy2dtemp2 … … 625 629 IF ( ALLOCATED ( q3bdy3dtemp1 ) ) DEALLOCATE ( q3bdy3dtemp1 ) 626 630 IF ( ALLOCATED ( q4bdy3dtemp1 ) ) DEALLOCATE ( q4bdy3dtemp1 ) 631 IF ( ALLOCATED ( q3bdy3dtemp1 ) ) DEALLOCATE ( q5bdy3dtemp1 ) 632 IF ( ALLOCATED ( q4bdy3dtemp1 ) ) DEALLOCATE ( q6bdy3dtemp1 ) 627 633 !!!!***MARS << 628 634 IF ( ALLOCATED ( mbdy2dtemp1 ) ) DEALLOCATE ( mbdy2dtemp1 ) … … 636 642 IF ( ALLOCATED ( q3bdy3dtemp2 ) ) DEALLOCATE ( q3bdy3dtemp2 ) 637 643 IF ( ALLOCATED ( q4bdy3dtemp2 ) ) DEALLOCATE ( q4bdy3dtemp2 ) 644 IF ( ALLOCATED ( q3bdy3dtemp2 ) ) DEALLOCATE ( q5bdy3dtemp2 ) 645 IF ( ALLOCATED ( q4bdy3dtemp2 ) ) DEALLOCATE ( q6bdy3dtemp2 ) 638 646 !!!!***MARS << 639 647 IF ( ALLOCATED ( mbdy2dtemp2 ) ) DEALLOCATE ( mbdy2dtemp2 ) … … 648 656 ALLOCATE ( q3bdy3dtemp1(ims:ime,kms:kme,jms:jme) ) 649 657 ALLOCATE ( q4bdy3dtemp1(ims:ime,kms:kme,jms:jme) ) 658 ALLOCATE ( q5bdy3dtemp1(ims:ime,kms:kme,jms:jme) ) 659 ALLOCATE ( q6bdy3dtemp1(ims:ime,kms:kme,jms:jme) ) 650 660 !!!!***MARS << 651 661 ALLOCATE ( mbdy2dtemp1(ims:ime,1:1, jms:jme) ) … … 659 669 ALLOCATE ( q3bdy3dtemp2(ims:ime,kms:kme,jms:jme) ) 660 670 ALLOCATE ( q4bdy3dtemp2(ims:ime,kms:kme,jms:jme) ) 671 ALLOCATE ( q5bdy3dtemp2(ims:ime,kms:kme,jms:jme) ) 672 ALLOCATE ( q6bdy3dtemp2(ims:ime,kms:kme,jms:jme) ) 661 673 !!!!***MARS << 662 674 ALLOCATE ( mbdy2dtemp2(ims:ime,1:1, jms:jme) ) … … 721 733 ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe ) 722 734 CALL couple ( grid%em_mu_2 , grid%em_mub , q4bdy3dtemp1 , grid%scalar(:,:,:,5) , 't' , grid%msft , & 735 ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe ) 736 ENDIF 737 IF ((config_flags%mars .eq. 12)) THEN 738 CALL couple ( grid%em_mu_2 , grid%em_mub , q5bdy3dtemp1 , grid%scalar(:,:,:,6) , 't' , grid%msft , & 739 ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe ) 740 CALL couple ( grid%em_mu_2 , grid%em_mub , q6bdy3dtemp1 , grid%scalar(:,:,:,7) , 't' , grid%msft , & 723 741 ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe ) 724 742 ENDIF … … 804 822 ips , ipe , jps , jpe , kps , kpe ) 805 823 ENDIF 824 IF ((config_flags%mars .eq. 12)) THEN 825 CALL stuff_bdy ( q5bdy3dtemp1 , grid%scalar_b(:,:,:,:,6) , 'T' , ijds , ijde , spec_bdy_width , & 826 ids , ide , jds , jde , kds , kde , & 827 ims , ime , jms , jme , kms , kme , & 828 ips , ipe , jps , jpe , kps , kpe ) 829 CALL stuff_bdy ( q6bdy3dtemp1 , grid%scalar_b(:,:,:,:,7) , 'T' , ijds , ijde , spec_bdy_width , & 830 ids , ide , jds , jde , kds , kde , & 831 ims , ime , jms , jme , kms , kme , & 832 ips , ipe , jps , jpe , kps , kpe ) 833 ENDIF 806 834 !!!!MARS << 807 835 … … 874 902 ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe ) 875 903 CALL couple ( grid%em_mu_2 , grid%em_mub , q4bdy3dtemp2 , grid%scalar(:,:,:,5) , 't' , grid%msft , & 904 ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe ) 905 ENDIF 906 IF ((config_flags%mars .eq. 12)) THEN 907 CALL couple ( grid%em_mu_2 , grid%em_mub , q5bdy3dtemp2 , grid%scalar(:,:,:,6) , 't' , grid%msft , & 908 ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe ) 909 CALL couple ( grid%em_mu_2 , grid%em_mub , q6bdy3dtemp2 , grid%scalar(:,:,:,7) , 't' , grid%msft , & 876 910 ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, ips, ipe, jps, jpe, kps, kpe ) 877 911 ENDIF … … 964 998 ips , ipe , jps , jpe , kps , kpe ) 965 999 ENDIF 1000 IF ((config_flags%mars .eq. 12)) THEN 1001 CALL stuff_bdytend ( q5bdy3dtemp2 , q5bdy3dtemp1 , REAL(interval_seconds) , grid%scalar_bt(:,:,:,:,6) , 'T' , & 1002 ijds , ijde , spec_bdy_width , & 1003 ids , ide , jds , jde , kds , kde , & 1004 ims , ime , jms , jme , kms , kme , & 1005 ips , ipe , jps , jpe , kps , kpe ) 1006 CALL stuff_bdytend ( q6bdy3dtemp2 , q6bdy3dtemp1 , REAL(interval_seconds) ,grid%scalar_bt(:,:,:,:,7) , 'T' , & 1007 ijds , ijde , spec_bdy_width , & 1008 ids , ide , jds , jde , kds , kde , & 1009 ims , ime , jms , jme , kms , kme , & 1010 ips , ipe , jps , jpe , kps , kpe ) 1011 ENDIF 966 1012 !!!!!MARS << 967 1013 … … 1052 1098 q3bdy3dtemp1(i,k,j) = q3bdy3dtemp2(i,k,j) 1053 1099 q4bdy3dtemp1(i,k,j) = q4bdy3dtemp2(i,k,j) 1100 q5bdy3dtemp1(i,k,j) = q5bdy3dtemp2(i,k,j) 1101 q6bdy3dtemp1(i,k,j) = q6bdy3dtemp2(i,k,j) 1054 1102 !!!!MARS << 1055 1103 END DO … … 1133 1181 ips , ipe , jps , jpe , kps , kpe ) 1134 1182 ENDIF 1183 IF ((config_flags%mars .eq. 12)) THEN 1184 CALL stuff_bdy ( q5bdy3dtemp1 , grid%scalar_b(:,:,:,:,6) , 'T', ijds , ijde , spec_bdy_width , & 1185 ids , ide , jds , jde , kds , kde , & 1186 ims , ime , jms , jme , kms , kme , & 1187 ips , ipe , jps , jpe , kps , kpe ) 1188 CALL stuff_bdy ( q6bdy3dtemp1 , grid%scalar_b(:,:,:,:,7) , 'T', ijds , ijde , spec_bdy_width , & 1189 ids , ide , jds , jde , kds , kde , & 1190 ims , ime , jms , jme , kms , kme , & 1191 ips , ipe , jps , jpe , kps , kpe ) 1192 ENDIF 1135 1193 !!!!MARS << 1136 1194 CALL stuff_bdy ( mbdy2dtemp1 , grid%em_mu_b , 'M' , ijds , ijde , spec_bdy_width , &
Note: See TracChangeset
for help on using the changeset viewer.