Changeset 94 for trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em
- Timestamp:
- Mar 14, 2011, 12:11:24 PM (14 years ago)
- Location:
- trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/Makefile
r11 r94 198 198 ../share/module_model_constants.o \ 199 199 ../share/module_bc.o \ 200 ../phys/module_radiation_driver.o \201 200 ../phys/module_lmd_driver.o \ 202 ../phys/module_surface_driver.o \203 ../phys/module_cumulus_driver.o \204 ../phys/module_microphysics_driver.o \205 ../phys/module_microphysics_zero_out.o \206 ../phys/module_pbl_driver.o \207 ../phys/module_fddagd_driver.o \208 ../phys/module_fddaobs_driver.o \209 201 ../phys/module_physics_addtendc.o 210 202 -
trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/dyn_em/solve_em.F
r76 r94 27 27 ! Registry generated module 28 28 USE module_state_description 29 USE module_radiation_driver 30 USE module_surface_driver 31 USE module_cumulus_driver 32 USE module_microphysics_driver 33 USE module_microphysics_zero_out 34 USE module_pbl_driver 35 USE module_fddagd_driver 36 USE module_fddaobs_driver 37 USE module_diagnostics 29 !!!******MARS MARS 30 !!!******MARS MARS 31 !!!******MARS MARS 32 ! USE module_radiation_driver 33 ! USE module_surface_driver 34 ! USE module_cumulus_driver 35 ! USE module_microphysics_driver 36 ! USE module_microphysics_zero_out 37 ! USE module_pbl_driver 38 ! USE module_fddagd_driver 39 ! USE module_fddaobs_driver 40 ! USE module_diagnostics 38 41 !****MARS 39 42 ! in the dyn_em folder physics driver are only used here … … 480 483 !----------------------------------------------------------------- 481 484 482 CALL wrf_debug ( 200 , ' call radiation_driver' ) 483 BENCH_START(rad_driver_tim) 484 485 CALL radiation_driver( & 486 & ACFRCV=grid%acfrcv ,ACFRST=grid%acfrst ,ALBEDO=grid%albedo & 487 & ,CFRACH=grid%cfrach ,CFRACL=grid%cfracl ,CFRACM=grid%cfracm & 488 & ,CUPPT=grid%cuppt ,CZMEAN=grid%czmean ,DT=grid%dt & 489 & ,DZ8W=dz8w ,EMISS=grid%emiss ,GLW=grid%glw & 490 & ,GMT=grid%gmt ,GSW=grid%gsw ,HBOT=grid%hbot & 491 & ,HTOP=grid%htop ,HBOTR=grid%hbotr, HTOPR=grid%htopr ,ICLOUD=config_flags%icloud & 492 & ,ITIMESTEP=grid%itimestep,JULDAY=grid%julday, JULIAN=grid%julian & 493 & ,JULYR=grid%julyr ,LW_PHYSICS=config_flags%ra_lw_physics & 494 & ,NCFRCV=grid%ncfrcv ,NCFRST=grid%ncfrst ,NPHS=1 & 495 & ,P8W=p8w ,P=p_phy ,PI=pi_phy & 496 & ,RADT=grid%radt ,RA_CALL_OFFSET=grid%ra_call_offset & 497 & ,RHO=rho ,RLWTOA=grid%rlwtoa & 498 & ,RSWTOA=grid%rswtoa ,RTHRATEN=grid%rthraten & 499 & ,RTHRATENLW=grid%rthratenlw & 500 & ,RTHRATENSW=grid%rthratensw ,SNOW=grid%snow & 501 & ,STEPRA=grid%stepra ,SWDOWN=grid%swdown ,SWDOWNC=grid%swdownc & 502 & ,SW_PHYSICS=config_flags%ra_sw_physics ,T8W=t8w & 503 & ,T=t_phy ,TAUCLDC=grid%taucldc ,TAUCLDI=grid%taucldi & 504 & ,TSK=grid%tsk ,VEGFRA=grid%vegfra ,WARM_RAIN=grid%warm_rain & 505 & ,XICE=grid%xice & 506 & ,XLAND=grid%xland ,XLAT=grid%xlat ,XLONG=grid%xlong & 507 !Optional urban 508 & ,DECLIN_URB=grid%declin_urb ,COSZ_URB2D=grid%cosz_urb2d & 509 & ,OMG_URB2D=grid%omg_urb2d & 510 ! 511 & ,Z=grid%em_z & 512 & ,LEVSIZ=grid%levsiz, N_OZMIXM=num_ozmixm & 513 & ,N_AEROSOLC=num_aerosolc & 514 & ,PAERLEV=grid%paerlev & 515 & ,CAM_ABS_DIM1=grid%cam_abs_dim1, CAM_ABS_DIM2=grid%cam_abs_dim2 & 516 & ,CAM_ABS_FREQ_S=grid%cam_abs_freq_s & 517 & ,XTIME=grid%xtime & 518 ! indexes 519 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 520 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 521 & ,i_start=grid%i_start,i_end=min(grid%i_end, ide-1) & 522 & ,j_start=grid%j_start,j_end=min(grid%j_end, jde-1) & 523 & ,kts=k_start, kte=min(k_end,kde-1) & 524 & ,num_tiles=grid%num_tiles & 525 ! Optional 526 & , CLDFRA=grid%cldfra & 527 & , PB=grid%em_pb & 528 & , F_ICE_PHY=grid%f_ice_phy,F_RAIN_PHY=grid%f_rain_phy & 529 & , QV=moist(ims,kms,jms,P_QV), F_QV=F_QV & 530 & , QC=moist(ims,kms,jms,P_QC), F_QC=F_QC & 531 & , QR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 532 & , QI=moist(ims,kms,jms,P_QI), F_QI=F_QI & 533 & , QS=moist(ims,kms,jms,P_QS), F_QS=F_QS & 534 & , QG=moist(ims,kms,jms,P_QG), F_QG=F_QG & 535 #ifdef ACFLUX 536 & ,ACSWUPT=acswupt ,ACSWUPTC=acswuptc & 537 & ,ACSWDNT=acswdnt ,ACSWDNTC=acswdntc & 538 & ,ACSWUPB=acswupb ,ACSWUPBC=acswupbc & 539 & ,ACSWDNB=acswdnb ,ACSWDNBC=acswdnbc & 540 & ,ACLWUPT=aclwupt ,ACLWUPTC=aclwuptc & 541 & ,ACLWDNT=aclwdnt ,ACLWDNTC=aclwdntc & 542 & ,ACLWUPB=aclwupb ,ACLWUPBC=aclwupbc & 543 & ,ACLWDNB=aclwdnb ,ACLWDNBC=aclwdnbc & 544 & ,SWUPT=swupt ,SWUPTC=swuptc & 545 & ,SWDNT=swdnt ,SWDNTC=swdntc & 546 & ,SWUPB=swupb ,SWUPBC=swupbc & 547 & ,SWDNB=swdnb ,SWDNBC=swdnbc & 548 & ,LWUPT=lwupt ,LWUPTC=lwuptc & 549 & ,LWDNT=lwdnt ,LWDNTC=lwdntc & 550 & ,LWUPB=lwupb ,LWUPBC=lwupbc & 551 & ,LWDNB=lwdnb ,LWDNBC=lwdnbc & 552 #endif 553 & ,LWCF=grid%lwcf & 554 & ,SWCF=grid%swcf & 555 & ,OLR=grid%olr & 556 & ,OZMIXM=grid%ozmixm, PIN=grid%pin & 557 & ,M_PS_1=grid%m_ps_1, M_PS_2=grid%m_ps_2, AEROSOLC_1=grid%aerosolc_1 & 558 & ,AEROSOLC_2=grid%aerosolc_2, M_HYBI0=grid%m_hybi & 559 & ,ABSTOT=grid%abstot, ABSNXT=grid%absnxt, EMSTOT=grid%emstot & 560 #ifdef WRF_CHEM 561 & ,QC_ADJUST=grid%GD_CLOUD , QI_ADJUST=grid%GD_CLOUD2 & 562 & ,PM2_5_DRY=grid%pm2_5_dry, PM2_5_WATER=grid%pm2_5_water & 563 & ,PM2_5_DRY_EC=grid%pm2_5_dry_ec & 564 & ,TAUAER300=grid%tauaer1, TAUAER400=grid%tauaer2 & ! jcb 565 & ,TAUAER600=grid%tauaer3, TAUAER999=grid%tauaer4 & ! jcb 566 & ,GAER300=grid%gaer1, GAER400=grid%gaer2, GAER600=grid%gaer3, GAER999=grid%gaer4 & ! jcb 567 & ,WAER300=grid%waer1, WAER400=grid%waer2, WAER600=grid%waer3, WAER999=grid%waer4 & ! jcb 568 #endif 569 & ) 570 571 BENCH_END(rad_driver_tim) 572 573 !********* Surface driver 574 ! surface 575 576 BENCH_START(surf_driver_tim) 577 578 !----------------------------------------------------------------- 579 ! urban related variable are added to arguments of surface_driver 580 !----------------------------------------------------------------- 581 NUM_ROOF_LAYERS = grid%num_soil_layers !urban 582 NUM_WALL_LAYERS = grid%num_soil_layers !urban 583 NUM_ROAD_LAYERS = grid%num_soil_layers !urban 584 585 CALL wrf_debug ( 200 , ' call surface_driver' ) 586 CALL surface_driver( & 587 & ACSNOM=grid%acsnom ,ACSNOW=grid%acsnow ,AKHS=grid%akhs & 588 & ,AKMS=grid%akms ,ALBBCK=grid%albbck ,ALBEDO=grid%albedo & 589 & ,BR=br ,CANWAT=grid%canwat ,CHKLOWQ=chklowq & 590 & ,CT=grid%ct ,DT=grid%dt ,DX=grid%dx & 591 & ,DZ8W=dz8w ,DZS=grid%dzs ,FLHC=grid%flhc & 592 & ,FLQC=grid%flqc ,GLW=grid%glw ,GRDFLX=grid%grdflx & 593 & ,GSW=grid%gsw ,SWDOWN=grid%swdown ,GZ1OZ0=gz1oz0 ,HFX=grid%hfx & 594 & ,HT=grid%ht ,IFSNOW=config_flags%ifsnow ,ISFFLX=config_flags%isfflx & 595 & ,ISLTYP=grid%isltyp ,ITIMESTEP=grid%itimestep & 596 & ,IVGTYP=grid%ivgtyp ,LH=grid%lh ,LOWLYR=grid%lowlyr & 597 & ,MAVAIL=grid%mavail ,NUM_SOIL_LAYERS=config_flags%num_soil_layers & 598 & ,P8W=p8w ,PBLH=grid%pblh ,PI_PHY=pi_phy & 599 & ,PSFC=grid%psfc ,PSHLTR=pshltr ,PSIH=psih & 600 & ,PSIM=psim ,P_PHY=p_phy ,Q10=q10 & 601 & ,Q2=grid%q2 ,QFX=grid%qfx ,QSFC=grid%qsfc & 602 & ,QSHLTR=qshltr ,QZ0=grid%qz0 ,RAINCV=grid%raincv & 603 & ,RA_LW_PHYSICS=config_flags%ra_lw_physics ,RHO=rho & 604 & ,RMOL=grid%rmol ,SFCEVP=grid%sfcevp ,SFCEXC=grid%sfcexc & 605 & ,SFCRUNOFF=grid%sfcrunoff & 606 & ,SF_SFCLAY_PHYSICS=config_flags%sf_sfclay_physics & 607 & ,SF_SURFACE_PHYSICS=config_flags%sf_surface_physics ,SH2O=grid%sh2o & 608 & ,SHDMAX=grid%shdmax ,SHDMIN=grid%shdmin ,SMOIS=grid%smois & 609 & ,SMSTAV=grid%smstav ,SMSTOT=grid%smstot ,SNOALB=grid%snoalb & 610 & ,SNOW=grid%snow ,SNOWC=grid%snowc ,SNOWH=grid%snowh & 611 & ,SST=grid%sst ,SST_UPDATE=grid%sst_update & 612 & ,STEPBL=grid%stepbl ,TH10=th10 ,TH2=grid%th2 & 613 & ,THZ0=grid%thz0 ,TH_PHY=th_phy ,TKE_MYJ=grid%tke_myj & 614 & ,TMN=grid%tmn ,TSHLTR=tshltr ,TSK=grid%tsk & 615 & ,TSLB=grid%tslb ,T_PHY=t_phy ,U10=grid%u10 & 616 & ,URATX=grid%uratx ,VRATX=grid%vratx ,TRATX=grid%tratx & 617 & ,UDRUNOFF=grid%udrunoff ,UST=grid%ust ,UZ0=grid%uz0 & 618 & ,U_FRAME=grid%u_frame ,U_PHY=u_phy ,V10=grid%v10 & 619 & ,VEGFRA=grid%vegfra ,VZ0=grid%vz0 ,V_FRAME=grid%v_frame & 620 & ,V_PHY=v_phy ,WARM_RAIN=grid%warm_rain & 621 & ,WSPD=wspd ,XICE=grid%xice ,XLAND=grid%xland & 622 & ,Z0=grid%z0 ,Z=grid%em_z ,ZNT=grid%znt & 623 & ,ZS=grid%zs & 624 & ,DECLIN_URB=grid%declin_urb ,COSZ_URB2D=grid%cosz_urb2d & !I urban 625 & ,OMG_URB2D=grid%omg_urb2d ,xlat_urb2d=grid%XLAT & !I urban 626 & ,NUM_ROOF_LAYERS=num_roof_layers & !I urban 627 & ,NUM_WALL_LAYERS=num_wall_layers & !I urban 628 & ,NUM_ROAD_LAYERS=num_road_layers & 629 & ,DZR=grid%dzr ,DZB=grid%dzb ,DZG=grid%dzg & !I urban 630 & ,TR_URB2D=grid%tr_urb2d ,TB_URB2D=grid%tb_urb2d & 631 & ,TG_URB2D=grid%tg_urb2d & !H urban 632 & ,TC_URB2D=grid%tc_urb2d ,QC_URB2D=grid%qc_urb2d & !H urban 633 & ,UC_URB2D=grid%uc_urb2d & !H urban 634 & ,XXXR_URB2D=grid%xxxr_urb2d & 635 & ,XXXB_URB2D=grid%xxxb_urb2d & !H urban 636 & ,XXXG_URB2D=grid%xxxg_urb2d & 637 & ,XXXC_URB2D=grid%xxxc_urb2d & !H urban 638 & ,TRL_URB3D=grid%trl_urb3d ,TBL_URB3D=grid%tbl_urb3d & !H urban 639 & ,TGL_URB3D=grid%tgl_urb3d & !H urban 640 & ,SH_URB2D=grid%sh_urb2d ,LH_URB2D=grid%lh_urb2d & 641 & ,G_URB2D=grid%g_urb2d & !H urban 642 & ,RN_URB2D=grid%rn_urb2d , TS_URB2D=grid%ts_urb2d & !H urban 643 & ,FRC_URB2D=grid%frc_urb2d & !H urban 644 & ,UTYPE_URB2D=grid%utype_urb2d & !H urban 645 & ,ucmcall=grid%ucmcall & !H urban 646 ! Indexes 647 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 648 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 649 & , I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 650 & , J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 651 & , KTS=k_start, KTE=min(k_end,kde-1) & 652 & , NUM_TILES=grid%num_tiles & 653 ! Optional 654 & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 655 & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 656 & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 657 & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 658 & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 659 & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 660 & ,CAPG=grid%capg, EMISS=grid%emiss, HOL=hol,MOL=grid%mol & 661 & ,RAINBL=grid%rainbl,SR=grid%em_sr & 662 & ,RAINNCV=grid%rainncv,REGIME=regime,T2=grid%t2,THC=grid%thc & 663 & ,QSG=grid%qsg,QVG=grid%qvg,QCG=grid%qcg,SOILT1=grid%soilt1,TSNAV=grid%tsnav & ! ruc lsm 664 & ,SMFR3D=grid%smfr3d,KEEPFR3DFLAG=grid%keepfr3dflag & ! ruc lsm 665 & ,POTEVP=grid%em_POTEVP, SNOPCX=grid%em_SNOPCX, SOILTB=grid%em_SOILTB & ! ruc lsm 666 & ) 667 BENCH_END(surf_driver_tim) 668 669 !********* 670 ! pbl 671 672 CALL wrf_debug ( 200 , ' call pbl_driver' ) 673 BENCH_START(pbl_driver_tim) 674 CALL pbl_driver( & 675 & AKHS=grid%akhs ,AKMS=grid%akms & 676 & ,BL_PBL_PHYSICS=config_flags%bl_pbl_physics & 677 & ,BR=br ,CHKLOWQ=chklowq ,CT=grid%ct & 678 & ,DT=grid%dt ,DX=grid%dx ,DZ8W=dz8w & 679 & ,EL_MYJ=grid%el_myj ,EXCH_H=grid%exch_h ,GRDFLX=grid%grdflx & 680 & ,GZ1OZ0=gz1oz0 ,HFX=grid%hfx ,HT=grid%ht & 681 & ,ITIMESTEP=grid%itimestep ,KPBL=grid%kpbl & 682 & ,LH=grid%lh ,LOWLYR=grid%lowlyr ,P8W=p8w & 683 & ,PBLH=grid%pblh ,PI_PHY=pi_phy ,PSIH=psih & 684 & ,PSIM=psim ,P_PHY=p_phy ,QFX=grid%qfx & 685 & ,QSFC=grid%qsfc ,QZ0=grid%qz0 & 686 & ,RA_LW_PHYSICS=config_flags%ra_lw_physics & 687 & ,RHO=rho ,RQCBLTEN=grid%rqcblten ,RQIBLTEN=grid%rqiblten & 688 & ,RQVBLTEN=grid%rqvblten ,RTHBLTEN=grid%rthblten ,RUBLTEN=grid%rublten & 689 & ,RVBLTEN=grid%rvblten ,SNOW=grid%snow ,STEPBL=grid%stepbl & 690 & ,THZ0=grid%thz0 ,TH_PHY=th_phy ,TKE_MYJ=grid%tke_myj & 691 & ,TSK=grid%tsk ,T_PHY=t_phy ,UST=grid%ust & 692 & ,UZ0=grid%uz0 ,U_FRAME=grid%u_frame ,U_PHY=u_phy & 693 & ,VZ0=grid%vz0 ,V_FRAME=grid%v_frame ,V_PHY=v_phy & 694 & ,WARM_RAIN=grid%warm_rain ,WSPD=wspd & 695 & ,XICE=grid%xice ,XLAND=grid%xland ,Z=grid%em_z & 696 & ,ZNT=grid%znt & 697 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 698 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 699 & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 700 & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 701 & ,KTS=k_start, KTE=min(k_end,kde-1) & 702 & ,NUM_TILES=grid%num_tiles & 703 ! optional 704 & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 705 & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 706 & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 707 & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 708 & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 709 & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 710 & ,HOL=HOL, MOL=grid%mol, REGIME=REGIME & 711 & ) 712 713 BENCH_END(pbl_driver_tim) 714 715 ! cumulus para. 716 717 CALL wrf_debug ( 200 , ' call cumulus_driver' ) 718 719 BENCH_START(cu_driver_tim) 720 CALL cumulus_driver( & 721 ! Prognostic variables 722 & U=u_phy ,V=v_phy ,TH=th_phy ,T=t_phy & 723 & ,W=grid%em_w_2 ,P=p_phy ,PI=pi_phy ,RHO=rho & 724 ! Other arguments 725 & ,ITIMESTEP=grid%itimestep ,DT=grid%dt ,DX=grid%dx & 726 & ,RAINC=grid%rainc ,RAINCV=grid%raincv ,NCA=grid%nca & 727 & ,HTOP=grid%cutop ,HBOT=grid%cubot ,KPBL=grid%kpbl & 728 & ,DZ8W=dz8w ,P8W=p8w & 729 & ,W0AVG=grid%w0avg ,STEPCU=grid%stepcu & 730 & ,CLDEFI=grid%cldefi ,LOWLYR=grid%lowlyr ,XLAND=grid%xland & 731 & ,APR_GR=grid%apr_gr ,APR_W=grid%apr_w ,APR_MC=grid%apr_mc & 732 & ,APR_ST=grid%apr_st ,APR_AS=grid%apr_as ,APR_CAPMA=grid%apr_capma & 733 & ,APR_CAPME=grid%apr_capme ,APR_CAPMI=grid%apr_capmi & 734 & ,MASS_FLUX=grid%mass_flux ,XF_ENS=grid%xf_ens & 735 & ,PR_ENS=grid%pr_ens ,HT=grid%ht & 736 & ,ENSDIM=config_flags%ensdim ,MAXIENS=config_flags%maxiens ,MAXENS=config_flags%maxens & 737 & ,MAXENS2=config_flags%maxens2 ,MAXENS3=config_flags%maxens3 & 738 & ,CU_ACT_FLAG=cu_act_flag ,WARM_RAIN=grid%warm_rain & 739 & ,GSW=grid%gsw & 740 ! Selection flag 741 & ,CU_PHYSICS=config_flags%cu_physics & 742 ! Dimension arguments 743 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 744 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 745 & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 746 & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 747 & ,KTS=k_start, KTE=min(k_end,kde-1) & 748 & ,NUM_TILES=grid%num_tiles & 749 ! Moisture tendency arguments 750 & ,RQVCUTEN=grid%rqvcuten , RQCCUTEN=grid%rqccuten & 751 & ,RQSCUTEN=grid%rqscuten , RQICUTEN=grid%rqicuten & 752 & ,RQRCUTEN=grid%rqrcuten , RQVBLTEN=grid%rqvblten & 753 & ,RQVFTEN=grid%rqvften & 754 ! Other tendency arguments 755 & ,RTHRATEN=grid%rthraten , RTHBLTEN=grid%rthblten & 756 & ,RTHCUTEN=grid%rthcuten , RTHFTEN=grid%rthften & 757 ! Moisture tracer arguments 758 & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 759 & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 760 & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 761 & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 762 & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 763 & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 764 #ifdef WRF_CHEM 765 & ,GD_CLOUD=grid%GD_CLOUD,GD_CLOUD2=grid%GD_CLOUD2 & 766 #endif 767 & ) 768 BENCH_END(cu_driver_tim) 769 770 ! fdda 771 772 CALL wrf_debug ( 200 , ' call fddagd_driver' ) 773 774 BENCH_START(fdda_driver_tim) 775 CALL fddagd_driver(itimestep=grid%itimestep,dt=grid%dt,xtime=grid%XTIME, & 776 id=grid%id, & 777 RUNDGDTEN=grid%rundgdten,RVNDGDTEN=grid%rvndgdten, & 778 RTHNDGDTEN=grid%rthndgdten,RQVNDGDTEN=grid%rqvndgdten, & 779 RMUNDGDTEN=grid%rmundgdten, & 780 u_ndg_old=fdda3d(ims,kms,jms,P_u_ndg_old), & 781 v_ndg_old=fdda3d(ims,kms,jms,P_v_ndg_old), & 782 t_ndg_old=fdda3d(ims,kms,jms,P_t_ndg_old), & 783 q_ndg_old=fdda3d(ims,kms,jms,P_q_ndg_old), & 784 mu_ndg_old=fdda2d(ims,1,jms,P_mu_ndg_old), & 785 u_ndg_new=fdda3d(ims,kms,jms,P_u_ndg_new), & 786 v_ndg_new=fdda3d(ims,kms,jms,P_v_ndg_new), & 787 t_ndg_new=fdda3d(ims,kms,jms,P_t_ndg_new), & 788 q_ndg_new=fdda3d(ims,kms,jms,P_q_ndg_new), & 789 mu_ndg_new=fdda2d(ims,1,jms,P_mu_ndg_new), & 790 u3d=grid%em_u_2,v3d=grid%em_v_2,th_phy=th_phy,rho=rho,moist=moist, & 791 p_phy=p_phy,pi_phy=pi_phy,p8w=p8w,t_phy=t_phy, & 792 dz8w=dz8w,z=grid%em_z,z_at_w=z_at_w, & 793 config_flags=config_flags,dx=grid%DX,n_moist=num_3d_m, & 794 STEPFG=grid%STEPFG, & 795 pblh=grid%pblh,ht=grid%ht, & 796 IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 797 ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 798 ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 799 ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 800 ,KTS=k_start, KTE=min(k_end,kde-1) & 801 , num_tiles=grid%num_tiles ) 802 BENCH_END(fdda_driver_tim) 485 !!!******MARS MARS 486 !!!******MARS MARS 487 !!!******MARS MARS 488 489 490 ! CALL wrf_debug ( 200 , ' call radiation_driver' ) 491 !BENCH_START(rad_driver_tim) 492 ! 493 ! CALL radiation_driver( & 494 ! & ACFRCV=grid%acfrcv ,ACFRST=grid%acfrst ,ALBEDO=grid%albedo & 495 ! & ,CFRACH=grid%cfrach ,CFRACL=grid%cfracl ,CFRACM=grid%cfracm & 496 ! & ,CUPPT=grid%cuppt ,CZMEAN=grid%czmean ,DT=grid%dt & 497 ! & ,DZ8W=dz8w ,EMISS=grid%emiss ,GLW=grid%glw & 498 ! & ,GMT=grid%gmt ,GSW=grid%gsw ,HBOT=grid%hbot & 499 ! & ,HTOP=grid%htop ,HBOTR=grid%hbotr, HTOPR=grid%htopr ,ICLOUD=config_flags%icloud & 500 ! & ,ITIMESTEP=grid%itimestep,JULDAY=grid%julday, JULIAN=grid%julian & 501 ! & ,JULYR=grid%julyr ,LW_PHYSICS=config_flags%ra_lw_physics & 502 ! & ,NCFRCV=grid%ncfrcv ,NCFRST=grid%ncfrst ,NPHS=1 & 503 ! & ,P8W=p8w ,P=p_phy ,PI=pi_phy & 504 ! & ,RADT=grid%radt ,RA_CALL_OFFSET=grid%ra_call_offset & 505 ! & ,RHO=rho ,RLWTOA=grid%rlwtoa & 506 ! & ,RSWTOA=grid%rswtoa ,RTHRATEN=grid%rthraten & 507 ! & ,RTHRATENLW=grid%rthratenlw & 508 ! & ,RTHRATENSW=grid%rthratensw ,SNOW=grid%snow & 509 ! & ,STEPRA=grid%stepra ,SWDOWN=grid%swdown ,SWDOWNC=grid%swdownc & 510 ! & ,SW_PHYSICS=config_flags%ra_sw_physics ,T8W=t8w & 511 ! & ,T=t_phy ,TAUCLDC=grid%taucldc ,TAUCLDI=grid%taucldi & 512 ! & ,TSK=grid%tsk ,VEGFRA=grid%vegfra ,WARM_RAIN=grid%warm_rain & 513 ! & ,XICE=grid%xice & 514 ! & ,XLAND=grid%xland ,XLAT=grid%xlat ,XLONG=grid%xlong & 515 !!Optional urban 516 ! & ,DECLIN_URB=grid%declin_urb ,COSZ_URB2D=grid%cosz_urb2d & 517 ! & ,OMG_URB2D=grid%omg_urb2d & 518 !! 519 ! & ,Z=grid%em_z & 520 ! & ,LEVSIZ=grid%levsiz, N_OZMIXM=num_ozmixm & 521 ! & ,N_AEROSOLC=num_aerosolc & 522 ! & ,PAERLEV=grid%paerlev & 523 ! & ,CAM_ABS_DIM1=grid%cam_abs_dim1, CAM_ABS_DIM2=grid%cam_abs_dim2 & 524 ! & ,CAM_ABS_FREQ_S=grid%cam_abs_freq_s & 525 ! & ,XTIME=grid%xtime & 526 ! ! indexes 527 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 528 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 529 ! & ,i_start=grid%i_start,i_end=min(grid%i_end, ide-1) & 530 ! & ,j_start=grid%j_start,j_end=min(grid%j_end, jde-1) & 531 ! & ,kts=k_start, kte=min(k_end,kde-1) & 532 ! & ,num_tiles=grid%num_tiles & 533 ! ! Optional 534 ! & , CLDFRA=grid%cldfra & 535 ! & , PB=grid%em_pb & 536 ! & , F_ICE_PHY=grid%f_ice_phy,F_RAIN_PHY=grid%f_rain_phy & 537 ! & , QV=moist(ims,kms,jms,P_QV), F_QV=F_QV & 538 ! & , QC=moist(ims,kms,jms,P_QC), F_QC=F_QC & 539 ! & , QR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 540 ! & , QI=moist(ims,kms,jms,P_QI), F_QI=F_QI & 541 ! & , QS=moist(ims,kms,jms,P_QS), F_QS=F_QS & 542 ! & , QG=moist(ims,kms,jms,P_QG), F_QG=F_QG & 543 !#ifdef ACFLUX 544 ! & ,ACSWUPT=acswupt ,ACSWUPTC=acswuptc & 545 ! & ,ACSWDNT=acswdnt ,ACSWDNTC=acswdntc & 546 ! & ,ACSWUPB=acswupb ,ACSWUPBC=acswupbc & 547 ! & ,ACSWDNB=acswdnb ,ACSWDNBC=acswdnbc & 548 ! & ,ACLWUPT=aclwupt ,ACLWUPTC=aclwuptc & 549 ! & ,ACLWDNT=aclwdnt ,ACLWDNTC=aclwdntc & 550 ! & ,ACLWUPB=aclwupb ,ACLWUPBC=aclwupbc & 551 ! & ,ACLWDNB=aclwdnb ,ACLWDNBC=aclwdnbc & 552 ! & ,SWUPT=swupt ,SWUPTC=swuptc & 553 ! & ,SWDNT=swdnt ,SWDNTC=swdntc & 554 ! & ,SWUPB=swupb ,SWUPBC=swupbc & 555 ! & ,SWDNB=swdnb ,SWDNBC=swdnbc & 556 ! & ,LWUPT=lwupt ,LWUPTC=lwuptc & 557 ! & ,LWDNT=lwdnt ,LWDNTC=lwdntc & 558 ! & ,LWUPB=lwupb ,LWUPBC=lwupbc & 559 ! & ,LWDNB=lwdnb ,LWDNBC=lwdnbc & 560 !#endif 561 ! & ,LWCF=grid%lwcf & 562 ! & ,SWCF=grid%swcf & 563 ! & ,OLR=grid%olr & 564 ! & ,OZMIXM=grid%ozmixm, PIN=grid%pin & 565 ! & ,M_PS_1=grid%m_ps_1, M_PS_2=grid%m_ps_2, AEROSOLC_1=grid%aerosolc_1 & 566 ! & ,AEROSOLC_2=grid%aerosolc_2, M_HYBI0=grid%m_hybi & 567 ! & ,ABSTOT=grid%abstot, ABSNXT=grid%absnxt, EMSTOT=grid%emstot & 568 !#ifdef WRF_CHEM 569 ! & ,QC_ADJUST=grid%GD_CLOUD , QI_ADJUST=grid%GD_CLOUD2 & 570 ! & ,PM2_5_DRY=grid%pm2_5_dry, PM2_5_WATER=grid%pm2_5_water & 571 ! & ,PM2_5_DRY_EC=grid%pm2_5_dry_ec & 572 ! & ,TAUAER300=grid%tauaer1, TAUAER400=grid%tauaer2 & ! jcb 573 ! & ,TAUAER600=grid%tauaer3, TAUAER999=grid%tauaer4 & ! jcb 574 ! & ,GAER300=grid%gaer1, GAER400=grid%gaer2, GAER600=grid%gaer3, GAER999=grid%gaer4 & ! jcb 575 ! & ,WAER300=grid%waer1, WAER400=grid%waer2, WAER600=grid%waer3, WAER999=grid%waer4 & ! jcb 576 !#endif 577 ! & ) 578 ! 579 !BENCH_END(rad_driver_tim) 580 ! 581 !!********* Surface driver 582 !! surface 583 ! 584 !BENCH_START(surf_driver_tim) 585 ! 586 !!----------------------------------------------------------------- 587 !! urban related variable are added to arguments of surface_driver 588 !!----------------------------------------------------------------- 589 ! NUM_ROOF_LAYERS = grid%num_soil_layers !urban 590 ! NUM_WALL_LAYERS = grid%num_soil_layers !urban 591 ! NUM_ROAD_LAYERS = grid%num_soil_layers !urban 592 ! 593 ! CALL wrf_debug ( 200 , ' call surface_driver' ) 594 ! CALL surface_driver( & 595 ! & ACSNOM=grid%acsnom ,ACSNOW=grid%acsnow ,AKHS=grid%akhs & 596 ! & ,AKMS=grid%akms ,ALBBCK=grid%albbck ,ALBEDO=grid%albedo & 597 ! & ,BR=br ,CANWAT=grid%canwat ,CHKLOWQ=chklowq & 598 ! & ,CT=grid%ct ,DT=grid%dt ,DX=grid%dx & 599 ! & ,DZ8W=dz8w ,DZS=grid%dzs ,FLHC=grid%flhc & 600 ! & ,FLQC=grid%flqc ,GLW=grid%glw ,GRDFLX=grid%grdflx & 601 ! & ,GSW=grid%gsw ,SWDOWN=grid%swdown ,GZ1OZ0=gz1oz0 ,HFX=grid%hfx & 602 ! & ,HT=grid%ht ,IFSNOW=config_flags%ifsnow ,ISFFLX=config_flags%isfflx & 603 ! & ,ISLTYP=grid%isltyp ,ITIMESTEP=grid%itimestep & 604 ! & ,IVGTYP=grid%ivgtyp ,LH=grid%lh ,LOWLYR=grid%lowlyr & 605 ! & ,MAVAIL=grid%mavail ,NUM_SOIL_LAYERS=config_flags%num_soil_layers & 606 ! & ,P8W=p8w ,PBLH=grid%pblh ,PI_PHY=pi_phy & 607 ! & ,PSFC=grid%psfc ,PSHLTR=pshltr ,PSIH=psih & 608 ! & ,PSIM=psim ,P_PHY=p_phy ,Q10=q10 & 609 ! & ,Q2=grid%q2 ,QFX=grid%qfx ,QSFC=grid%qsfc & 610 ! & ,QSHLTR=qshltr ,QZ0=grid%qz0 ,RAINCV=grid%raincv & 611 ! & ,RA_LW_PHYSICS=config_flags%ra_lw_physics ,RHO=rho & 612 ! & ,RMOL=grid%rmol ,SFCEVP=grid%sfcevp ,SFCEXC=grid%sfcexc & 613 ! & ,SFCRUNOFF=grid%sfcrunoff & 614 ! & ,SF_SFCLAY_PHYSICS=config_flags%sf_sfclay_physics & 615 ! & ,SF_SURFACE_PHYSICS=config_flags%sf_surface_physics ,SH2O=grid%sh2o & 616 ! & ,SHDMAX=grid%shdmax ,SHDMIN=grid%shdmin ,SMOIS=grid%smois & 617 ! & ,SMSTAV=grid%smstav ,SMSTOT=grid%smstot ,SNOALB=grid%snoalb & 618 ! & ,SNOW=grid%snow ,SNOWC=grid%snowc ,SNOWH=grid%snowh & 619 ! & ,SST=grid%sst ,SST_UPDATE=grid%sst_update & 620 ! & ,STEPBL=grid%stepbl ,TH10=th10 ,TH2=grid%th2 & 621 ! & ,THZ0=grid%thz0 ,TH_PHY=th_phy ,TKE_MYJ=grid%tke_myj & 622 ! & ,TMN=grid%tmn ,TSHLTR=tshltr ,TSK=grid%tsk & 623 ! & ,TSLB=grid%tslb ,T_PHY=t_phy ,U10=grid%u10 & 624 ! & ,URATX=grid%uratx ,VRATX=grid%vratx ,TRATX=grid%tratx & 625 ! & ,UDRUNOFF=grid%udrunoff ,UST=grid%ust ,UZ0=grid%uz0 & 626 ! & ,U_FRAME=grid%u_frame ,U_PHY=u_phy ,V10=grid%v10 & 627 ! & ,VEGFRA=grid%vegfra ,VZ0=grid%vz0 ,V_FRAME=grid%v_frame & 628 ! & ,V_PHY=v_phy ,WARM_RAIN=grid%warm_rain & 629 ! & ,WSPD=wspd ,XICE=grid%xice ,XLAND=grid%xland & 630 ! & ,Z0=grid%z0 ,Z=grid%em_z ,ZNT=grid%znt & 631 ! & ,ZS=grid%zs & 632 ! & ,DECLIN_URB=grid%declin_urb ,COSZ_URB2D=grid%cosz_urb2d & !I urban 633 ! & ,OMG_URB2D=grid%omg_urb2d ,xlat_urb2d=grid%XLAT & !I urban 634 ! & ,NUM_ROOF_LAYERS=num_roof_layers & !I urban 635 ! & ,NUM_WALL_LAYERS=num_wall_layers & !I urban 636 ! & ,NUM_ROAD_LAYERS=num_road_layers & 637 ! & ,DZR=grid%dzr ,DZB=grid%dzb ,DZG=grid%dzg & !I urban 638 ! & ,TR_URB2D=grid%tr_urb2d ,TB_URB2D=grid%tb_urb2d & 639 ! & ,TG_URB2D=grid%tg_urb2d & !H urban 640 ! & ,TC_URB2D=grid%tc_urb2d ,QC_URB2D=grid%qc_urb2d & !H urban 641 ! & ,UC_URB2D=grid%uc_urb2d & !H urban 642 ! & ,XXXR_URB2D=grid%xxxr_urb2d & 643 ! & ,XXXB_URB2D=grid%xxxb_urb2d & !H urban 644 ! & ,XXXG_URB2D=grid%xxxg_urb2d & 645 ! & ,XXXC_URB2D=grid%xxxc_urb2d & !H urban 646 ! & ,TRL_URB3D=grid%trl_urb3d ,TBL_URB3D=grid%tbl_urb3d & !H urban 647 ! & ,TGL_URB3D=grid%tgl_urb3d & !H urban 648 ! & ,SH_URB2D=grid%sh_urb2d ,LH_URB2D=grid%lh_urb2d & 649 ! & ,G_URB2D=grid%g_urb2d & !H urban 650 ! & ,RN_URB2D=grid%rn_urb2d , TS_URB2D=grid%ts_urb2d & !H urban 651 ! & ,FRC_URB2D=grid%frc_urb2d & !H urban 652 ! & ,UTYPE_URB2D=grid%utype_urb2d & !H urban 653 ! & ,ucmcall=grid%ucmcall & !H urban 654 ! ! Indexes 655 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 656 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 657 ! & , I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 658 ! & , J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 659 ! & , KTS=k_start, KTE=min(k_end,kde-1) & 660 ! & , NUM_TILES=grid%num_tiles & 661 ! ! Optional 662 ! & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 663 ! & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 664 ! & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 665 ! & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 666 ! & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 667 ! & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 668 ! & ,CAPG=grid%capg, EMISS=grid%emiss, HOL=hol,MOL=grid%mol & 669 ! & ,RAINBL=grid%rainbl,SR=grid%em_sr & 670 ! & ,RAINNCV=grid%rainncv,REGIME=regime,T2=grid%t2,THC=grid%thc & 671 ! & ,QSG=grid%qsg,QVG=grid%qvg,QCG=grid%qcg,SOILT1=grid%soilt1,TSNAV=grid%tsnav & ! ruc lsm 672 ! & ,SMFR3D=grid%smfr3d,KEEPFR3DFLAG=grid%keepfr3dflag & ! ruc lsm 673 ! & ,POTEVP=grid%em_POTEVP, SNOPCX=grid%em_SNOPCX, SOILTB=grid%em_SOILTB & ! ruc lsm 674 ! & ) 675 !BENCH_END(surf_driver_tim) 676 ! 677 !!********* 678 !! pbl 679 ! 680 ! CALL wrf_debug ( 200 , ' call pbl_driver' ) 681 !BENCH_START(pbl_driver_tim) 682 ! CALL pbl_driver( & 683 ! & AKHS=grid%akhs ,AKMS=grid%akms & 684 ! & ,BL_PBL_PHYSICS=config_flags%bl_pbl_physics & 685 ! & ,BR=br ,CHKLOWQ=chklowq ,CT=grid%ct & 686 ! & ,DT=grid%dt ,DX=grid%dx ,DZ8W=dz8w & 687 ! & ,EL_MYJ=grid%el_myj ,EXCH_H=grid%exch_h ,GRDFLX=grid%grdflx & 688 ! & ,GZ1OZ0=gz1oz0 ,HFX=grid%hfx ,HT=grid%ht & 689 ! & ,ITIMESTEP=grid%itimestep ,KPBL=grid%kpbl & 690 ! & ,LH=grid%lh ,LOWLYR=grid%lowlyr ,P8W=p8w & 691 ! & ,PBLH=grid%pblh ,PI_PHY=pi_phy ,PSIH=psih & 692 ! & ,PSIM=psim ,P_PHY=p_phy ,QFX=grid%qfx & 693 ! & ,QSFC=grid%qsfc ,QZ0=grid%qz0 & 694 ! & ,RA_LW_PHYSICS=config_flags%ra_lw_physics & 695 ! & ,RHO=rho ,RQCBLTEN=grid%rqcblten ,RQIBLTEN=grid%rqiblten & 696 ! & ,RQVBLTEN=grid%rqvblten ,RTHBLTEN=grid%rthblten ,RUBLTEN=grid%rublten & 697 ! & ,RVBLTEN=grid%rvblten ,SNOW=grid%snow ,STEPBL=grid%stepbl & 698 ! & ,THZ0=grid%thz0 ,TH_PHY=th_phy ,TKE_MYJ=grid%tke_myj & 699 ! & ,TSK=grid%tsk ,T_PHY=t_phy ,UST=grid%ust & 700 ! & ,UZ0=grid%uz0 ,U_FRAME=grid%u_frame ,U_PHY=u_phy & 701 ! & ,VZ0=grid%vz0 ,V_FRAME=grid%v_frame ,V_PHY=v_phy & 702 ! & ,WARM_RAIN=grid%warm_rain ,WSPD=wspd & 703 ! & ,XICE=grid%xice ,XLAND=grid%xland ,Z=grid%em_z & 704 ! & ,ZNT=grid%znt & 705 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 706 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 707 ! & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 708 ! & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 709 ! & ,KTS=k_start, KTE=min(k_end,kde-1) & 710 ! & ,NUM_TILES=grid%num_tiles & 711 ! ! optional 712 ! & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 713 ! & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 714 ! & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 715 ! & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 716 ! & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 717 ! & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 718 ! & ,HOL=HOL, MOL=grid%mol, REGIME=REGIME & 719 ! & ) 720 ! 721 !BENCH_END(pbl_driver_tim) 722 ! 723 !! cumulus para. 724 ! 725 ! CALL wrf_debug ( 200 , ' call cumulus_driver' ) 726 ! 727 !BENCH_START(cu_driver_tim) 728 ! CALL cumulus_driver( & 729 ! ! Prognostic variables 730 ! & U=u_phy ,V=v_phy ,TH=th_phy ,T=t_phy & 731 ! & ,W=grid%em_w_2 ,P=p_phy ,PI=pi_phy ,RHO=rho & 732 ! ! Other arguments 733 ! & ,ITIMESTEP=grid%itimestep ,DT=grid%dt ,DX=grid%dx & 734 ! & ,RAINC=grid%rainc ,RAINCV=grid%raincv ,NCA=grid%nca & 735 ! & ,HTOP=grid%cutop ,HBOT=grid%cubot ,KPBL=grid%kpbl & 736 ! & ,DZ8W=dz8w ,P8W=p8w & 737 ! & ,W0AVG=grid%w0avg ,STEPCU=grid%stepcu & 738 ! & ,CLDEFI=grid%cldefi ,LOWLYR=grid%lowlyr ,XLAND=grid%xland & 739 ! & ,APR_GR=grid%apr_gr ,APR_W=grid%apr_w ,APR_MC=grid%apr_mc & 740 ! & ,APR_ST=grid%apr_st ,APR_AS=grid%apr_as ,APR_CAPMA=grid%apr_capma & 741 ! & ,APR_CAPME=grid%apr_capme ,APR_CAPMI=grid%apr_capmi & 742 ! & ,MASS_FLUX=grid%mass_flux ,XF_ENS=grid%xf_ens & 743 ! & ,PR_ENS=grid%pr_ens ,HT=grid%ht & 744 ! & ,ENSDIM=config_flags%ensdim ,MAXIENS=config_flags%maxiens ,MAXENS=config_flags%maxens & 745 ! & ,MAXENS2=config_flags%maxens2 ,MAXENS3=config_flags%maxens3 & 746 ! & ,CU_ACT_FLAG=cu_act_flag ,WARM_RAIN=grid%warm_rain & 747 ! & ,GSW=grid%gsw & 748 ! ! Selection flag 749 ! & ,CU_PHYSICS=config_flags%cu_physics & 750 ! ! Dimension arguments 751 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 752 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 753 ! & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 754 ! & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 755 ! & ,KTS=k_start, KTE=min(k_end,kde-1) & 756 ! & ,NUM_TILES=grid%num_tiles & 757 ! ! Moisture tendency arguments 758 ! & ,RQVCUTEN=grid%rqvcuten , RQCCUTEN=grid%rqccuten & 759 ! & ,RQSCUTEN=grid%rqscuten , RQICUTEN=grid%rqicuten & 760 ! & ,RQRCUTEN=grid%rqrcuten , RQVBLTEN=grid%rqvblten & 761 ! & ,RQVFTEN=grid%rqvften & 762 ! ! Other tendency arguments 763 ! & ,RTHRATEN=grid%rthraten , RTHBLTEN=grid%rthblten & 764 ! & ,RTHCUTEN=grid%rthcuten , RTHFTEN=grid%rthften & 765 ! ! Moisture tracer arguments 766 ! & ,QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 767 ! & ,QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 768 ! & ,QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 769 ! & ,QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 770 ! & ,QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 771 ! & ,QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 772 !#ifdef WRF_CHEM 773 ! & ,GD_CLOUD=grid%GD_CLOUD,GD_CLOUD2=grid%GD_CLOUD2 & 774 !#endif 775 ! & ) 776 !BENCH_END(cu_driver_tim) 777 ! 778 !! fdda 779 ! 780 ! CALL wrf_debug ( 200 , ' call fddagd_driver' ) 781 ! 782 !BENCH_START(fdda_driver_tim) 783 ! CALL fddagd_driver(itimestep=grid%itimestep,dt=grid%dt,xtime=grid%XTIME, & 784 ! id=grid%id, & 785 ! RUNDGDTEN=grid%rundgdten,RVNDGDTEN=grid%rvndgdten, & 786 ! RTHNDGDTEN=grid%rthndgdten,RQVNDGDTEN=grid%rqvndgdten, & 787 ! RMUNDGDTEN=grid%rmundgdten, & 788 ! u_ndg_old=fdda3d(ims,kms,jms,P_u_ndg_old), & 789 ! v_ndg_old=fdda3d(ims,kms,jms,P_v_ndg_old), & 790 ! t_ndg_old=fdda3d(ims,kms,jms,P_t_ndg_old), & 791 ! q_ndg_old=fdda3d(ims,kms,jms,P_q_ndg_old), & 792 ! mu_ndg_old=fdda2d(ims,1,jms,P_mu_ndg_old), & 793 ! u_ndg_new=fdda3d(ims,kms,jms,P_u_ndg_new), & 794 ! v_ndg_new=fdda3d(ims,kms,jms,P_v_ndg_new), & 795 ! t_ndg_new=fdda3d(ims,kms,jms,P_t_ndg_new), & 796 ! q_ndg_new=fdda3d(ims,kms,jms,P_q_ndg_new), & 797 ! mu_ndg_new=fdda2d(ims,1,jms,P_mu_ndg_new), & 798 ! u3d=grid%em_u_2,v3d=grid%em_v_2,th_phy=th_phy,rho=rho,moist=moist, & 799 ! p_phy=p_phy,pi_phy=pi_phy,p8w=p8w,t_phy=t_phy, & 800 ! dz8w=dz8w,z=grid%em_z,z_at_w=z_at_w, & 801 ! config_flags=config_flags,dx=grid%DX,n_moist=num_3d_m, & 802 ! STEPFG=grid%STEPFG, & 803 ! pblh=grid%pblh,ht=grid%ht, & 804 ! IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 805 ! ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 806 ! ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 807 ! ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 808 ! ,KTS=k_start, KTE=min(k_end,kde-1) & 809 ! , num_tiles=grid%num_tiles ) 810 !BENCH_END(fdda_driver_tim) 803 811 804 812 … … 1259 1267 ENDIF 1260 1268 1261 # ifdef DM_PARALLEL1262 # include "HALO_OBS_NUDGE.inc"1263 #endif1264 ! ***********************************************************************1265 ! This section for obs nudging1266 !$OMP PARALLEL DO &1267 !$OMP PRIVATE ( ij )1268 1269 DO ij = 1 , grid%num_tiles1270 1271 CALL fddaobs_driver (grid%grid_id, model_config_rec%grid_id, &1272 model_config_rec%parent_id, config_flags%restart, &1273 grid%obs_nudge_opt, &1274 grid%obs_ipf_errob, &1275 grid%obs_ipf_nudob, &1276 grid%fdda_start, &1277 grid%fdda_end, &1278 grid%obs_nudge_wind, &1279 grid%obs_nudge_temp, &1280 grid%obs_nudge_mois, &1281 grid%obs_nudge_pstr, &1282 grid%obs_coef_wind, &1283 grid%obs_coef_temp, &1284 grid%obs_coef_mois, &1285 grid%obs_coef_pstr, &1286 grid%obs_rinxy, &1287 grid%obs_rinsig, &1288 grid%obs_twindo, &1289 grid%obs_npfi, &1290 grid%obs_ionf, &1291 grid%obs_idynin, &1292 grid%obs_dtramp, &1293 model_config_rec%cen_lat(1), &1294 model_config_rec%cen_lon(1), &1295 config_flags%truelat1, &1296 config_flags%truelat2, &1297 config_flags%map_proj, &1298 model_config_rec%i_parent_start, &1299 model_config_rec%j_parent_start, &1300 grid%parent_grid_ratio, &1301 grid%max_dom, grid%itimestep, &1302 grid%dt, grid%gmt, grid%julday, grid%fdob, &1303 grid%max_obs, &1304 model_config_rec%nobs_ndg_vars, &1305 model_config_rec%nobs_err_flds, &1306 grid%fdob%nstat, grid%fdob%varobs, grid%fdob%errf, &1307 grid%dx, grid%KPBL,grid%HT, &1308 grid%em_mut, grid%em_muu, grid%em_muv, &1309 grid%msft, grid%msfu, grid%msfv, &1310 p_phy, t_tendf, t0, &1311 grid%em_u_2, grid%em_v_2, grid%em_t_2, &1312 moist(:,:,:,P_QV), &1313 grid%em_pb, grid%p_top, grid%em_p, &1314 grid%uratx, grid%vratx, grid%tratx, &1315 ru_tendf, rv_tendf, &1316 moist_tend(:,:,:,P_QV), grid%em_obs_savwt, &1317 ids,ide, jds,jde, kds,kde, &1318 ims,ime, jms,jme, kms,kme, &1319 grid%i_start(ij), min(grid%i_end(ij),ide-1), &1320 grid%j_start(ij), min(grid%j_end(ij),jde-1), &1321 k_start , min(k_end,kde-1) )1322 1323 ENDDO1324 1325 !$OMP END PARALLEL DO1326 ! 1327 ! ***********************************************************************1269 !# ifdef DM_PARALLEL 1270 !# include "HALO_OBS_NUDGE.inc" 1271 !#endif 1272 !!*********************************************************************** 1273 !! This section for obs nudging 1274 ! !$OMP PARALLEL DO & 1275 ! !$OMP PRIVATE ( ij ) 1276 ! 1277 ! DO ij = 1 , grid%num_tiles 1278 ! 1279 ! CALL fddaobs_driver (grid%grid_id, model_config_rec%grid_id, & 1280 ! model_config_rec%parent_id, config_flags%restart, & 1281 ! grid%obs_nudge_opt, & 1282 ! grid%obs_ipf_errob, & 1283 ! grid%obs_ipf_nudob, & 1284 ! grid%fdda_start, & 1285 ! grid%fdda_end, & 1286 ! grid%obs_nudge_wind, & 1287 ! grid%obs_nudge_temp, & 1288 ! grid%obs_nudge_mois, & 1289 ! grid%obs_nudge_pstr, & 1290 ! grid%obs_coef_wind, & 1291 ! grid%obs_coef_temp, & 1292 ! grid%obs_coef_mois, & 1293 ! grid%obs_coef_pstr, & 1294 ! grid%obs_rinxy, & 1295 ! grid%obs_rinsig, & 1296 ! grid%obs_twindo, & 1297 ! grid%obs_npfi, & 1298 ! grid%obs_ionf, & 1299 ! grid%obs_idynin, & 1300 ! grid%obs_dtramp, & 1301 ! model_config_rec%cen_lat(1), & 1302 ! model_config_rec%cen_lon(1), & 1303 ! config_flags%truelat1, & 1304 ! config_flags%truelat2, & 1305 ! config_flags%map_proj, & 1306 ! model_config_rec%i_parent_start, & 1307 ! model_config_rec%j_parent_start, & 1308 ! grid%parent_grid_ratio, & 1309 ! grid%max_dom, grid%itimestep, & 1310 ! grid%dt, grid%gmt, grid%julday, grid%fdob, & 1311 ! grid%max_obs, & 1312 ! model_config_rec%nobs_ndg_vars, & 1313 ! model_config_rec%nobs_err_flds, & 1314 ! grid%fdob%nstat, grid%fdob%varobs, grid%fdob%errf, & 1315 ! grid%dx, grid%KPBL,grid%HT, & 1316 ! grid%em_mut, grid%em_muu, grid%em_muv, & 1317 ! grid%msft, grid%msfu, grid%msfv, & 1318 ! p_phy, t_tendf, t0, & 1319 ! grid%em_u_2, grid%em_v_2, grid%em_t_2, & 1320 ! moist(:,:,:,P_QV), & 1321 ! grid%em_pb, grid%p_top, grid%em_p, & 1322 ! grid%uratx, grid%vratx, grid%tratx, & 1323 ! ru_tendf, rv_tendf, & 1324 ! moist_tend(:,:,:,P_QV), grid%em_obs_savwt, & 1325 ! ids,ide, jds,jde, kds,kde, & 1326 ! ims,ime, jms,jme, kms,kme, & 1327 ! grid%i_start(ij), min(grid%i_end(ij),ide-1), & 1328 ! grid%j_start(ij), min(grid%j_end(ij),jde-1), & 1329 ! k_start , min(k_end,kde-1) ) 1330 ! 1331 ! ENDDO 1332 ! 1333 ! !$OMP END PARALLEL DO 1334 !! 1335 !!*********************************************************************** 1328 1336 1329 1337 END IF rk_step_is_one … … 3091 3099 !</DESCRIPTION> 3092 3100 3093 IF (config_flags%mp_physics /= 0) then 3094 3095 IF( config_flags%specified .or. config_flags%nested ) THEN 3096 sz = grid%spec_zone 3097 ELSE 3098 sz = 0 3099 ENDIF 3100 3101 !$OMP PARALLEL DO & 3102 !$OMP PRIVATE ( ij, its, ite, jts, jte ) 3103 3104 scalar_tile_loop_1a: DO ij = 1 , grid%num_tiles 3105 3106 IF ( config_flags%periodic_x ) THEN 3107 its = max(grid%i_start(ij),ids) 3108 ite = min(grid%i_end(ij),ide-1) 3109 ELSE 3110 its = max(grid%i_start(ij),ids+sz) 3111 ite = min(grid%i_end(ij),ide-1-sz) 3112 ENDIF 3113 jts = max(grid%j_start(ij),jds+sz) 3114 jte = min(grid%j_end(ij),jde-1-sz) 3115 3116 CALL wrf_debug ( 200 , ' call moist_physics_prep' ) 3117 BENCH_START(moist_physics_prep_tim) 3118 CALL moist_physics_prep_em( grid%em_t_2, grid%em_t_1, t0, rho, & 3119 grid%em_al, grid%em_alb, grid%em_p, p8w, p0, grid%em_pb, & 3120 grid%em_ph_2, grid%em_phb, th_phy, pi_phy, p_phy, & 3121 grid%em_z, z_at_w, dz8w, & 3122 dtm, grid%h_diabatic, & 3123 config_flags,grid%em_fnm, grid%em_fnp, & 3124 ids, ide, jds, jde, kds, kde, & 3125 ims, ime, jms, jme, kms, kme, & 3126 its, ite, jts, jte, & 3127 k_start , k_end ) 3128 BENCH_END(moist_physics_prep_tim) 3129 END DO scalar_tile_loop_1a 3130 !$OMP END PARALLEL DO 3131 3132 CALL wrf_debug ( 200 , ' call microphysics_driver' ) 3133 3134 grid%em_sr = 0. 3135 specified_bdy = config_flags%specified .OR. config_flags%nested 3136 channel_bdy = config_flags%specified .AND. config_flags%periodic_x 3137 3138 #if 0 3139 BENCH_START(microswap_1) 3140 ! for load balancing; communication to redistribute the points 3141 IF ( config_flags%mp_physics .EQ. ETAMPNEW ) THEN 3142 #include "SWAP_ETAMP_NEW.inc" 3143 ELSE IF ( config_flags%mp_physics .EQ. WSM3SCHEME ) THEN 3144 #include "SWAP_WSM3.inc" 3145 ENDIF 3146 BENCH_END(microswap_1) 3147 #endif 3148 3149 BENCH_START(micro_driver_tim) 3150 3151 CALL microphysics_driver( & 3152 & DT=dtm ,DX=grid%dx ,DY=grid%dy & 3153 & ,DZ8W=dz8w ,F_ICE_PHY=grid%f_ice_phy & 3154 & ,ITIMESTEP=grid%itimestep ,LOWLYR=grid%lowlyr & 3155 & ,P8W=p8w ,P=p_phy ,PI_PHY=pi_phy & 3156 & ,RHO=rho ,SPEC_ZONE=grid%spec_zone & 3157 & ,SR=grid%em_sr ,TH=th_phy & 3158 & ,WARM_RAIN=grid%warm_rain ,XLAND=grid%xland & 3159 & ,SPECIFIED=specified_bdy, CHANNEL_SWITCH=channel_bdy & 3160 & ,F_RAIN_PHY=grid%f_rain_phy & 3161 & ,F_RIMEF_PHY=grid%f_rimef_phy & 3162 & ,MP_PHYSICS=config_flags%mp_physics & 3163 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 3164 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 3165 & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 3166 & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 3167 & ,KTS=k_start, KTE=min(k_end,kde-1) & 3168 & ,NUM_TILES=grid%num_tiles & 3169 ! Optional 3170 & , RAINNC=grid%rainnc, RAINNCV=grid%rainncv & 3171 & , SNOWNC=grid%snownc, SNOWNCV=grid%snowncv & 3172 & , GRAUPELNC=grid%graupelnc, GRAUPELNCV=grid%graupelncv & 3173 & , W=grid%em_w_2, Z=grid%em_z, HT=grid%ht & 3174 & , MP_RESTART_STATE=grid%mp_restart_state & 3175 & , TBPVS_STATE=grid%tbpvs_state & ! etampnew 3176 & , TBPVS0_STATE=grid%tbpvs0_state & ! etampnew 3177 & , QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 3178 & , QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 3179 & , QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 3180 & , QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 3181 & , QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 3182 & , QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 3183 & , QNI_CURR=scalar(ims,kms,jms,P_QNI), F_QNI=F_QNI & 3184 & , QT_CURR=scalar(ims,kms,jms,P_QT), F_QT=F_QT & 3185 ) 3186 BENCH_END(micro_driver_tim) 3187 3188 #if 0 3189 BENCH_START(microswap_2) 3190 ! for load balancing; communication to redistribute the points 3191 IF ( config_flags%mp_physics .EQ. ETAMPNEW ) THEN 3192 #include "SWAP_ETAMP_NEW.inc" 3193 ELSE IF ( config_flags%mp_physics .EQ. WSM3SCHEME ) THEN 3194 #include "SWAP_WSM3.inc" 3195 ENDIF 3196 BENCH_END(microswap_2) 3197 #endif 3198 3199 CALL wrf_debug ( 200 , ' call moist_physics_finish' ) 3200 BENCH_START(moist_phys_end_tim) 3201 !$OMP PARALLEL DO & 3202 !$OMP PRIVATE ( ij, its, ite, jts, jte ) 3203 3204 scalar_tile_loop_1b: DO ij = 1 , grid%num_tiles 3205 3206 IF ( config_flags%periodic_x ) THEN 3207 its = max(grid%i_start(ij),ids) 3208 ite = min(grid%i_end(ij),ide-1) 3209 ELSE 3210 its = max(grid%i_start(ij),ids+sz) 3211 ite = min(grid%i_end(ij),ide-1-sz) 3212 ENDIF 3213 jts = max(grid%j_start(ij),jds+sz) 3214 jte = min(grid%j_end(ij),jde-1-sz) 3215 3216 CALL microphysics_zero_out ( & 3217 moist , num_moist , config_flags , & 3218 ids, ide, jds, jde, kds, kde, & 3219 ims, ime, jms, jme, kms, kme, & 3220 its, ite, jts, jte, & 3221 k_start , k_end ) 3222 3223 CALL moist_physics_finish_em( grid%em_t_2, grid%em_t_1, t0, grid%em_muts, th_phy, & 3224 grid%h_diabatic, dtm, config_flags, & 3225 ids, ide, jds, jde, kds, kde, & 3226 ims, ime, jms, jme, kms, kme, & 3227 its, ite, jts, jte, & 3228 k_start , k_end ) 3229 3230 CALL calc_p_rho_phi( moist, num_3d_m, & 3231 grid%em_al, grid%em_alb, grid%em_mu_2, grid%em_muts, & 3232 grid%em_ph_2, grid%em_p, grid%em_pb, grid%em_t_2, & 3233 p0, t0, grid%em_znu, grid%em_dnw, grid%em_rdnw, & 3234 grid%em_rdn, config_flags%non_hydrostatic, & 3235 ids, ide, jds, jde, kds, kde, & 3236 ims, ime, jms, jme, kms, kme, & 3237 its, ite, jts, jte, & 3238 k_start , k_end ) 3239 3240 END DO scalar_tile_loop_1b 3241 !$OMP END PARALLEL DO 3242 BENCH_END(moist_phys_end_tim) 3243 3244 ENDIF 3101 !!!******MARS MARS 3102 !!!******MARS MARS 3103 !!!******MARS MARS 3104 3105 ! IF (config_flags%mp_physics /= 0) then 3106 ! 3107 ! IF( config_flags%specified .or. config_flags%nested ) THEN 3108 ! sz = grid%spec_zone 3109 ! ELSE 3110 ! sz = 0 3111 ! ENDIF 3112 ! 3113 ! !$OMP PARALLEL DO & 3114 ! !$OMP PRIVATE ( ij, its, ite, jts, jte ) 3115 ! 3116 ! scalar_tile_loop_1a: DO ij = 1 , grid%num_tiles 3117 ! 3118 ! IF ( config_flags%periodic_x ) THEN 3119 ! its = max(grid%i_start(ij),ids) 3120 ! ite = min(grid%i_end(ij),ide-1) 3121 ! ELSE 3122 ! its = max(grid%i_start(ij),ids+sz) 3123 ! ite = min(grid%i_end(ij),ide-1-sz) 3124 ! ENDIF 3125 ! jts = max(grid%j_start(ij),jds+sz) 3126 ! jte = min(grid%j_end(ij),jde-1-sz) 3127 ! 3128 ! CALL wrf_debug ( 200 , ' call moist_physics_prep' ) 3129 !BENCH_START(moist_physics_prep_tim) 3130 ! CALL moist_physics_prep_em( grid%em_t_2, grid%em_t_1, t0, rho, & 3131 ! grid%em_al, grid%em_alb, grid%em_p, p8w, p0, grid%em_pb, & 3132 ! grid%em_ph_2, grid%em_phb, th_phy, pi_phy, p_phy, & 3133 ! grid%em_z, z_at_w, dz8w, & 3134 ! dtm, grid%h_diabatic, & 3135 ! config_flags,grid%em_fnm, grid%em_fnp, & 3136 ! ids, ide, jds, jde, kds, kde, & 3137 ! ims, ime, jms, jme, kms, kme, & 3138 ! its, ite, jts, jte, & 3139 ! k_start , k_end ) 3140 !BENCH_END(moist_physics_prep_tim) 3141 ! END DO scalar_tile_loop_1a 3142 ! !$OMP END PARALLEL DO 3143 ! 3144 ! CALL wrf_debug ( 200 , ' call microphysics_driver' ) 3145 ! 3146 ! grid%em_sr = 0. 3147 ! specified_bdy = config_flags%specified .OR. config_flags%nested 3148 ! channel_bdy = config_flags%specified .AND. config_flags%periodic_x 3149 ! 3150 !#if 0 3151 !BENCH_START(microswap_1) 3152 !! for load balancing; communication to redistribute the points 3153 ! IF ( config_flags%mp_physics .EQ. ETAMPNEW ) THEN 3154 !#include "SWAP_ETAMP_NEW.inc" 3155 ! ELSE IF ( config_flags%mp_physics .EQ. WSM3SCHEME ) THEN 3156 !#include "SWAP_WSM3.inc" 3157 ! ENDIF 3158 !BENCH_END(microswap_1) 3159 !#endif 3160 ! 3161 !BENCH_START(micro_driver_tim) 3162 ! 3163 ! CALL microphysics_driver( & 3164 ! & DT=dtm ,DX=grid%dx ,DY=grid%dy & 3165 ! & ,DZ8W=dz8w ,F_ICE_PHY=grid%f_ice_phy & 3166 ! & ,ITIMESTEP=grid%itimestep ,LOWLYR=grid%lowlyr & 3167 ! & ,P8W=p8w ,P=p_phy ,PI_PHY=pi_phy & 3168 ! & ,RHO=rho ,SPEC_ZONE=grid%spec_zone & 3169 ! & ,SR=grid%em_sr ,TH=th_phy & 3170 ! & ,WARM_RAIN=grid%warm_rain ,XLAND=grid%xland & 3171 ! & ,SPECIFIED=specified_bdy, CHANNEL_SWITCH=channel_bdy & 3172 ! & ,F_RAIN_PHY=grid%f_rain_phy & 3173 ! & ,F_RIMEF_PHY=grid%f_rimef_phy & 3174 ! & ,MP_PHYSICS=config_flags%mp_physics & 3175 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 3176 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 3177 ! & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 3178 ! & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 3179 ! & ,KTS=k_start, KTE=min(k_end,kde-1) & 3180 ! & ,NUM_TILES=grid%num_tiles & 3181 ! ! Optional 3182 ! & , RAINNC=grid%rainnc, RAINNCV=grid%rainncv & 3183 ! & , SNOWNC=grid%snownc, SNOWNCV=grid%snowncv & 3184 ! & , GRAUPELNC=grid%graupelnc, GRAUPELNCV=grid%graupelncv & 3185 ! & , W=grid%em_w_2, Z=grid%em_z, HT=grid%ht & 3186 ! & , MP_RESTART_STATE=grid%mp_restart_state & 3187 ! & , TBPVS_STATE=grid%tbpvs_state & ! etampnew 3188 ! & , TBPVS0_STATE=grid%tbpvs0_state & ! etampnew 3189 ! & , QV_CURR=moist(ims,kms,jms,P_QV), F_QV=F_QV & 3190 ! & , QC_CURR=moist(ims,kms,jms,P_QC), F_QC=F_QC & 3191 ! & , QR_CURR=moist(ims,kms,jms,P_QR), F_QR=F_QR & 3192 ! & , QI_CURR=moist(ims,kms,jms,P_QI), F_QI=F_QI & 3193 ! & , QS_CURR=moist(ims,kms,jms,P_QS), F_QS=F_QS & 3194 ! & , QG_CURR=moist(ims,kms,jms,P_QG), F_QG=F_QG & 3195 ! & , QNI_CURR=scalar(ims,kms,jms,P_QNI), F_QNI=F_QNI & 3196 ! & , QT_CURR=scalar(ims,kms,jms,P_QT), F_QT=F_QT & 3197 ! ) 3198 !BENCH_END(micro_driver_tim) 3199 ! 3200 !#if 0 3201 !BENCH_START(microswap_2) 3202 !! for load balancing; communication to redistribute the points 3203 ! IF ( config_flags%mp_physics .EQ. ETAMPNEW ) THEN 3204 !#include "SWAP_ETAMP_NEW.inc" 3205 ! ELSE IF ( config_flags%mp_physics .EQ. WSM3SCHEME ) THEN 3206 !#include "SWAP_WSM3.inc" 3207 ! ENDIF 3208 !BENCH_END(microswap_2) 3209 !#endif 3210 ! 3211 ! CALL wrf_debug ( 200 , ' call moist_physics_finish' ) 3212 !BENCH_START(moist_phys_end_tim) 3213 ! !$OMP PARALLEL DO & 3214 ! !$OMP PRIVATE ( ij, its, ite, jts, jte ) 3215 ! 3216 ! scalar_tile_loop_1b: DO ij = 1 , grid%num_tiles 3217 ! 3218 ! IF ( config_flags%periodic_x ) THEN 3219 ! its = max(grid%i_start(ij),ids) 3220 ! ite = min(grid%i_end(ij),ide-1) 3221 ! ELSE 3222 ! its = max(grid%i_start(ij),ids+sz) 3223 ! ite = min(grid%i_end(ij),ide-1-sz) 3224 ! ENDIF 3225 ! jts = max(grid%j_start(ij),jds+sz) 3226 ! jte = min(grid%j_end(ij),jde-1-sz) 3227 ! 3228 ! CALL microphysics_zero_out ( & 3229 ! moist , num_moist , config_flags , & 3230 ! ids, ide, jds, jde, kds, kde, & 3231 ! ims, ime, jms, jme, kms, kme, & 3232 ! its, ite, jts, jte, & 3233 ! k_start , k_end ) 3234 ! 3235 ! CALL moist_physics_finish_em( grid%em_t_2, grid%em_t_1, t0, grid%em_muts, th_phy, & 3236 ! grid%h_diabatic, dtm, config_flags, & 3237 ! ids, ide, jds, jde, kds, kde, & 3238 ! ims, ime, jms, jme, kms, kme, & 3239 ! its, ite, jts, jte, & 3240 ! k_start , k_end ) 3241 ! 3242 ! CALL calc_p_rho_phi( moist, num_3d_m, & 3243 ! grid%em_al, grid%em_alb, grid%em_mu_2, grid%em_muts, & 3244 ! grid%em_ph_2, grid%em_p, grid%em_pb, grid%em_t_2, & 3245 ! p0, t0, grid%em_znu, grid%em_dnw, grid%em_rdnw, & 3246 ! grid%em_rdn, config_flags%non_hydrostatic, & 3247 ! ids, ide, jds, jde, kds, kde, & 3248 ! ims, ime, jms, jme, kms, kme, & 3249 ! its, ite, jts, jte, & 3250 ! k_start , k_end ) 3251 ! 3252 ! END DO scalar_tile_loop_1b 3253 ! !$OMP END PARALLEL DO 3254 !BENCH_END(moist_phys_end_tim) 3255 ! 3256 ! ENDIF 3245 3257 3246 3258 … … 3424 3436 ! calculate some model diagnostics. 3425 3437 3426 CALL wrf_debug ( 200 , ' call diagnostic_driver' ) 3427 3428 CALL diagnostic_output_calc( & 3429 & DPSDT=grid%dpsdt ,DMUDT=grid%dmudt & 3430 & ,P_PHY=p_phy ,PK1M=grid%pk1m & 3431 & ,MU_2=grid%em_mu_2 ,MU_2M=grid%mu_2m & 3432 & ,U=grid%em_u_2 ,V=grid%em_v_2 & 3433 & ,RAINCV=grid%raincv ,RAINNCV=grid%rainncv & 3434 & ,RAINC=grid%rainc ,RAINNC=grid%rainnc & 3435 & ,HFX=grid%hfx ,SFCEVP=grid%sfcevp ,LH=grid%lh & 3436 & ,DT=grid%dt ,SBW=config_flags%spec_bdy_width & 3437 & ,XTIME=grid%xtime & 3438 ! Selection flag 3439 & ,DIAG_PRINT=config_flags%diag_print & 3440 ! Dimension arguments 3441 & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 3442 & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 3443 & ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe & 3444 & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 3445 & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 3446 & ,KTS=k_start, KTE=min(k_end,kde-1) & 3447 & ,NUM_TILES=grid%num_tiles & 3448 & ) 3438 !!!******MARS MARS 3439 !!!******MARS MARS 3440 3441 ! CALL wrf_debug ( 200 , ' call diagnostic_driver' ) 3442 ! 3443 ! CALL diagnostic_output_calc( & 3444 ! & DPSDT=grid%dpsdt ,DMUDT=grid%dmudt & 3445 ! & ,P_PHY=p_phy ,PK1M=grid%pk1m & 3446 ! & ,MU_2=grid%em_mu_2 ,MU_2M=grid%mu_2m & 3447 ! & ,U=grid%em_u_2 ,V=grid%em_v_2 & 3448 ! & ,RAINCV=grid%raincv ,RAINNCV=grid%rainncv & 3449 ! & ,RAINC=grid%rainc ,RAINNC=grid%rainnc & 3450 ! & ,HFX=grid%hfx ,SFCEVP=grid%sfcevp ,LH=grid%lh & 3451 ! & ,DT=grid%dt ,SBW=config_flags%spec_bdy_width & 3452 ! & ,XTIME=grid%xtime & 3453 ! ! Selection flag 3454 ! & ,DIAG_PRINT=config_flags%diag_print & 3455 ! ! Dimension arguments 3456 ! & ,IDS=ids,IDE=ide, JDS=jds,JDE=jde, KDS=kds,KDE=kde & 3457 ! & ,IMS=ims,IME=ime, JMS=jms,JME=jme, KMS=kms,KME=kme & 3458 ! & ,IPS=ips,IPE=ipe, JPS=jps,JPE=jpe, KPS=kps,KPE=kpe & 3459 ! & ,I_START=grid%i_start,I_END=min(grid%i_end, ide-1) & 3460 ! & ,J_START=grid%j_start,J_END=min(grid%j_end, jde-1) & 3461 ! & ,KTS=k_start, KTE=min(k_end,kde-1) & 3462 ! & ,NUM_TILES=grid%num_tiles & 3463 ! & ) 3449 3464 3450 3465 #ifdef DM_PARALLEL
Note: See TracChangeset
for help on using the changeset viewer.