!-------------------------------------- LICENCE BEGIN ------------------------------------ !Environment Canada - Atmospheric Science and Technology License/Disclaimer, ! version 3; Last Modified: May 7, 2008. !This is free but copyrighted software; you can use/redistribute/modify it under the terms !of the Environment Canada - Atmospheric Science and Technology License/Disclaimer !version 3 or (at your option) any later version that should be found at: !http://collaboration.cmc.ec.gc.ca/science/rpn.comm/license.html ! !This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; !without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. !See the above mentioned License/Disclaimer for more details. !You should have received a copy of the License/Disclaimer along with this software; !if not, you can write to: EC-RPN COMM Group, 2121 TransCanada, suite 500, Dorval (Quebec), !CANADA, H9P 1J3; or send e-mail to service.rpn@ec.gc.ca !-------------------------------------- LICENCE END -------------------------------------- ***s/r v4d_zero - Zero ALL model variables * #include "model_macros_f.h"*
subroutine v4d_zero 8 * implicit none * *author * M.Tanguay * *revision * v2_10 - Tanguay M. - initial MPI version * v2_31 - Tanguay M. - adapt ADJ for new advection code * - adapt for tracers in tr3d * v3_03 - Tanguay M. - Adjoint Lam and NoHyd configuration * v3_11 - Tanguay M. - ADJ of digital filter * v3_21 - Lee V. - removed Tr2d * v3_30 - Tanguay M. - Validation for LAM version * - adapt to bcs * v3_31 - Tanguay M. - Control BC * v3_31 - Tanguay M. - Introduce time extrapolation * v3_31 - Tanguay M. - SETTLS option * *object * see id section * *arguments * none * *implicits #include "lun.cdk"
#include "glb_ld.cdk"
#include "vt0.cdk"
#include "vt1.cdk"
#include "vtw.cdk"
#include "vth.cdk"
#include "vtx.cdk"
#include "vta.cdk"
#include "rhsc.cdk"
#include "orh.cdk"
cvl#include "tr2d.cdk" #include "tr3d.cdk"
#include "nest.cdk"
#include "schm.cdk"
#include "init.cdk"
#include "bcsdim.cdk"
#include "bcsmem.cdk"
#include "v4dg_bc.cdk"
#include "v4d_bc.cdk"
#include "step.cdk"
* *modules integer vmmlod,vmmget,vmmuld external vmmlod,vmmget,vmmuld integer pnerr, pnlkey1(50), key1_, key0_, key_, $ key1(Tr3d_ntr), key0(Tr3d_ntr), key(Tr3d_ntr), $ pnlod, err, i, j, k, n, keya_, keya(Tr3d_ntr), id * real tr,tr0,trf,tra pointer (patr, tr (LDIST_SHAPE,*)),(patr0, tr0(LDIST_SHAPE,*)), $ (patrf, trf(LDIST_SHAPE,*)),(patra, tra(LDIST_SHAPE,*)) * * #include "v4d_key_bc.cdk"
* cvl if ( Tr2d_ntr.ne.0 ) call gem_stop ('v4d_zero',-1) * if( Lun_debug_L ) then write(Lun_out,fmt='(/,''V4D_ZERO:Zero ALL model variables'')') write(Lun_out,fmt='( ''================================='')') endif * * --------------------------- * Zero comdeck vt0 * --------------------------- pnlkey1( 1)= VMM_KEY(ut0 ) pnlkey1( 2)= VMM_KEY(vt0 ) pnlkey1( 3)= VMM_KEY(wt0 ) pnlkey1( 4)= VMM_KEY(tdt0 ) pnlkey1( 5)= VMM_KEY(tt0 ) pnlkey1( 6)= VMM_KEY(fit0 ) pnlkey1( 7)= VMM_KEY(qt0 ) pnlkey1( 8)= VMM_KEY(tpt0 ) pnlkey1( 9)= VMM_KEY(fipt0) pnlkey1(10)= VMM_KEY(qpt0 ) pnlkey1(11)= VMM_KEY(pipt0) pnlkey1(12)= VMM_KEY(tplt0) pnlkey1(13)= VMM_KEY(psdt0) pnlkey1(14)= VMM_KEY(st0 ) pnlod = 14 * if (.not. Schm_hydro_L) then pnlkey1(pnlod+1)= VMM_KEY(mut0) pnlod = pnlod+1 endif * pnerr = vmmlod(pnlkey1,pnlod) pnerr = VMM_GET_VAR(ut0 ) pnerr = VMM_GET_VAR(vt0 ) pnerr = VMM_GET_VAR(wt0 ) pnerr = VMM_GET_VAR(tdt0 ) pnerr = VMM_GET_VAR(tt0 ) pnerr = VMM_GET_VAR(fit0 ) pnerr = VMM_GET_VAR(qt0 ) pnerr = VMM_GET_VAR(tpt0 ) pnerr = VMM_GET_VAR(fipt0) pnerr = VMM_GET_VAR(qpt0 ) pnerr = VMM_GET_VAR(pipt0) pnerr = VMM_GET_VAR(tplt0) pnerr = VMM_GET_VAR(psdt0) pnerr = VMM_GET_VAR(st0 ) * if (.not. Schm_hydro_L) then pnerr = VMM_GET_VAR(mut0) endif * do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx ut0 (i,j,k) = 0. vt0 (i,j,k) = 0. wt0 (i,j,k) = 0. tdt0 (i,j,k) = 0. tt0 (i,j,k) = 0. fit0 (i,j,k) = 0. qt0 (i,j,k) = 0. qpt0 (i,j,k) = 0. tpt0 (i,j,k) = 0. fipt0(i,j,k) = 0. pipt0(i,j,k) = 0. tplt0(i,j,k) = 0. psdt0(i,j,k) = 0. end do end do end do * if (.not. Schm_hydro_L) then do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx mut0 (i,j,k) = 0. end do end do end do end if * do j=l_miny,l_maxy do i=l_minx,l_maxx st0 (i,j) = 0. end do end do * pnerr = vmmuld( -1, 0 ) * key0_ = VMM_KEY (trt0) do n=1,Tr3d_ntr key0(n) = key0_ + n end do if (Tr3d_ntr.gt.0) then err = vmmlod(key0,Tr3d_ntr) do n=1,Tr3d_ntr err = vmmget(key0(n),patr0,tr0) do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx tr0(i,j,k) = 0. end do end do end do end do err = vmmuld(key0,Tr3d_ntr) endif * * --------------------------- * Zero comdeck vt1 * --------------------------- pnlkey1( 1)= VMM_KEY(ut1 ) pnlkey1( 2)= VMM_KEY(vt1 ) pnlkey1( 3)= VMM_KEY(wt1 ) pnlkey1( 4)= VMM_KEY(tdt1 ) pnlkey1( 5)= VMM_KEY(tt1 ) pnlkey1( 6)= VMM_KEY(fit1 ) pnlkey1( 7)= VMM_KEY(qt1 ) pnlkey1( 8)= VMM_KEY(tpt1 ) pnlkey1( 9)= VMM_KEY(fipt1) pnlkey1(10)= VMM_KEY(qpt1 ) pnlkey1(11)= VMM_KEY(pipt1) pnlkey1(12)= VMM_KEY(tplt1) pnlkey1(13)= VMM_KEY(psdt1) pnlkey1(14)= VMM_KEY(st1 ) pnlkey1(15)= VMM_KEY(xct1 ) pnlkey1(16)= VMM_KEY(yct1 ) pnlkey1(17)= VMM_KEY(zct1 ) pnlkey1(18)= VMM_KEY(xt1 ) pnlkey1(19)= VMM_KEY(yt1 ) pnlkey1(20)= VMM_KEY(zt1 ) pnlod = 20 * if (.not. Schm_hydro_L) then pnlkey1(pnlod+1)= VMM_KEY(mut1) pnlod = pnlod+1 endif * pnerr = vmmlod(pnlkey1,pnlod) pnerr = VMM_GET_VAR(ut1 ) pnerr = VMM_GET_VAR(vt1 ) pnerr = VMM_GET_VAR(wt1 ) pnerr = VMM_GET_VAR(tdt1 ) pnerr = VMM_GET_VAR(tt1 ) pnerr = VMM_GET_VAR(fit1 ) pnerr = VMM_GET_VAR(qt1 ) pnerr = VMM_GET_VAR(tpt1 ) pnerr = VMM_GET_VAR(fipt1) pnerr = VMM_GET_VAR(qpt1 ) pnerr = VMM_GET_VAR(pipt1) pnerr = VMM_GET_VAR(tplt1) pnerr = VMM_GET_VAR(psdt1) pnerr = VMM_GET_VAR(st1 ) pnerr = VMM_GET_VAR(xct1 ) pnerr = VMM_GET_VAR(yct1 ) pnerr = VMM_GET_VAR(zct1 ) pnerr = VMM_GET_VAR(xt1 ) pnerr = VMM_GET_VAR(yt1 ) pnerr = VMM_GET_VAR(zt1 ) * if (.not. Schm_hydro_L) then pnerr = VMM_GET_VAR(mut1) endif * do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx ut1 (i,j,k) = 0. vt1 (i,j,k) = 0. wt1 (i,j,k) = 0. tdt1 (i,j,k) = 0. tt1 (i,j,k) = 0. fit1 (i,j,k) = 0. qt1 (i,j,k) = 0. tpt1 (i,j,k) = 0. fipt1(i,j,k) = 0. qpt1 (i,j,k) = 0. pipt1(i,j,k) = 0. tplt1(i,j,k) = 0. psdt1(i,j,k) = 0. end do end do end do * if (.not. Schm_hydro_L) then do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx mut1 (i,j,k) = 0. end do end do end do end if * do j=l_miny,l_maxy do i=l_minx,l_maxx st1 (i,j) = 0. end do end do * do i=1,l_ni*l_nj*l_nk xct1 (i) = 0. yct1 (i) = 0. zct1 (i) = 0. xt1 (i) = 0. yt1 (i) = 0. zt1 (i) = 0. end do * pnerr = vmmuld( -1, 0 ) * key1_ = VMM_KEY (trt1) do n=1,Tr3d_ntr key1(n) = key1_ + n end do if (Tr3d_ntr.gt.0) then err = vmmlod(key1,Tr3d_ntr) do n=1,Tr3d_ntr err = vmmget(key1(n),patr,tr) do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx tr(i,j,k) = 0. end do end do end do end do err = vmmuld(key1,Tr3d_ntr) endif * if (Schm_modcn.eq.Step_total) then * * ----------------------------------- * Zero comdeck vtw (tw=t2 work space) * ----------------------------------- pnlkey1( 1)= VMM_KEY(utw ) pnlkey1( 2)= VMM_KEY(vtw ) pnlkey1( 3)= VMM_KEY(wtw ) pnlkey1( 4)= VMM_KEY(tdtw ) pnlkey1( 5)= VMM_KEY(ttw ) pnlkey1( 6)= VMM_KEY(fitw ) pnlkey1( 7)= VMM_KEY(qtw ) pnlkey1( 8)= VMM_KEY(tptw ) pnlkey1( 9)= VMM_KEY(fiptw) pnlkey1(10)= VMM_KEY(qptw ) pnlkey1(11)= VMM_KEY(piptw) pnlkey1(12)= VMM_KEY(tpltw) pnlkey1(13)= VMM_KEY(psdtw) pnlkey1(14)= VMM_KEY(stw ) pnlod = 14 * if (.not. Schm_hydro_L) then pnlkey1(pnlod+1)= VMM_KEY(mutw) pnlod = pnlod+1 endif * pnerr = vmmlod(pnlkey1,pnlod) pnerr = VMM_GET_VAR(utw ) pnerr = VMM_GET_VAR(vtw ) pnerr = VMM_GET_VAR(wtw ) pnerr = VMM_GET_VAR(tdtw ) pnerr = VMM_GET_VAR(ttw ) pnerr = VMM_GET_VAR(fitw ) pnerr = VMM_GET_VAR(qtw ) pnerr = VMM_GET_VAR(tptw ) pnerr = VMM_GET_VAR(fiptw) pnerr = VMM_GET_VAR(qptw ) pnerr = VMM_GET_VAR(piptw) pnerr = VMM_GET_VAR(tpltw) pnerr = VMM_GET_VAR(psdtw) pnerr = VMM_GET_VAR(stw ) * if (.not. Schm_hydro_L) then pnerr = VMM_GET_VAR(mutw) endif * utw = 0. vtw = 0. wtw = 0. tdtw = 0. ttw = 0. fitw = 0. qtw = 0. tptw = 0. fiptw= 0. qptw = 0. piptw= 0. tpltw= 0. psdtw= 0. stw = 0. * if (.not. Schm_hydro_L) mutw = 0. * pnerr = vmmuld( -1, 0 ) * key1_ = VMM_KEY (trtw) do n=1,Tr3d_ntr key1(n) = key1_ + n end do if (Tr3d_ntr.gt.0) then err = vmmlod(key1,Tr3d_ntr) do n=1,Tr3d_ntr err = vmmget(key1(n),patr,tr) do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx tr(i,j,k) = 0. end do end do end do end do err = vmmuld(key1,Tr3d_ntr) endif * endif * * --------------------------- * Zero comdeck vth * --------------------------- pnlkey1(1) = VMM_KEY(uth ) pnlkey1(2) = VMM_KEY(vth ) pnlkey1(3) = VMM_KEY(psdth) pnlkey1(4) = VMM_KEY(xth ) pnlkey1(5) = VMM_KEY(yth ) pnlkey1(6) = VMM_KEY(zth ) pnlkey1(7) = VMM_KEY(xcth ) pnlkey1(8) = VMM_KEY(ycth ) pnlkey1(9) = VMM_KEY(zcth ) pnlod = 9 * pnerr = vmmlod(pnlkey1,pnlod) pnerr = VMM_GET_VAR(uth ) pnerr = VMM_GET_VAR(vth ) pnerr = VMM_GET_VAR(psdth) pnerr = VMM_GET_VAR(xth ) pnerr = VMM_GET_VAR(yth ) pnerr = VMM_GET_VAR(zth ) pnerr = VMM_GET_VAR(xcth ) pnerr = VMM_GET_VAR(ycth ) pnerr = VMM_GET_VAR(zcth ) * do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx uth (i,j,k) = 0. vth (i,j,k) = 0. psdth(i,j,k) = 0. end do end do end do * do i=1,l_ni*l_nj*l_nk xth (i) = 0. yth (i) = 0. zth (i) = 0. xcth (i) = 0. ycth (i) = 0. zcth (i) = 0. end do * pnerr = vmmuld( -1, 0 ) * * --------------------------- * Zero comdeck vtx * --------------------------- pnlkey1(1) = VMM_KEY(gptx) pnlkey1(2) = VMM_KEY(gxtx) pnlod = 2 * if (.not. Schm_hydro_L) then pnlkey1(pnlod+1) = VMM_KEY(multx) pnlod = pnlod+1 endif * pnerr = vmmlod(pnlkey1,pnlod) pnerr = VMM_GET_VAR(gptx) pnerr = VMM_GET_VAR(gxtx) * if (.not. Schm_hydro_L) then pnerr = VMM_GET_VAR(multx) endif * do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx gptx(i,j,k) = 0. gxtx(i,j,k) = 0. end do end do end do * if (.not. Schm_hydro_L) then do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx multx(i,j,k) = 0. end do end do end do endif * pnerr = vmmuld( -1, 0 ) * * --------------------------- * Zero comdeck rhsc * --------------------------- pnlkey1( 1)= VMM_KEY(ru ) pnlkey1( 2)= VMM_KEY(rv ) pnlkey1( 3)= VMM_KEY(rw ) pnlkey1( 4)= VMM_KEY(rvv ) pnlkey1( 5)= VMM_KEY(rcn ) pnlkey1( 6)= VMM_KEY(rth ) pnlkey1( 7)= VMM_KEY(rd ) pnlkey1( 8)= VMM_KEY(r3 ) pnlkey1( 9)= VMM_KEY(rhell) pnlkey1(10)= VMM_KEY(ruw1 ) pnlkey1(11)= VMM_KEY(rvw1 ) pnlkey1(12)= VMM_KEY(r1 ) pnlkey1(13)= VMM_KEY(r3p ) pnlkey1(14)= VMM_KEY(rheln) pnlkey1(15)= VMM_KEY(ruw2 ) pnlkey1(16)= VMM_KEY(rvw2 ) pnlod = 16 * pnerr = vmmlod(pnlkey1,pnlod) pnerr = VMM_GET_VAR(ru ) pnerr = VMM_GET_VAR(rv ) pnerr = VMM_GET_VAR(rw ) pnerr = VMM_GET_VAR(rvv ) pnerr = VMM_GET_VAR(rcn ) pnerr = VMM_GET_VAR(rth ) pnerr = VMM_GET_VAR(rd ) pnerr = VMM_GET_VAR(r3 ) pnerr = VMM_GET_VAR(rhell) pnerr = VMM_GET_VAR(ruw1 ) pnerr = VMM_GET_VAR(rvw1 ) pnerr = VMM_GET_VAR(r1 ) pnerr = VMM_GET_VAR(r3p ) pnerr = VMM_GET_VAR(rheln) pnerr = VMM_GET_VAR(ruw2 ) pnerr = VMM_GET_VAR(rvw2 ) * do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx ru (i,j,k) = 0. rv (i,j,k) = 0. rw (i,j,k) = 0. rvv (i,j,k) = 0. rcn (i,j,k) = 0. rth (i,j,k) = 0. rd (i,j,k) = 0. r3 (i,j,k) = 0. rhell(i,j,k) = 0. ruw1 (i,j,k) = 0. rvw1 (i,j,k) = 0. r1 (i,j,k) = 0. r3p (i,j,k) = 0. rheln(i,j,k) = 0. ruw2 (i,j,k) = 0. rvw2 (i,j,k) = 0. end do end do end do * pnerr = vmmuld( -1, 0 ) * * --------------------------- * Zero comdeck orh * --------------------------- pnlkey1(1)= VMM_KEY(oru ) pnlkey1(2)= VMM_KEY(orv ) pnlkey1(3)= VMM_KEY(orcn) pnlkey1(4)= VMM_KEY(orth) pnlod = 4 * if (.not. Schm_hydro_L) then pnlkey1(pnlod+1)= VMM_KEY(orw ) pnlkey1(pnlod+2)= VMM_KEY(orvv) pnlod = pnlod+2 endif * pnerr = vmmlod(pnlkey1,pnlod) pnerr = VMM_GET_VAR(oru ) pnerr = VMM_GET_VAR(orv ) pnerr = VMM_GET_VAR(orcn) pnerr = VMM_GET_VAR(orth) * if (.not. Schm_hydro_L) then pnerr = VMM_GET_VAR(orw ) pnerr = VMM_GET_VAR(orvv) endif * do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx oru (i,j,k) = 0. orv (i,j,k) = 0. orcn(i,j,k) = 0. orth(i,j,k) = 0. end do end do end do * if (.not. Schm_hydro_L) then do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx orw (i,j,k) = 0. orvv(i,j,k) = 0. end do end do end do endif * pnerr = vmmuld( -1, 0 ) * if(G_lam) then * * --------------------------- * Zero comdeck nest * --------------------------- pnlkey1( 1)=VMM_KEY(nest_u ) pnlkey1( 2)=VMM_KEY(nest_v ) pnlkey1( 3)=VMM_KEY(nest_t ) pnlkey1( 4)=VMM_KEY(nest_td ) pnlkey1( 5)=VMM_KEY(nest_fi ) pnlkey1( 6)=VMM_KEY(nest_q ) pnlkey1( 7)=VMM_KEY(nest_tp ) pnlkey1( 8)=VMM_KEY(nest_fip) pnlkey1( 9)=VMM_KEY(nest_pip) pnlkey1(10)=VMM_KEY(nest_psd) pnlkey1(11)=VMM_KEY(nest_s ) pnlod = 11 * if (.not. Schm_hydro_L) then pnlkey1(pnlod+1)=VMM_KEY(nest_w ) pnlkey1(pnlod+2)=VMM_KEY(nest_mu) pnlod = pnlod+2 endif * err = vmmlod(pnlkey1,pnlod) err = VMM_GET_VAR(nest_u ) err = VMM_GET_VAR(nest_v ) err = VMM_GET_VAR(nest_t ) err = VMM_GET_VAR(nest_td ) err = VMM_GET_VAR(nest_fi ) err = VMM_GET_VAR(nest_q ) err = VMM_GET_VAR(nest_tp ) err = VMM_GET_VAR(nest_fip) err = VMM_GET_VAR(nest_pip) err = VMM_GET_VAR(nest_psd) err = VMM_GET_VAR(nest_s ) * if (.not. Schm_hydro_L) then err = VMM_GET_VAR(nest_w ) err = VMM_GET_VAR(nest_mu) endif * do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx nest_u (i,j,k) = 0. nest_v (i,j,k) = 0. nest_t (i,j,k) = 0. nest_td (i,j,k) = 0. nest_fi (i,j,k) = 0. nest_q (i,j,k) = 0. nest_tp (i,j,k) = 0. nest_fip(i,j,k) = 0. nest_pip(i,j,k) = 0. nest_psd(i,j,k) = 0. end do end do end do * if (.not. Schm_hydro_L) then do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx nest_w (i,j,k) = 0. nest_mu (i,j,k) = 0. end do end do end do end if * do j=l_miny,l_maxy do i=l_minx,l_maxx nest_s(i,j) = 0. end do end do * pnerr = vmmuld( -1, 0 ) * key_ = VMM_KEY (nest_tr) do n=1,Tr3d_ntr key(n) = key_ + n end do if (Tr3d_ntr.gt.0) then err = vmmlod(key,Tr3d_ntr) do n=1,Tr3d_ntr err = vmmget(key(n),patrf,trf) do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx trf (i,j,k) = 0. end do end do end do end do err = vmmuld(key,Tr3d_ntr) endif * endif * if(G_lam) then * * ---------------- * Zero comdeck bcs * ---------------- * do i=1,bcs_sz bcs_u (i) = 0. bcs_v (i) = 0. bcs_t (i) = 0. bcs_td (i) = 0. bcs_fi (i) = 0. bcs_q (i) = 0. bcs_tp (i) = 0. bcs_fip(i) = 0. bcs_pip(i) = 0. bcs_psd(i) = 0. end do * if (.not. Schm_hydro_L) then do i=1,bcs_sz bcs_w (i) = 0. bcs_mu (i) = 0. end do end if * do i=1,bcs_sz bcs_s(i) = 0. end do * if (Tr3d_ntr.gt.0) then do n=1,Tr3d_ntr id = (n-1)*bcs_sz+1 * do i=1,bcs_sz bcs_tr (id+i-1) = 0. end do end do endif * endif * if(G_lam) then * * Control BC * ---------- * * --------------------- do ntime=0,Step_total * --------------------- * #include "v4d_lod_bc.cdk"
#include "v4d_get_bc.cdk"
* do k=1,l_nk do j=l_miny,l_maxy do i=l_minx,l_maxx f_bc_u (i,j,k) = 0. f_bc_v (i,j,k) = 0. f_bc_tp (i,j,k) = 0. end do end do end do * do j=l_miny,l_maxy do i=l_minx,l_maxx f_bc_s (i,j) = 0. end do end do * do n_tr=1,Tr3d_ntr * bc_err = vmmget(key_bc_tr(n_tr),pabc_tr,f_bc_tr) * do k=1,l_nk do j=1,l_nj do i=1,l_ni f_bc_tr(i,j,k) = 0. end do end do end do * end do * #include "v4d_unlod_bc.cdk"
* * ------ end do * ------ * endif * if ( Init_balgm_L ) then * * --------------------------- * Zero comdeck vta * --------------------------- pnlkey1(1) = VMM_KEY(uta ) pnlkey1(2) = VMM_KEY(vta ) pnlkey1(3) = VMM_KEY(tdta ) pnlkey1(4) = VMM_KEY(fita ) pnlkey1(5) = VMM_KEY(fipta) pnlkey1(6) = VMM_KEY(tta ) pnlkey1(7) = VMM_KEY(qta ) pnlkey1(8) = VMM_KEY(tpta ) pnlkey1(9) = VMM_KEY(pipta) pnlkey1(10) = VMM_KEY(tplta) pnlkey1(11) = VMM_KEY(psdta) pnlkey1(12) = VMM_KEY(sta ) pnlkey1(13) = VMM_KEY(gpta ) * err = vmmlod(pnlkey1,13) * err = VMM_GET_VAR(uta ) err = VMM_GET_VAR(vta ) err = VMM_GET_VAR(tdta ) err = VMM_GET_VAR(fita ) err = VMM_GET_VAR(fipta) err = VMM_GET_VAR(tta ) err = VMM_GET_VAR(qta ) err = VMM_GET_VAR(tpta ) err = VMM_GET_VAR(pipta) err = VMM_GET_VAR(tplta) err = VMM_GET_VAR(psdta) err = VMM_GET_VAR(sta ) err = VMM_GET_VAR(gpta ) * do k=1,l_nk do j= 1, l_nj do i= 1, l_ni uta(i,j,k) = 0. vta(i,j,k) = 0. tdta(i,j,k) = 0. fita(i,j,k) = 0. fipta(i,j,k) = 0. tta(i,j,k) = 0. qta(i,j,k) = 0. tpta(i,j,k) = 0. pipta(i,j,k) = 0. tplta(i,j,k) = 0. psdta(i,j,k) = 0. gpta(i,j,k) = 0. end do end do end do * do j= 1, l_nj do i= 1, l_ni sta(i,j) = 0. end do end do * err = vmmuld(-1,0) * * Non-hydrostatic model fields * ---------------------------- if ( .not. Schm_hydro_L )then * pnlkey1(1) = VMM_KEY(wta ) pnlkey1(2) = VMM_KEY(qpta ) pnlkey1(3) = VMM_KEY(multa) pnlkey1(4) = VMM_KEY(muta ) * err = vmmlod(pnlkey1,4) * err = VMM_GET_VAR(wta ) err = VMM_GET_VAR(qpta ) err = VMM_GET_VAR(multa) err = VMM_GET_VAR(muta ) * do k=1,l_nk do j= 1, l_nj do i= 1, l_ni wta(i,j,k) = 0. qpta(i,j,k) = 0. multa(i,j,k) = 0. muta(i,j,k) = 0. end do end do end do * err = vmmuld(-1,0) * endif * Passive tracers Tr3d * -------------------- keya_ = VMM_KEY (trta) do n=1,Tr3d_ntr keya(n) = keya_ + n end do if (Tr3d_ntr.gt.0) then err = vmmlod(keya,Tr3d_ntr) do n=1,Tr3d_ntr err = vmmget(keya(n),patra,tra) do k=1,G_nk do j=1,l_nj do i=1,l_ni tra(i,j,k) = 0. end do end do end do end do err = vmmuld(keya,Tr3d_ntr) endif * endif * return end