24 #if defined DEBUG || defined QUICKDEBUG 
   51 #define F2H(k,p,idx) (CDZ(k+p-1)*GSQRT(k+p-1,i,j,idx)/(CDZ(k)*GSQRT(k,i,j,idx)+CDZ(k+1)*GSQRT(k+1,i,j,idx))) 
   53 #define F2H(k,p,idx) 0.5_RP 
   60   integer, 
parameter :: VA_FVM_HEVE = 0
 
   76     character(len=*),       
intent(in)  :: atmos_dyn_type
 
   77     integer,                
intent(out) :: va_out
 
   78     character(len=H_SHORT), 
intent(out) :: var_name(:)
 
   79     character(len=H_MID),   
intent(out) :: var_desc(:)
 
   80     character(len=H_SHORT), 
intent(out) :: var_unit(:)
 
   83     if ( atmos_dyn_type /= 
'FVM-HEVE' .AND. atmos_dyn_type /= 
'HEVE' ) 
then 
   84        log_error(
"ATMOS_DYN_Tstep_short_fvm_heve_regist",*) 
'ATMOS_DYN_TYPE is not FVM-HEVE. Check!' 
   94     log_info(
"ATMOS_DYN_Tstep_short_fvm_heve_regist",*) 
'Register additional prognostic variables (HEVE)' 
   95     if ( va_out < 1 ) 
then 
   96        log_info_cont(*) 
'=> nothing.' 
  110        DENS_RK, MOMZ_RK, MOMX_RK, MOMY_RK, RHOT_RK, &
 
  113        DENS0,   MOMZ0,   MOMX0,   MOMY0,   RHOT0,   &
 
  114        DENS,    MOMZ,    MOMX,    MOMY,    RHOT,    &
 
  115        DENS_t,  MOMZ_t,  MOMX_t,  MOMY_t,  RHOT_t,  &
 
  117        DPRES0, RT2P, CORIOLI,                       &
 
  118        num_diff, wdamp_coef, divdmp_coef, DDIV,     &
 
  119        FLAG_FCT_MOMENTUM, FLAG_FCT_T,               &
 
  120        FLAG_FCT_ALONG_STREAM,                       &
 
  121        CDZ, FDZ, FDX, FDY,                          &
 
  122        RCDZ, RCDX, RCDY, RFDZ, RFDX, RFDY,          &
 
  123        PHI, GSQRT, J13G, J23G, J33G, MAPF,          &
 
  124        REF_dens, REF_rhot,                          &
 
  125        BND_W, BND_E, BND_S, BND_N, TwoD,            &
 
  175     real(
rp), 
intent(out)        :: dens_rk (
ka,
ia,
ja)    
 
  176     real(
rp), 
intent(out)        :: momz_rk (
ka,
ia,
ja)    
 
  177     real(
rp), 
intent(out)        :: momx_rk (
ka,
ia,
ja)    
 
  178     real(
rp), 
intent(out)        :: momy_rk (
ka,
ia,
ja)    
 
  179     real(
rp), 
intent(out)        :: rhot_rk (
ka,
ia,
ja)    
 
  180     real(
rp), 
intent(out)        :: prog_rk (
ka,
ia,
ja,
va) 
 
  182     real(
rp), 
intent(inout)      :: mflx_hi (
ka,
ia,
ja,3)  
 
  183     real(
rp), 
intent(out)        :: tflx_hi (
ka,
ia,
ja,3)  
 
  185     real(
rp), 
intent(in), 
target :: dens0   (
ka,
ia,
ja)    
 
  186     real(
rp), 
intent(in), 
target :: momz0   (
ka,
ia,
ja)    
 
  187     real(
rp), 
intent(in), 
target :: momx0   (
ka,
ia,
ja)    
 
  188     real(
rp), 
intent(in), 
target :: momy0   (
ka,
ia,
ja)    
 
  189     real(
rp), 
intent(in), 
target :: rhot0   (
ka,
ia,
ja)    
 
  192     real(
rp), 
intent(in)         :: dens    (
ka,
ia,
ja)    
 
  193     real(
rp), 
intent(in)         :: momz    (
ka,
ia,
ja)    
 
  194     real(
rp), 
intent(in)         :: momx    (
ka,
ia,
ja)    
 
  195     real(
rp), 
intent(in)         :: momy    (
ka,
ia,
ja)    
 
  196     real(
rp), 
intent(in)         :: rhot    (
ka,
ia,
ja)    
 
  199     real(
rp), 
intent(in)         :: dens_t  (
ka,
ia,
ja)    
 
  200     real(
rp), 
intent(in)         :: momz_t  (
ka,
ia,
ja)    
 
  201     real(
rp), 
intent(in)         :: momx_t  (
ka,
ia,
ja)    
 
  202     real(
rp), 
intent(in)         :: momy_t  (
ka,
ia,
ja)    
 
  203     real(
rp), 
intent(in)         :: rhot_t  (
ka,
ia,
ja)    
 
  205     real(
rp), 
intent(in)         :: dpres0  (
ka,
ia,
ja)
 
  206     real(
rp), 
intent(in)         :: rt2p    (
ka,
ia,
ja)
 
  207     real(
rp), 
intent(in)         :: corioli (   
ia,
ja)
 
  208     real(
rp), 
intent(in)         :: num_diff(
ka,
ia,
ja,5,3)
 
  209     real(
rp), 
intent(in)         :: wdamp_coef(
ka)
 
  210     real(
rp), 
intent(in)         :: divdmp_coef
 
  211     real(
rp), 
intent(in)         :: ddiv    (
ka,
ia,
ja)
 
  213     logical,  
intent(in)         :: flag_fct_momentum
 
  214     logical,  
intent(in)         :: flag_fct_t
 
  215     logical,  
intent(in)         :: flag_fct_along_stream
 
  217     real(
rp), 
intent(in)         :: cdz (
ka)
 
  218     real(
rp), 
intent(in)         :: fdz (
ka-1)
 
  219     real(
rp), 
intent(in)         :: fdx (
ia-1)
 
  220     real(
rp), 
intent(in)         :: fdy (
ja-1)
 
  221     real(
rp), 
intent(in)         :: rcdz(
ka)
 
  222     real(
rp), 
intent(in)         :: rcdx(
ia)
 
  223     real(
rp), 
intent(in)         :: rcdy(
ja)
 
  224     real(
rp), 
intent(in)         :: rfdz(
ka-1)
 
  225     real(
rp), 
intent(in)         :: rfdx(
ia-1)
 
  226     real(
rp), 
intent(in)         :: rfdy(
ja-1)
 
  228     real(
rp), 
intent(in)         :: phi     (
ka,
ia,
ja)
 
  229     real(
rp), 
intent(in)         :: gsqrt   (
ka,
ia,
ja,7)
 
  230     real(
rp), 
intent(in)         :: j13g    (
ka,
ia,
ja,7)
 
  231     real(
rp), 
intent(in)         :: j23g    (
ka,
ia,
ja,7)
 
  232     real(
rp), 
intent(in)         :: j33g
 
  233     real(
rp), 
intent(in)         :: mapf    (
ia,
ja,2,4)
 
  234     real(
rp), 
intent(in)         :: ref_dens(
ka,
ia,
ja)
 
  235     real(
rp), 
intent(in)         :: ref_rhot(
ka,
ia,
ja)
 
  237     logical,  
