!> \file sortie-hz-multivar.f90 !! Sortie des variables horizontaux. !< !> SUBROUTINE: sortie_hz_multi() !! \author ... !! \date ... !! @note Sortie des variables horizontaux. !! @note Appelle rempl_xxx pour les variables qui sont dans module3d_phy !! remplace sortielongue. !! @note Used modules: !! @note - use module3D_phy !< subroutine sortie_hz_multi() ! Appelle rempl_xxx pour les variables qui sont dans module3d_phy ! remplace sortielongue. ! use module3d_phy use module_choix ! donne acces a module out_hz implicit none real VVV(nx,ny) ! variable de travail ! surface, epaisseur, socle if (isort_time(1).eq.1) call rempli_xxx(1,S) if (isort_time(2).eq.1) call rempli_xxx(2,H) if (isort_time(3).eq.1) call rempli_xxx(3,Bsoc) ! masque flottant-pose vvv(:,:)=mk(:,:) if (isort_time(4).eq.1) call rempli_xxx(4,vvv) ! hdot if (isort_time(5).eq.1) call rempli_xxx(5,Hdot) ! ============================================================ ! bilan de masse en surface (Bm), Accumulation, ablation, if (isort_time(10).eq.1) call rempli_xxx(10,Bm) if (isort_time(11).eq.1) call rempli_xxx(11,Acc) ! ablation : VVV(:,:)=BM(:,:)-Acc(:,:) if (isort_time(12).eq.1) call rempli_xxx(12,VVV) ! Calving if (isort_time(13).eq.1) call rempli_xxx(13,Calv) if (isort_time(14).eq.1) call rempli_xxx(14,dhdt) ! Temperatures en surface if (isort_time(18).eq.1) call rempli_xxx(18,Tann) if (isort_time(19).eq.1) call rempli_xxx(19,Tjuly) !============================================================ ! Conditions basales VVV(:,:)=T(:,:,nz)-Tpmp(:,:,nz) if (isort_time(20).eq.1) call rempli_xxx(20,VVV) ! flux geothermique if (isort_time(23).eq.1) call rempli_xxx(23,ghf) if (isort_time(24).eq.1) call rempli_xxx(24,phid) ! fusion basale if (isort_time(25).eq.1) call rempli_xxx(25,bmelt) !============================================================ ! vitesse moyenne selon x do j=1,ny do i=1,nx if (i.ne.nx) then vvv(i,j)=(uxbar(i,j)+uxbar(i+1,j))/2. else vvv(i,j)=uxbar(i,j) endif end do end do if (isort_time(30).eq.1) call rempli_xxx(30,VVV) ! vitesse moyenne selon y do j=1,ny do i=1,nx if (j.ne.ny) then vvv(i,j)=(uybar(i,j)+uybar(i,j+1))/2 else vvv(i,j)=uybar(i,j) endif end do end do if (isort_time(31).eq.1) call rempli_xxx(31,VVV) if (isort_time(32).eq.1) call rempli_xxx(32,uxbar) if (isort_time(33).eq.1) call rempli_xxx(33,uybar) vvv(:,:)=ux(:,:,nz) if (isort_time(34).eq.1) call rempli_xxx(34,vvv) vvv(:,:)=uy(:,:,nz) if (isort_time(35).eq.1) call rempli_xxx(35,vvv) !============================================================= if (isort_time(40).eq.1) call rempli_xxx(40,frotmx) if (isort_time(41).eq.1) call rempli_xxx(41,frotmy) if (isort_time(42).eq.1) call rempli_xxx(42,tobmx) if (isort_time(43).eq.1) call rempli_xxx(43,tobmy) if (isort_time(44).eq.1) call rempli_xxx(44,taushelf) if (isort_time(45).eq.1) call rempli_xxx(45,epsxx) if (isort_time(46).eq.1) call rempli_xxx(46,epsyy) if (isort_time(47).eq.1) call rempli_xxx(47,epsxy) if (isort_time(48).eq.1) call rempli_xxx(48,eps) !================================================================ if (isort_time(50).eq.1) call rempli_xxx(50,pvi) !=============================================================== if(isort_time(60).eq.1) call rempli_xxx(60,hwater) if(isort_time(61).eq.1) call rempli_xxx(61,hdotwater) if(isort_time(62).eq.1) call rempli_xxx(62,Pgx) if(isort_time(63).eq.1) call rempli_xxx(63,Pgy) if(isort_time(64).eq.1) call rempli_xxx(64,kond) if(isort_time(65).eq.1) call rempli_xxx(65,phiWx) if(isort_time(66).eq.1) call rempli_xxx(66,phiWy) if(isort_time(68).eq.1) call rempli_xxx(68,Neffmx) if(isort_time(69).eq.1) call rempli_xxx(69,Neffmy) !=============================================================== ! grounded -> 0, , grzone ->1 ilemx->2 flot->3 do j=1,ny do i=1,nx if (gzmx(i,j)) then if (ilemx(i,j)) then ! ile vvv(i,j)=2 else vvv(i,j)=1 ! grounded zone endif else if (flotmx(i,j)) then ! flottant if (HMX(i,j).gt.1.) then vvv(i,j)=3 else vvv(i,j)=4 endif else ! pose vvv(i,j)=0 endif end do end do if(isort_time(70).eq.1) call rempli_xxx(70,vvv) do j=1,ny do i=1,nx if (gzmy(i,j)) then if (ilemy(i,j)) then vvv(i,j)=2 else vvv(i,j)=1 endif else if (flotmy(i,j)) then if (HMY(i,j).gt.1.) then vvv(i,j)=3 else vvv(i,j)=4 endif else vvv(i,j)=0 endif end do end do if(isort_time(71).eq.1) call rempli_xxx(71,vvv) ! frontfacex et frontfacey vvv(:,:)=frontfacex(:,:) if(isort_time(72).eq.1) call rempli_xxx(72,vvv) vvv(:,:)=frontfacey(:,:) if(isort_time(73).eq.1) call rempli_xxx(73,vvv) !============================================================= return end subroutine sortie_hz_multi