1 | !> \file initial2-0.4.f90 |
---|
2 | !!Initialisation du modele |
---|
3 | !< |
---|
4 | |
---|
5 | !> SUBROUTINE INITIAL2 |
---|
6 | !! Cette routine permet d'initialiser le modele. |
---|
7 | !! \author ... |
---|
8 | !! \date 19 Novembre 1999 |
---|
9 | !! @note Elle appelle toutes les routines d'initialisation des differents packages. |
---|
10 | !! @note C'est cette routine qui est appellee dans le main |
---|
11 | !! @note Used modules: |
---|
12 | !! @note - use module3D_phy |
---|
13 | !! @note - use param_phy_mod |
---|
14 | !< |
---|
15 | |
---|
16 | |
---|
17 | subroutine INITIAL2() |
---|
18 | |
---|
19 | USE module3D_phy, only: cde,abl,bdot,bmelt,epsxx,epsyy,epsxy,hwater,calv,hdot,hdotwater, & |
---|
20 | slope,taub,ubx,uby,uzk,uxbar,uybar,ibase,tpmp,mk,mk0,h,front, & |
---|
21 | bsoc,flot,sealevel_2D,flotmx,flotmy,gzmx, & |
---|
22 | gzmy,flgzmx,flgzmy,sdx,sdy,ux,uy,uzr,t,s |
---|
23 | use geography, only: nx,ny,nz,nzm,dx |
---|
24 | USE param_phy_mod,only: ro,row |
---|
25 | implicit none |
---|
26 | real,dimension(NZ) ::cord_vert |
---|
27 | |
---|
28 | integer :: i,j,k |
---|
29 | |
---|
30 | ! INITIALISATION DES TABLEAUX |
---|
31 | |
---|
32 | cord_vert(1)=0. |
---|
33 | cord_vert(NZ)=1. |
---|
34 | do K=1,NZ |
---|
35 | if ((K.ne.1).and.(K.ne.NZ)) cord_vert(K)=(K-1.)/(NZ-1.) |
---|
36 | CDE(K)=1.-cord_vert(K) |
---|
37 | end do |
---|
38 | |
---|
39 | ABL(:,:)=0. |
---|
40 | BDOT(:,:)=0. |
---|
41 | BMELT(:,:)=0. |
---|
42 | EPSXX(:,:)=0. |
---|
43 | EPSYY(:,:)=0. |
---|
44 | EPSXY(:,:)=0. |
---|
45 | HWATER(:,:)=0. |
---|
46 | CALV(:,:)=0. |
---|
47 | HDOT(:,:)=0. |
---|
48 | HDOTWATER(:,:)=0. |
---|
49 | SLOPE(:,:)=0. |
---|
50 | TAUB(:,:)=0. |
---|
51 | UBX(:,:)=0. |
---|
52 | UBY(:,:)=0. |
---|
53 | UZK(:,:)=0. |
---|
54 | UXBAR(:,:)=0. |
---|
55 | UYBAR(:,:)=0. |
---|
56 | IBASE(:,:)=1 |
---|
57 | TPMP(:,:,1)=0 |
---|
58 | TPMP(:,:,NZ)=-0.00087*H(:,:) |
---|
59 | |
---|
60 | MK(:,:)=MK0(:,:) |
---|
61 | |
---|
62 | |
---|
63 | !-------Initialisation des fronts. |
---|
64 | FRONT(:,:) =0 |
---|
65 | |
---|
66 | !-------Initialisation des flot... devrait etre mise dans input_topo. |
---|
67 | ! en tout cas on le fait pour mismip |
---|
68 | |
---|
69 | do J=1,NY |
---|
70 | do I=1,NX |
---|
71 | if ((BSOC(I,J)+H(I,J)*RO/ROW -SEALEVEL_2D(I,J)).LT.0.) then |
---|
72 | FLOT(I,J)=.TRUE. |
---|
73 | else |
---|
74 | FLOT(I,J)=.FALSE. |
---|
75 | endif |
---|
76 | enddo |
---|
77 | enddo |
---|
78 | |
---|
79 | |
---|
80 | FLOTMX(:,:)=FLOT(:,:) |
---|
81 | FLOTMY(:,:)=FLOT(:,:) |
---|
82 | GZMX(:,:)=.FALSE. |
---|
83 | GZMY(:,:)=.FALSE. |
---|
84 | FLGZMX(:,:)=.FALSE. |
---|
85 | FLGZMY(:,:)=.FALSE. |
---|
86 | |
---|
87 | |
---|
88 | do J=2,NY |
---|
89 | do I=2,NX |
---|
90 | SDX(I,J)=(S(I,J)-S(I-1,J))/DX |
---|
91 | SDY(I,J)=(S(I,J)-S(I,J-1))/DX |
---|
92 | end do |
---|
93 | end do |
---|
94 | |
---|
95 | |
---|
96 | |
---|
97 | do K=1,NZ |
---|
98 | do I=1,NX |
---|
99 | do J=1,NY |
---|
100 | UX(I,J,K)=0. |
---|
101 | UY(I,J,K)=0. |
---|
102 | UZR(I,J,K)=0. |
---|
103 | T(I,J,K)=0. |
---|
104 | !CT(I,J,K)=6.62E7 |
---|
105 | !CP(I,J,K)=2009. |
---|
106 | end do |
---|
107 | end do |
---|
108 | end do |
---|
109 | |
---|
110 | do K=2,NZ-1 |
---|
111 | do I=1,NX |
---|
112 | do J=1,NY |
---|
113 | TPMP(I,J,K)=-0.00087*(K-1)/(NZ-1)*H(I,J) |
---|
114 | end do |
---|
115 | end do |
---|
116 | end do |
---|
117 | |
---|
118 | do K=NZ+1,NZ+NZM |
---|
119 | do I=1,NX |
---|
120 | do J=1,NY |
---|
121 | T(I,J,K)=0. |
---|
122 | end do |
---|
123 | end do |
---|
124 | end do |
---|
125 | end subroutine INITIAL2 |
---|