intent(in)         :: bnd_w
 
  238     logical,  
intent(in)         :: bnd_e
 
  239     logical,  
intent(in)         :: bnd_s
 
  240     logical,  
intent(in)         :: bnd_n
 
  241     logical,  
intent(in)         :: twod
 
  243     real(
rp), 
intent(in)         :: dtrk
 
  244     logical,  
intent(in)         :: last
 
  285     integer  :: ifs_off, jfs_off
 
  298     qflx_lo(:,:,:,:) = undef
 
  299     qflx_anti(:,:,:,:) = undef
 
  300     tflx_lo(:,:,:,:) = undef
 
  301     tflx_anti(:,:,:,:) = undef
 
  305 #if defined DEBUG || defined QUICKDEBUG 
  306     dens_rk(   1:
ks-1,:,:)   = undef
 
  307     dens_rk(
ke+1:
ka  ,:,:)   = undef
 
  308     momz_rk(   1:
ks-1,:,:)   = undef
 
  309     momz_rk(
ke+1:
ka  ,:,:)   = undef
 
  310     momx_rk(   1:
ks-1,:,:)   = undef
 
  311     momx_rk(
ke+1:
ka  ,:,:)   = undef
 
  312     momy_rk(   1:
ks-1,:,:)   = undef
 
  313     momy_rk(
ke+1:
ka  ,:,:)   = undef
 
  314     rhot_rk(   1:
ks-1,:,:)   = undef
 
  315     rhot_rk(
ke+1:
ka  ,:,:)   = undef
 
  316     prog_rk(   1:
ks-1,:,:,:) = undef
 
  317     prog_rk(
ke+1:
ka  ,:,:,:) = undef
 
  333     if ( bnd_w ) ifs_off = 0
 
  334     if ( bnd_s ) jfs_off = 0
 
  348        do i = max(iis-1,1), min(iie+1,
ia)
 
  351              call check( __line__, dpres0(
k,i,j) )
 
  352              call check( __line__, rt2p(
k,i,j) )
 
  353              call check( __line__, rhot(
k,i,j) )
 
  354              call check( __line__, ref_rhot(
k,i,j) )
 
  356              dpres(
k,i,j) = dpres0(
k,i,j) + rt2p(
k,i,j) * ( rhot(
k,i,j) - ref_rhot(
k,i,j) )
 
  358           dpres(
ks-1,i,j) = dpres0(
ks-1,i,j) - dens(
ks,i,j) * ( phi(
ks-1,i,j) - phi(
ks+1,i,j) )
 
  359           dpres(
ke+1,i,j) = dpres0(
ke+1,i,j) - dens(
ke,i,j) * ( phi(
ke+1,i,j) - phi(
ke-1,i,j) )
 
  364        k = iundef; i = iundef; j = iundef
 
  371           call check( __line__, rhot(
k,i,j) )
 
  372           call check( __line__, dens(
k,i,j) )
 
  374           pott(
k,i,j) = rhot(
k,i,j) / dens(
k,i,j)
 
  382        k = iundef; i = iundef; j = iundef
 
  389     if ( flag_fct_momentum ) 
then 
  393        do i = max(
is-1,1), min(
ie+2,
ia)
 
  396           call check( __line__, momz0(
k,i,j) )
 
  397           call check( __line__, dens0(
k  ,i,j) )
 
  398           call check( __line__, dens0(
k+1,i,j) )
 
  400           velz(
k,i,j) = 2.0_rp * momz0(
k,i,j) / ( dens0(
k+1,i,j)+dens0(
k,i,j) )
 
  405        k = iundef; i = iundef; j = iundef
 
  409        do i = max(
is-1,1), min(
ie+2,
ia)
 
  410           velz(
ke,i,j) = 0.0_rp
 
  414        k = iundef; i = iundef; j = iundef
 
  422              call check( __line__, momx0(
k,
is,j) )
 
  423              call check( __line__, dens0(
k,
is,j) )
 
  425              velx(
k,
is,j) = momx0(
k,
is,j) / dens0(
k,
is,j)
 
  434              call check( __line__, momx0(
k,i,j) )
 
  435              call check( __line__, dens0(
k,i  ,j) )
 
  436              call check( __line__, dens0(
k,i+1,j) )
 
  438              velx(
k,i,j) = 2.0_rp * momx0(
k,i,j) / ( dens0(
k,i+1,j)+dens0(
k,i,j) )
 
  444        k = iundef; i = iundef; j = iundef
 
  449        do i = max(
is-1,1), min(
ie+2,
ia)
 
  452           call check( __line__, momy0(
k,i,j) )
 
  453           call check( __line__, dens0(
k,i,j  ) )
 
  454           call check( __line__, dens0(
k,i,j+1) )
 
  456           vely(
k,i,j) = 2.0_rp * momy0(
k,i,j) / ( dens0(
k,i,j+1)+dens0(
k,i,j) )
 
  461        k = iundef; i = iundef; j = iundef
 
  463        call comm_vars8( velz(:,:,:), 4 )
 
  464        call comm_vars8( velx(:,:,:), 5 )
 
  465        call comm_vars8( vely(:,:,:), 6 )
 
  490              call check( __line__, momz(
k+1,i,j) )
 
  491              call check( __line__, momz(
k  ,i,j) )
 
  492              call check( __line__, momz(
k-1,i,j) )
 
  495              mflx_hi(
k,i,j,
zdir) = j33g * momz(
k,i,j) / ( mapf(i,j,1,
i_xy)*mapf(i,j,2,
i_xy) ) &
 
  496                                  + j23g(
k,i,j,
i_xyw) * 0.25_rp * ( momy(
k+1,i,j)+momy(
k+1,i,j-1) &
 
  497                                                                  + momy(
k  ,i,j)+momy(
k  ,i,j-1) ) &
 
  499                                  + gsqrt(
k,i,j,
i_xyw) * num_diff(
k,i,j,
i_dens,
zdir) / ( mapf(i,j,1,
i_xy)*mapf(i,j,2,
i_xy) )
 
  510              call check( __line__, momz(
k+1,i,j) )
 
  511              call check( __line__, momz(
k  ,i,j) )
 
  512              call check( __line__, momz(
k-1,i,j) )
 
  515              mflx_hi(
k,i,j,
zdir) = j33g * momz(
k,i,j) / ( mapf(i,j,1,
i_xy)*mapf(i,j,2,
i_xy) ) &
 
  516                                  + j13g(
k,i,j,
i_xyw) * 0.25_rp * ( momx(
k+1,i,j)+momx(
k+1,i-1,j) &
 
  517                                                                  + momx(
k  ,i,j)+momx(
k  ,i-1,j) ) &
 
  519                                  + j23g(
k,i,j,
i_xyw) * 0.25_rp * ( momy(
k+1,i,j)+momy(
k+1,i,j-1) &
 
  520                                                                  + momy(
k  ,i,j)+momy(
k  ,i,j-1) ) &
 
  522                                  + gsqrt(
k,i,j,
i_xyw) * num_diff(
k,i,j,
i_dens,
zdir) / ( mapf(i,j,1,
i_xy)*mapf(i,j,2,
i_xy) )
 
  529        k = iundef; i = iundef; j = iundef
 
  535           mflx_hi(
ks-1,i,j,
zdir) = 0.0_rp
 
  536           mflx_hi(
ke  ,i,j,
zdir) = 0.0_rp
 
  541        k = iundef; i = iundef; j = iundef
 
  546        if ( .not. twod ) 
then 
  549           do i = iis-ifs_off, min(iie,
ieh)
 
  552              call check( __line__, momx(
k,i+1,j) )
 
  553              call check( __line__, momx(
k,i  ,j) )
 
  554              call check( __line__, momx(
k,i-1,j) )
 
  565        k = iundef; i = iundef; j = iundef
 
  571        do j = jjs-jfs_off, min(jje,
jeh)
 
  575           call check( __line__, momy(
k,i,j+1) )
 
  576           call check( __line__, momy(
k,i,j  ) )
 
  577           call check( __line__, momy(
k,i,j-1) )
 
  588        k = iundef; i = iundef; j = iundef
 
  598              call check( __line__, dens0(
k,
is,j) )
 
  603              call check( __line__, dens_t(
k,
is,j) )
 
  606              advch = - ( mflx_hi(
k,
is,j,
ydir)-mflx_hi(
k  ,
is,j-1,
ydir) ) * rcdy(j)
 
  607              dens_rk(
k,
is,j) = dens0(
k,
is,j) &
 
  608                              + dtrk * ( ( advcv + advch ) * mapf(
is,j,2,
i_xy) / gsqrt(
k,
is,j,
i_xyz) &
 
  625              call check( __line__, dens0(
k,i,j) )
 
  626              call check( __line__, mflx_hi(
k  ,i  ,j  ,
zdir) )
 
  627              call check( __line__, mflx_hi(
k-1,i  ,j  ,
zdir) )
 
  628              call check( __line__, mflx_hi(
k  ,i  ,j  ,
xdir) )
 
  629              call check( __line__, mflx_hi(
k  ,i-1,j  ,
xdir) )
 
  630              call check( __line__, mflx_hi(
k  ,i  ,j  ,
ydir) )
 
  631              call check( __line__, mflx_hi(
k  ,i  ,j-1,
ydir) )
 
  632              call check( __line__, dens_t(
k,i,j) )
 
  634              advcv = - ( mflx_hi(
k,i,j,
zdir)-mflx_hi(
k-1,i,  j,  
zdir) ) * rcdz(
k)
 
  635              advch = - ( mflx_hi(
k,i,j,
xdir)-mflx_hi(
k  ,i-1,j,  
xdir) ) * rcdx(i) &
 
  636                      - ( mflx_hi(
k,i,j,
ydir)-mflx_hi(
k  ,i,  j-1,
ydir) ) * rcdy(j)
 
  637              dens_rk(
k,i,j) = dens0(
k,i,j) &
 
  638                             + dtrk * ( ( advcv + advch ) * mapf(i,j,1,
i_xy) * mapf(i,j,2,
i_xy) / gsqrt(
k,i,j,
i_xyz) &
 
  642                 advcv_t(
k,i,j,
i_dens) = advcv * mapf(i,j,1,
i_xy) * mapf(i,j,2,
i_xy) / gsqrt(
k,i,j,
i_xyz)
 
  643                 advch_t(
k,i,j,
i_dens) = advch * mapf(i,j,1,
i_xy) * mapf(i,j,2,
i_xy) / gsqrt(
k,i,j,
i_xyz)
 
  655        k = iundef; i = iundef; j = iundef
 
  668             gsqrt(:,:,:,
i_xyz), j33g, & 
 
  675             gsqrt(:,:,:,
i_xyz), j13g(:,:,:,
i_xyz), mapf(:,:,:,
i_xy), & 
 
  680             gsqrt(:,:,:,
i_xyz), j23g(:,:,:,
i_xyz), mapf(:,:,:,
i_xy), & 
 
  710           pgf(
k,i,j) = j33g * ( dpres(
k+1,i,j)-dpres(
k,i,j) ) * rfdz(
k) 
 
  723           buoy(
k,i,j) = grav * gsqrt(
k,i,j,
i_xyw) &
 
  724                * 0.5_rp * ( ( dens(
k+1,i,j)-ref_dens(
k+1,i,j) ) &
 
  725                           + ( dens(
k  ,i,j)-ref_dens(
k  ,i,j) ) )
 
  742              call check( __line__, ddiv(
k  ,
is,j) )
 
  743              call check( __line__, ddiv(
k+1,
is,j) )
 
  744              call check( __line__, momz0(
k,
is,j) )
 
  745              call check( __line__, momz_t(
k,
is,j) )
 
  748                        + qflx_j23(
k,
is,j)      - qflx_j23(
k-1,
is,j)        ) * rfdz(
k)
 
  749              advch = - ( qflx_hi(
k,
is,j,
ydir) - qflx_hi(
k,
is,j-1,
ydir) ) * rcdy(j) &
 
  751              wdamp = - wdamp_coef(
k) * momz0(
k,
is,j)
 
  752              div = divdmp_coef / dtrk * fdz(
k) * ( ddiv(
k+1,
is,j)-ddiv(
k,
is,j) ) 
 
  753              momz_rk(
k,
is,j) = momz0(
k,
is,j) &
 
  754                             + dtrk * ( ( advcv + advch         &
 
  765                 pg_t(
k,
is,j,1) = ( - pgf(
k,
is,j) - buoy(
k,
is,j) ) / gsqrt(
k,
is,j,
i_xyw)
 
  766                 wdmp_t(
k,
is,j) = wdamp
 
  767                 ddiv_t(
k,
is,j,1) = div
 
  779              call check( __line__, qflx_hi(
k  ,i  ,j  ,
zdir) )
 
  780              call check( __line__, qflx_hi(
k-1,i  ,j  ,
zdir) )
 
  781              call check( __line__, qflx_hi(
k  ,i  ,j  ,
xdir) )
 
  782              call check( __line__, qflx_hi(
k  ,i-1,j  ,
xdir) )
 
  783              call check( __line__, qflx_hi(
k  ,i  ,j  ,
ydir) )
 
  784              call check( __line__, qflx_hi(
k  ,i  ,j-1,
ydir) )
 
  785              call check( __line__, ddiv(
k  ,i,j) )
 
  786              call check( __line__, ddiv(
k+1,i,j) )
 
  787              call check( __line__, momz0(
k,i,j) )
 
  788              call check( __line__, momz_t(
k,i,j) )
 
  790              advcv = - ( qflx_hi(
k,i,j,
zdir) - qflx_hi(
k-1,i  ,j  ,
zdir) &
 
  791                        + qflx_j13(
k,i,j)      - qflx_j13(
k-1,i,j) &
 
  792                        + qflx_j23(
k,i,j)      - qflx_j23(
k-1,i,j)          ) * rfdz(
k)
 
  793              advch = - ( ( qflx_hi(
k,i,j,
xdir) - qflx_hi(
k,i-1,j,
xdir) ) * rcdx(i) &
 
  794                        + ( qflx_hi(
k,i,j,
ydir) - qflx_hi(
k,i,j-1,
ydir) ) * rcdy(j) ) &
 
  795                      * mapf(i,j,1,
i_xy) * mapf(i,j,2,
i_xy)
 
  796              wdamp = - wdamp_coef(
k) * momz0(
k,i,j)
 
  797              div = divdmp_coef / dtrk * fdz(
k) * ( ddiv(
k+1,i,j)-ddiv(
k,i,j) ) 
 
  798              momz_rk(
k,i,j) = momz0(
k,i,j) &
 
  799                             + dtrk * ( ( advcv + advch        &
 
  810                 pg_t(
k,i,j,1) = ( - pgf(
k,i,j) - buoy(
k,i,j) ) / gsqrt(
k,i,j,
i_xyw)
 
  811                 wdmp_t(
k,i,j) = wdamp
 
  812                 ddiv_t(
k,i,j,1) = div
 
  821        k = iundef; i = iundef; j = iundef
 
  827           momz_rk(
ks-1,i,j) = 0.0_rp
 
  828           momz_rk(
ke  ,i,j) = 0.0_rp
 
  833              pg_t(
ke,i,j,1) = 0.0_rp
 
  834              wdmp_t(
ke,i,j) = 0.0_rp
 
  835              ddiv_t(
ke,i,j,1) = 0.0_rp
 
  844        k = iundef; i = iundef; j = iundef
 
  848        if ( flag_fct_momentum ) 
then 
  855                gsqrt(:,:,:,
i_xyz), j33g, & 
 
  858                iis-1, iie+1, jjs-1, jje+1 ) 
 
  866                iis-1, iie+1, jjs-1, jje+1 ) 
 
  873                iis-1, iie+1, jjs-1, jje+1 ) 
 
  879     if ( flag_fct_momentum ) 
then 
  881        call comm_vars8( dens_rk, 1 )
 
  882        call comm_wait ( dens_rk, 1, .false. )
 
  887           qflx_hi(
k,i,j,
zdir) = qflx_hi(
k,i,j,
zdir) / ( mapf(i,j,1,
i_xy) * mapf(i,j,2,
i_xy) ) &
 
  888                               + qflx_j13(
k,i,j) + qflx_j23(
k,i,j)
 
  896           dens0_uvw(
k,i,j) = 0.5_rp * ( dens0(
k,i,j) + dens0(
k+1,i,j) )
 
  897           dens_uvw(
k,i,j) = 0.5_rp * ( dens_rk(
k,i,j) + dens_rk(
k+1,i,j) )
 
  904           dens_uvw(
ke,i,j) = dens_uvw(
ke-1,i,j)
 
  905           dens0_uvw(
ke,i,j) = dens0_uvw(
ke-1,i,j)
 
  909        call comm_wait ( velz(:,:,:), 4 )
 
  912                            velz, dens0_uvw, dens_uvw, & 
 
  916                            gsqrt(:,:,:,
i_xyw),        & 
 
  919                            flag_fct_along_stream      ) 
 
  931                 momz_rk(
k,
is,j) = momz_rk(
k,
is,j) &
 
  932                                + dtrk * ( ( qflx_anti(
k,
is,j,
zdir) - qflx_anti(
k-1,
is,j  ,
zdir) ) * rfdz(
k) &
 
  933                                         + ( qflx_anti(
k,
is,j,
ydir) - qflx_anti(
k  ,
is,j-1,
ydir) ) * rcdy(j) &
 
  943                 momz_rk(
k,i,j) = momz_rk(
k,i,j) &
 
  944                                + dtrk * (   ( qflx_anti(
k,i,j,
zdir) - qflx_anti(
k-1,i  ,j  ,
zdir) ) * rfdz(
k) &
 
  945                                         + ( ( qflx_anti(
k,i,j,
xdir) - qflx_anti(
k  ,i-1,j  ,
xdir) ) * rcdx(i) &
 
  946                                           + ( qflx_anti(
k,i,j,
ydir) - qflx_anti(
k  ,i  ,j-1,
ydir) ) * rcdy(j) ) &
 
  947                                         * mapf(i,j,1,
i_xy) * mapf(i,j,2,
i_xy) ) &
 
  960     qflx_hi(:,:,:,:) = undef
 
  978             gsqrt(:,:,:,
i_uyw), j33g, & 
 
  985             gsqrt(:,:,:,
i_uyz), j13g(:,:,:,
i_uyw), mapf(:,:,:,
i_uy), & 
 
  990             gsqrt(:,:,:,
i_uyz), j23g(:,:,:,
i_uyw), mapf(:,:,:,
i_uy), & 
 
 1002             iis, iie, jjs, jje ) 
 
 1010             iis, iie, jjs, jje ) 
 
 1017        if ( .not. twod ) 
then 
 1022              pgf(
k,i,j) = ( ( gsqrt(
k,i+1,j,
i_xyz) * dpres(
k,i+1,j) & 
 
 1023                             - gsqrt(
k,i  ,j,
i_xyz) * dpres(
k,i  ,j) & 
 
 1026                             * 0.5_rp * ( f2h(
k,1,
i_uyz) * ( dpres(
k+1,i+1,j)+dpres(
k+1,i,j) ) &
 
 1027                                        + f2h(
k,2,
i_uyz) * ( dpres(
k  ,i+1,j)+dpres(
k  ,i,j) ) ) & 
 
 1029                             * 0.5_rp * ( f2h(
k,1,
i_uyz) * ( dpres(
k  ,i+1,j)+dpres(
k  ,i,j) ) &
 
 1030                                        + f2h(
k,2,
i_uyz) * ( dpres(
k-1,i+1,j)+dpres(
k-1,i,j) ) ) & 
 
 1046              call check( __line__, momy(
k,
is,j  ) )
 
 1047              call check( __line__, momy(
k,
is,j-1) )
 
 1049              cor(
k,
is,j) = 0.5_rp * corioli(
is,j) * ( momy(
k,
is,j) + momy(
k,
is,j-1) )
 
 1059              call check( __line__, momy(
k,i  ,j  ) )
 
 1060              call check( __line__, momy(
k,i+1,j  ) )
 
 1061              call check( __line__, momy(
k,i  ,j-1) )
 
 1062              call check( __line__, momy(
k,i+1,j-1) )
 
 1064              cor(
k,i,j) = 0.125_rp * ( corioli(  i+1,j  )+corioli(  i,j  ) ) & 
 
 1065                                    * ( momy(
k,i+1,j  )+momy(
k,i,j  ) &
 
 1066                                      + momy(
k,i+1,j-1)+momy(
k,i,j-1) ) &  
 
 1067                          + 0.25_rp * mapf(i,j,1,
i_uy) * mapf(i,j,2,
i_uy) &
 
 1068                          * ( momy(
k,i,j) + momy(
k,i,j-1) + momy(
k,i+1,j) + momy(
k,i+1,j-1) ) &
 
 1069                          * ( ( momy(
k,i,j) + momy(
k,i,j-1) + momy(
k,i+1,j) + momy(
k,i+1,j-1) ) * 0.25_rp &
 
 1070                            * ( 1.0_rp/mapf(i+1,j,2,
i_xy) - 1.0_rp/mapf(i,j,2,
i_xy) ) * rfdx(i) &
 
 1072                            * ( 1.0_rp/mapf(i,j,1,
i_uv) - 1.0_rp/mapf(i,j-1,1,
i_uv) ) * rcdy(j) ) &
 
 1073                          * 2.0_rp / ( dens(
k,i+1,j) + dens(
k,i,j) ) 
 
 1091              call check( __line__, momx0(
k,
is,j) )
 
 1095                        + qflx_j23(
k,
is,j)      - qflx_j23(
k-1,
is,j)        ) * rcdz(
k)
 
 1096              advch = - ( qflx_hi(
k,
is,j,
ydir) - qflx_hi(
k  ,
is,j-1,
ydir) ) * rcdy(j) &
 
 1098              momx_rk(
k,
is,j) = momx0(
k,
is,j) &
 
 1099                             + dtrk * ( ( advcv + advch         & 
 
 1108                 pg_t(
k,
is,j,2) = 0.0_rp
 
 1109                 cf_t(
k,
is,j,1) = cor(
k,i,j)
 
 1110                 ddiv_t(
k,
is,j,2) = 0.0_rp
 
 1119           do i = iis, min(iie, 
ieh)
 
 1122              call check( __line__, qflx_hi(
k  ,i  ,j  ,
zdir) )
 
 1123              call check( __line__, qflx_hi(
k-1,i  ,j  ,
zdir) )
 
 1124              call check( __line__, qflx_hi(
k  ,i  ,j  ,
xdir) )
 
 1125              call check( __line__, qflx_hi(
k  ,i-1,j  ,
xdir) )
 
 1126              call check( __line__, qflx_hi(
k  ,i  ,j  ,
ydir) )
 
 1127              call check( __line__, qflx_hi(
k  ,i  ,j-1,
ydir) )
 
 1128              call check( __line__, ddiv(
k,i+1,j) )
 
 1129              call check( __line__, ddiv(
k,i  ,j) )
 
 1130              call check( __line__, momx0(
k,i,j) )
 
 1133              advcv = - ( qflx_hi(
k,i,j,
zdir) - qflx_hi(
k-1,i  ,j  ,
zdir) &
 
 1134                        + qflx_j13(
k,i,j)      - qflx_j13(
k-1,i,j)          &
 
 1135                        + qflx_j23(
k,i,j)      - qflx_j23(
k-1,i,j)          ) * rcdz(
k)
 
 1136              advch = - ( ( qflx_hi(
k,i,j,
xdir) - qflx_hi(
k  ,i-1,j  ,
xdir) ) * rfdx(i) &
 
 1137                        + ( qflx_hi(
k,i,j,
ydir) - qflx_hi(
k  ,i  ,j-1,
ydir) ) * rcdy(j) ) &
 
 1138                      * mapf(i,j,1,
i_uy) * mapf(i,j,2,
i_uy)
 
 1139              div = divdmp_coef / dtrk * fdx(i) * ( ddiv(
k,i+1,j)-ddiv(
k,i,j) ) 
 
 1140              momx_rk(
k,i,j) = momx0(
k,i,j) &
 
 1141                             + dtrk * ( ( advcv + advch        & 
 
 1151                 pg_t(
k,i,j,2) = - pgf(
k,i,j) / gsqrt(
k,i,j,
i_uyz)
 
 1152                 cf_t(
k,i,j,1) = cor(
k,i,j)
 
 1153                 ddiv_t(
k,i,j,2) = div
 
 1164        k = iundef; i = iundef; j = iundef
 
 1168        if ( flag_fct_momentum ) 
then 
 1171                momz, momx0, dens, & 
 
 1172                gsqrt(:,:,:,
i_uyw), j33g, & 
 
 1175                iis-1, iie+1, jjs-1, jje+1 ) 
 
 1180                momx, momx0, dens, & 
 
 1184                iis-1, iie+1, jjs-1, jje+1 ) 
 
 1187                momy, momx0, dens, & 
 
 1191                iis-1, iie+1, jjs-1, jje+1 ) 
 
 1197     if ( flag_fct_momentum ) 
then 
 1203           qflx_hi(
k,i,j,
zdir) = qflx_hi(
k,i,j,
zdir) / ( mapf(i,j,1,
i_uy) * mapf(i,j,2,
i_uy) )&
 
 1204                               + qflx_j13(
k,i,j) + qflx_j23(
k,i,j)
 
 1213              dens0_uvw(
k,
is,j) = dens0(
k,
is,j)
 
 1214              dens_uvw(
k,
is,j)  = dens_rk(
k,
is,j)
 
 1222              dens0_uvw(
k,i,j) = 0.5_rp * ( dens0(
k,i,j) + dens0(
k,i+1,j) )
 
 1223              dens_uvw(
k,i,j)  = 0.5_rp * ( dens_rk(
k,i,j) + dens_rk(
k,i+1,j) )
 
 1229        call comm_wait ( velx(:,:,:), 5 )
 
 1232                            velx, dens0_uvw, dens_uvw, & 
 
 1236                            gsqrt(:,:,:,
i_uyz),        & 
 
 1239                            flag_fct_along_stream      ) 
 
 1252                 call check( __line__, momx_rk(
k,
is,j) )
 
 1258                 momx_rk(
k,
is,j) = momx_rk(
k,
is,j) &
 
 1259                                + dtrk * ( ( ( qflx_anti(
k,
is,j,
zdir) - qflx_anti(
k-1,
is,j  ,
zdir) ) * rcdz(
k) &
 
 1260                                           + ( qflx_anti(
k,
is,j,
ydir) - qflx_anti(
k  ,
is,j-1,
ydir) ) * rcdy(j) ) ) &
 
 1268              do i = iis, min(iie,
ieh)
 
 1271                 call check( __line__, momx_rk(
k,i,j) )
 
 1272                 call check( __line__, qflx_anti(
k  ,i  ,j  ,
zdir) )
 
 1273                 call check( __line__, qflx_anti(
k-1,i  ,j  ,
zdir) )
 
 1274                 call check( __line__, qflx_anti(
k  ,i  ,j  ,
xdir) )
 
 1275                 call check( __line__, qflx_anti(
k  ,i-1,j  ,
xdir) )
 
 1276                 call check( __line__, qflx_anti(
k  ,i  ,j  ,
ydir) )
 
 1277                 call check( __line__, qflx_anti(
k  ,i  ,j-1,
ydir) )
 
 1279                 momx_rk(
k,i,j) = momx_rk(
k,i,j) &
 
 1280                                + dtrk * ( ( ( qflx_anti(
k,i,j,
zdir) - qflx_anti(
k-1,i  ,j  ,
zdir) ) * rcdz(
k) &
 
 1281                                           + ( qflx_anti(
k,i,j,
xdir) - qflx_anti(
k  ,i-1,j  ,
xdir) ) * rfdx(i) &
 
 1282                                           + ( qflx_anti(
k,i,j,
ydir) - qflx_anti(
k  ,i  ,j-1,
ydir) ) * rcdy(j) ) ) &
 
 1283                                * mapf(i,j,1,
i_uy) * mapf(i,j,2,
i_uy) &
 
 1290           k = iundef; i = iundef; j = iundef
 
 1297        qflx_lo(:,:,:,:) = undef
 
 1298        qflx_anti(:,:,:,:) = undef
 
 1304     qflx_hi(:,:,:,:) = undef
 
 1322             gsqrt(:,:,:,
i_xvw), j33g, & 
 
 1325             iis, iie, jjs, jje ) 
 
 1329             gsqrt(:,:,:,
i_xvz), j13g(:,:,:,
i_xvw), mapf(:,:,:,
i_xv), & 
 
 1331             iis, iie, jjs, jje ) 
 
 1334             gsqrt(:,:,:,
i_xvz), j23g(:,:,:,
i_xvw), mapf(:,:,:,
i_xv), & 
 
 1336             iis, iie, jjs, jje ) 
 
 1345             iis, iie, jjs, jje ) 
 
 1354             iis, iie, jjs, jje ) 
 
 1365           pgf(
k,i,j) = ( ( gsqrt(
k,i,j+1,
i_xyz) * dpres(
k,i,j+1) & 
 
 1366                          - gsqrt(
k,i,j  ,
i_xyz) * dpres(
k,i,j  ) & 
 
 1369                          * 0.5_rp * ( f2h(
k  ,1,
i_xvz) * ( dpres(
k+1,i,j+1)+dpres(
k+1,i,j) ) &
 
 1370                                     + f2h(
k  ,2,
i_xvz) * ( dpres(
k  ,i,j+1)+dpres(
k  ,i,j) ) ) & 
 
 1372                          * 0.5_rp * ( f2h(
k-1,1,
i_xvz) * ( dpres(
k  ,i,j+1)+dpres(
k  ,i,j) ) &
 
 1373                                     + f2h(
k-1,2,
i_xvz) * ( dpres(
k-1,i,j+1)+dpres(
k-1,i,j) ) ) & 
 
 1388              call check( __line__, momx(
k,
is,j  ) )
 
 1389              call check( __line__, momx(
k,
is,j+1) )
 
 1391              cor(
k,
is,j) = - 0.25_rp * ( corioli(  
is,j+1)+corioli(  
is,j) ) & 
 
 1392                                      * ( momx(
k,
is,j+1)+momx(
k,
is,j) )
 
 1402              call check( __line__, momx(
k,i  ,j  ) )
 
 1403              call check( __line__, momx(
k,i  ,j+1) )
 
 1404              call check( __line__, momx(
k,i-1,j  ) )
 
 1405              call check( __line__, momx(
k,i-1,j+1) )
 
 1407              cor(
k,i,j) = - 0.125_rp * ( corioli(  i  ,j+1)+corioli(  i  ,j) ) & 
 
 1408                                      * ( momx(
k,i  ,j+1)+momx(
k,i  ,j) &
 
 1409                                        + momx(
k,i-1,j+1)+momx(
k,i-1,j) ) & 
 
 1410                         - 0.25_rp * mapf(i,j,1,
i_xv) * mapf(i,j,2,
i_xv) &
 
 1411                         * ( momx(
k,i,j) + momx(
k,i-1,j) + momx(
k,i,j+1) + momx(
k,i-1,j+1) )&
 
 1413                           * ( 1.0_rp/mapf(i,j,2,
i_uv) - 1.0_rp/mapf(i-1,j,2,
i_uv) ) * rcdx(i) &
 
 1414                           - 0.25_rp * ( momx(
k,i,j)+momx(
k,i-1,j)+momx(
k,i,j+1)+momx(
k,i-1,j+1) ) &
 
 1415                           * ( 1.0_rp/mapf(i,j+1,1,
i_xy) - 1.0_rp/mapf(i,j,1,
i_xy) ) * rfdy(j) ) &
 
 1416                         * 2.0_rp / ( dens(
k,i,j) + dens(
k,i,j+1) ) 
 
 1427           do j = jjs, min(jje, 
jeh)
 
 1434              call check( __line__, ddiv(
k,
is,j+1) )
 
 1435              call check( __line__, ddiv(
k,
is,j  ) )
 
 1436              call check( __line__, momy_t(
k,
is,j) )
 
 1437              call check( __line__, momy0(
k,
is,j) )
 
 1440                        + qflx_j23(
k,
is,j)      - qflx_j23(
k-1,
is,j)        ) * rcdz(
k)
 
 1441              advch = - ( qflx_hi(
k,
is,j,
ydir) - qflx_hi(
k  ,
is,j-1,
ydir) ) * rfdy(j) &
 
 1443              div = divdmp_coef / dtrk * fdy(j) * ( ddiv(
k,
is,j+1)-ddiv(
k,
is,j) )
 
 1444              momy_rk(
k,
is,j) = momy0(
k,
is,j) &
 
 1445                             + dtrk * ( ( advcv + advch         & 
 
 1456                 cf_t(
k,
is,j,2) = cor(
k,
is,j)
 
 1457                 ddiv_t(
k,
is,j,3) = div
 
 1465           do j = jjs, min(jje, 
jeh)
 
 1469              call check( __line__, qflx_hi(
k  ,i  ,j  ,
zdir) )
 
 1470              call check( __line__, qflx_hi(
k-1,i  ,j  ,
zdir) )
 
 1471              call check( __line__, qflx_hi(
k  ,i  ,j  ,
xdir) )
 
 1472              call check( __line__, qflx_hi(
k  ,i-1,j  ,
xdir) )
 
 1473              call check( __line__, qflx_hi(
k  ,i  ,j  ,
ydir) )
 
 1474              call check( __line__, qflx_hi(
k  ,i  ,j-1,
ydir) )
 
 1475              call check( __line__, ddiv(
k,i,j+1) )
 
 1476              call check( __line__, ddiv(
k,i,j  ) )
 
 1477              call check( __line__, momy_t(
k,i,j) )
 
 1478              call check( __line__, momy0(
k,i,j) )
 
 1480              advcv = - ( qflx_hi(
k,i,j,
zdir) - qflx_hi(
k-1,i  ,j  ,
zdir) &
 
 1481                        + qflx_j13(
k,i,j)      - qflx_j13(
k-1,i,j)          &
 
 1482                        + qflx_j23(
k,i,j)      - qflx_j23(
k-1,i,j)          ) * rcdz(
k)
 
 1483              advch = - ( ( qflx_hi(
k,i,j,
xdir) - qflx_hi(
k  ,i-1,j  ,
xdir) ) * rcdx(i) &
 
 1484                        + ( qflx_hi(
k,i,j,
ydir) - qflx_hi(
k  ,i  ,j-1,
ydir) ) * rfdy(j) ) &
 
 1485                    * mapf(i,j,1,
i_xv) * mapf(i,j,2,
i_xv)
 
 1486              div = divdmp_coef / dtrk * fdy(j) * ( ddiv(
k,i,j+1)-ddiv(
k,i,j) )
 
 1487              momy_rk(
k,i,j) = momy0(
k,i,j) &
 
 1488                             + dtrk * ( ( advcv + advch        & 
 
 1498                 pg_t(
k,i,j,3) = - pgf(
k,i,j) / gsqrt(
k,i,j,
i_uyz)
 
 1499                 cf_t(
k,i,j,2) = cor(
k,i,j)
 
 1500                 ddiv_t(
k,i,j,3) = div
 
 1511        k = iundef; i = iundef; j = iundef
 
 1515        if ( flag_fct_momentum ) 
then 
 1520                momz, momy0, dens, & 
 
 1521                gsqrt(:,:,:,
i_xvz), j33g, & 
 
 1524                iis-1, iie+1, jjs-1, jje+1 ) 
 
 1529                momx, momy0, dens, & 
 
 1533                iis-1, iie+1, jjs-1, jje+1 ) 
 
 1538                momy, momy0, dens, & 
 
 1542                iis-1, iie+1, jjs-1, jje+1 ) 
 
 1548     if ( flag_fct_momentum ) 
then 
 1553           qflx_hi(
k,i,j,
zdir) = qflx_hi(
k,i,j,
zdir) / ( mapf(i,j,1,
i_xv) * mapf(i,j,2,
i_xv) ) &
 
 1554                               + qflx_j13(
k,i,j) + qflx_j23(
k,i,j)
 
 1562           dens0_uvw(
k,i,j) = 0.5_rp * ( dens0(
k,i,j) + dens0(
k,i,j+1) )
 
 1563           dens_uvw(
k,i,j) = 0.5_rp * ( dens_rk(
k,i,j) + dens_rk(
k,i,j+1) )
 
 1568        call comm_wait ( vely(:,:,:), 6 )
 
 1571                            vely, dens0_uvw, dens_uvw, & 
 
 1575                            gsqrt(:,:,:,
i_xvz),        & 
 
 1578                            flag_fct_along_stream      ) 
 
 1588              do j = jjs, min(jje, 
jeh)
 
 1591                 call check( __line__, momy_rk(
k,
is,j) )
 
 1597                 momy_rk(
k,
is,j) = momy_rk(
k,
is,j) &
 
 1598                                + dtrk * ( ( ( qflx_anti(
k,
is,j,
zdir) - qflx_anti(
k-1,
is,j  ,
zdir) ) * rcdz(
k) &
 
 1599                                           + ( qflx_anti(
k,
is,j,
ydir) - qflx_anti(
k  ,
is,j-1,
ydir) ) * rfdy(j) ) ) &
 
 1607              do j = jjs, min(jje, 
jeh)
 
 1611                 call check( __line__, momy_rk(
k,i,j) )
 
 1612                 call check( __line__, qflx_anti(
k  ,i  ,j  ,
zdir) )
 
 1613                 call check( __line__, qflx_anti(
k-1,i  ,j  ,
zdir) )
 
 1614                 call check( __line__, qflx_anti(
k  ,i  ,j  ,
xdir) )
 
 1615                 call check( __line__, qflx_anti(
k  ,i-1,j  ,
xdir) )
 
 1616                 call check( __line__, qflx_anti(
k  ,i  ,j  ,
ydir) )
 
 1617                 call check( __line__, qflx_anti(
k  ,i  ,j-1,
ydir) )
 
 1619                 momy_rk(
k,i,j) = momy_rk(
k,i,j) &
 
 1620                                + dtrk * ( ( ( qflx_anti(
k,i,j,
zdir) - qflx_anti(
k-1,i  ,j  ,
zdir) ) * rcdz(
k) &
 
 1621                                           + ( qflx_anti(
k,i,j,
xdir) - qflx_anti(
k  ,i-1,j  ,
xdir) ) * rcdx(i) &
 
 1622                                           + ( qflx_anti(
k,i,j,
ydir) - qflx_anti(
k  ,i  ,j-1,
ydir) ) * rfdy(j) ) ) &
 
 1623                                * mapf(i,j,1,
i_xv) * mapf(i,j,2,
i_xv) &
 
 1630           k = iundef; i = iundef; j = iundef
 
 1637        qflx_lo(:,:,:,:) = undef
 
 1638        qflx_anti(:,:,:,:) = undef
 
 1643     qflx_hi(
ks:,:,:,:) = undef
 
 1660             mflx_hi(:,:,:,
zdir), pott, gsqrt(:,:,:,
i_xyw), & 
 
 1663             iis, iie, jjs, jje ) 
 
 1668             mflx_hi(:,:,:,
xdir), pott, gsqrt(:,:,:,
i_uyz), & 
 
 1671             iis, iie, jjs, jje ) 
 
 1675             mflx_hi(:,:,:,
ydir), pott, gsqrt(:,:,:,
i_xvz), & 
 
 1678             iis, iie, jjs, jje ) 
 
 1691              call check( __line__, rhot_t(
k,
is,j) )
 
 1692              call check( __line__, rhot0(
k,
is,j) )
 
 1694              advcv = - ( tflx_hi(
k,
is,j,
zdir) - tflx_hi(
k-1,
is,j  ,
zdir) ) * rcdz(
k)
 
 1695              advch = - ( tflx_hi(
k,
is,j,
ydir) - tflx_hi(
k  ,
is,j-1,
ydir) ) * rcdy(j)
 
 1696              rhot_rk(
k,
is,j) = rhot0(
k,
is,j) &
 
 1697                             + dtrk * ( ( advcv + advch ) * mapf(
is,j,2,
i_xy) / gsqrt(
k,
is,j,
i_xyz) &
 
 1713              call check( __line__, tflx_hi(
k  ,i  ,j  ,
zdir) )
 
 1714              call check( __line__, tflx_hi(
k-1,i  ,j  ,
zdir) )
 
 1715              call check( __line__, tflx_hi(
k  ,i  ,j  ,
xdir) )
 
 1716              call check( __line__, tflx_hi(
k  ,i-1,j  ,
xdir) )
 
 1717              call check( __line__, tflx_hi(
k  ,i  ,j  ,
ydir) )
 
 1718              call check( __line__, tflx_hi(
k  ,i  ,j-1,
ydir) )
 
 1719              call check( __line__, rhot_t(
k,i,j) )
 
 1720              call check( __line__, rhot0(
k,i,j) )
 
 1722              advcv = - ( tflx_hi(
k,i,j,
zdir) - tflx_hi(
k-1,i  ,j  ,
zdir) ) * rcdz(
k)
 
 1723              advch = - ( tflx_hi(
k,i,j,
xdir) - tflx_hi(
k  ,i-1,j  ,
xdir) ) * rcdx(i) &
 
 1724                      - ( tflx_hi(
k,i,j,
ydir) - tflx_hi(
k  ,i  ,j-1,
ydir) ) * rcdy(j)
 
 1725              rhot_rk(
k,i,j) = rhot0(
k,i,j) &
 
 1726                             + dtrk * ( ( advcv + advch ) * mapf(i,j,1,
i_xy) * mapf(i,j,2,
i_xy) / gsqrt(
k,i,j,
i_xyz) &
 
 1730                 advcv_t(
k,i,j,
i_rhot) = advcv * mapf(i,j,1,
i_xy) * mapf(i,j,2,
i_xy)/ gsqrt(
k,i,j,
i_xyz)
 
 1731                 advch_t(
k,i,j,
i_rhot) = advch * mapf(i,j,1,
i_xy) * mapf(i,j,2,
i_xy)/ gsqrt(
k,i,j,
i_xyz)
 
 1739        k = iundef; i = iundef; j = iundef
 
 1747     if ( flag_fct_t ) 
then 
 1749        call comm_vars8( mflx_hi(:,:,:,
zdir), 1 )
 
 1750        call comm_vars8( mflx_hi(:,:,:,
xdir), 2 )
 
 1751        call comm_vars8( mflx_hi(:,:,:,
ydir), 3 )
 
 1752        call comm_wait ( mflx_hi(:,:,:,
zdir), 1, .false. )
 
 1753        call comm_wait ( mflx_hi(:,:,:,
xdir), 2, .false. )
 
 1754        call comm_wait ( mflx_hi(:,:,:,
ydir), 3, .false. )
 
 1756        if ( .NOT. flag_fct_momentum ) 
then 
 1757           call comm_vars8( dens_rk, 1 )
 
 1758           call comm_wait ( dens_rk, 1, .false. )
 
 1765           pott(
k,i,j) = rhot0(
k,i,j) / dens0(
k,i,j)
 
 1778                mflx_hi(:,:,:,
zdir), pott, gsqrt(:,:,:,
i_xyz), & 
 
 1781                iis-1, iie+1, jjs-1, jje+1 ) 
 
 1786                mflx_hi(:,:,:,
xdir), pott, gsqrt(:,:,:,
i_uyz), & 
 
 1789                iis-1, iie+1, jjs-1, jje+1 ) 
 
 1793                mflx_hi(:,:,:,
ydir), pott, gsqrt(:,:,:,
i_xvz), & 
 
 1796                iis-1, iie+1, jjs-1, jje+1 ) 
 
 1802                            pott, dens0, dens_rk,    & 
 
 1806                            gsqrt(:,:,:,
i_xyz),      & 
 
 1809                            flag_fct_along_stream    ) 
 
 1823                 call check( __line__, rhot_rk(
k,
is,j) )
 
 1829                 rhot_rk(
k,
is,j) = rhot_rk(
k,
is,j) &
 
 1830                                + dtrk * ( ( tflx_anti(
k,
is,j,
zdir) - tflx_anti(
k-1,
is,j  ,
zdir) ) * rcdz(
k) &
 
 1831                                         + ( tflx_anti(
k,
is,j,
ydir) - tflx_anti(
k  ,
is,j-1,
ydir) ) * rcdy(j) ) &
 
 1843                 call check( __line__, rhot_rk(
k,i,j) )
 
 1844                 call check( __line__, tflx_anti(
k  ,i  ,j  ,
zdir) )
 
 1845                 call check( __line__, tflx_anti(
k-1,i  ,j  ,
zdir) )
 
 1846                 call check( __line__, tflx_anti(
k  ,i  ,j  ,
xdir) )
 
 1847                 call check( __line__, tflx_anti(
k  ,i-1,j  ,
xdir) )
 
 1848                 call check( __line__, tflx_anti(
k  ,i  ,j  ,
ydir) )
 
 1849                 call check( __line__, tflx_anti(
k  ,i  ,j-1,
ydir) )
 
 1851                 rhot_rk(
k,i,j) = rhot_rk(
k,i,j) &
 
 1852                                + dtrk * ( ( tflx_anti(
k,i,j,
zdir) - tflx_anti(
k-1,i  ,j  ,
zdir) ) * rcdz(
k) &
 
 1853                                         + ( tflx_anti(
k,i,j,
xdir) - tflx_anti(
k  ,i-1,j  ,
xdir) ) * rcdx(i) &
 
 1854                                         + ( tflx_anti(
k,i,j,
ydir) - tflx_anti(
k  ,i  ,j-1,
ydir) ) * rcdy(j) ) &
 
 1855                               * mapf(i,j,1,
i_xy) * mapf(i,j,2,
i_xy) &
 
 1862           k = iundef; i = iundef; j = iundef
 
 1871        call file_history_in(advcv_t(:,:,:,
i_dens), 
'DENS_t_advcv', 
'tendency of density    (vert. advection) (w/ HIST_TEND)',    
'kg/m3/s'   )
 
 1872        call file_history_in(advcv_t(:,:,:,
i_momz), 
'MOMZ_t_advcv', 
'tendency of momentum z (vert. advection) (w/ HIST_TEND)',    
'kg/m2/s2', dim_type=
'ZHXY')
 
 1873        call file_history_in(advcv_t(:,:,:,
i_momx), 
'MOMX_t_advcv', 
'tendency of momentum x (vert. advection) (w/ HIST_TEND)',    
'kg/m2/s2', dim_type=
'ZXHY')
 
 1874        call file_history_in(advcv_t(:,:,:,
i_momy), 
'MOMY_t_advcv', 
'tendency of momentum y (vert. advection) (w/ HIST_TEND)',    
'kg/m2/s2', dim_type=
'ZXYH')
 
 1875        call file_history_in(advcv_t(:,:,:,
i_rhot), 
'RHOT_t_advcv', 
'tendency of rho*theta  (vert. advection) (w/ HIST_TEND)',    
'K kg/m3/s' )
 
 1877        call file_history_in(advch_t(:,:,:,
i_dens), 
'DENS_t_advch', 
'tendency of density    (horiz. advection) (w/ HIST_TEND)',   
'kg/m3/s'   )
 
 1878        call file_history_in(advch_t(:,:,:,
i_momz), 
'MOMZ_t_advch', 
'tendency of momentum z (horiz. advection) (w/ HIST_TEND)',   
'kg/m2/s2', dim_type=
'ZHXY')
 
 1879        call file_history_in(advch_t(:,:,:,
i_momx), 
'MOMX_t_advch', 
'tendency of momentum x (horiz. advection) (w/ HIST_TEND)',   
'kg/m2/s2', dim_type=
'ZXHY')
 
 1880        call file_history_in(advch_t(:,:,:,
i_momy), 
'MOMY_t_advch', 
'tendency of momentum y (horiz. advection) (w/ HIST_TEND)',   
'kg/m2/s2', dim_type=
'ZXYH')
 
 1881        call file_history_in(advch_t(:,:,:,
i_rhot), 
'RHOT_t_advch', 
'tendency of rho*theta  (horiz. advection) (w/ HIST_TEND)',   
'K kg/m3/s' )
 
 1883        call file_history_in(pg_t(:,:,:,1),      
'MOMZ_t_pg',    
'tendency of momentum z (pressure gradient) (w/ HIST_TEND)',  
'kg/m2/s2', dim_type=
'ZHXY')
 
 1885        call file_history_in(pg_t(:,:,:,2),      
'MOMX_t_pg',    
'tendency of momentum x (pressure gradient) (w/ HIST_TEND)',  
'kg/m2/s2', dim_type=
'ZXHY')
 
 1886        call file_history_in(pg_t(:,:,:,3),      
'MOMY_t_pg',    
'tendency of momentum y (pressure gradient) (w/ HIST_TEND)',  
'kg/m2/s2', dim_type=
'ZXYH')
 
 1888        call file_history_in(wdmp_t(:,:,:),        
'MOMZ_t_wdamp', 
'tendency of momentum z (Rayleigh damping) (w/ HIST_TEND)',   
'kg/m2/s2', dim_type=
'ZHXY')
 
 1890        call file_history_in(ddiv_t(:,:,:,1),      
'MOMZ_t_ddiv',  
'tendency of momentum z (divergence damping) (w/ HIST_TEND)', 
'kg/m2/s2', dim_type=
'ZHXY')
 
 1892        call file_history_in(ddiv_t(:,:,:,2),      
'MOMX_t_ddiv',  
'tendency of momentum x (divergence damping) (w/ HIST_TEND)', 
'kg/m2/s2', dim_type=
'ZXHY')
 
 1893        call file_history_in(ddiv_t(:,:,:,3),      
'MOMY_t_ddiv',  
'tendency of momentum y (divergence damping) (w/ HIST_TEND)', 
'kg/m2/s2', dim_type=
'ZXYH')
 
 1895        call file_history_in(cf_t(:,:,:,1),      
'MOMX_t_cf',    
'tendency of momentum x (coliolis force) (w/ HIST_TEND)',     
'kg/m2/s2', dim_type=
'ZXHY')
 
 1896        call file_history_in(cf_t(:,:,:,2),      
'MOMY_t_cf',    
'tendency of momentum y (coliolis force) (w/ HIST_TEND)',     
'kg/m2/s2', dim_type=
'ZXYH')