SICOPOLIS V3.0
 All Classes Files Functions Variables Macros
topography2.F90
Go to the documentation of this file.
1 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 !
3 ! Subroutine : t o p o g r a p h y 2
4 !
5 !> @file
6 !!
7 !! Definition of the initial surface and bedrock topography
8 !! (including gradients) and of the horizontal grid spacings dxi, deta.
9 !! For ice-free initial topography with relaxed lithosphere.
10 !!
11 !! @section Copyright
12 !!
13 !! Copyright 2009-2013 Ralf Greve
14 !!
15 !! @section License
16 !!
17 !! This file is part of SICOPOLIS.
18 !!
19 !! SICOPOLIS is free software: you can redistribute it and/or modify
20 !! it under the terms of the GNU General Public License as published by
21 !! the Free Software Foundation, either version 3 of the License, or
22 !! (at your option) any later version.
23 !!
24 !! SICOPOLIS is distributed in the hope that it will be useful,
25 !! but WITHOUT ANY WARRANTY; without even the implied warranty of
26 !! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 !! GNU General Public License for more details.
28 !!
29 !! You should have received a copy of the GNU General Public License
30 !! along with SICOPOLIS. If not, see <http://www.gnu.org/licenses/>.
31 !<
32 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
33 
34 !-------------------------------------------------------------------------------
35 !> Definition of the initial surface and bedrock topography
36 !! (including gradients) and of the horizontal grid spacings dxi, deta.
37 !! For ice-free initial topography with relaxed lithosphere.
38 !<------------------------------------------------------------------------------
39 subroutine topography2(dxi, deta)
40 
41 use sico_types
43 
44 implicit none
45 integer(i4b) :: i, j, n
46 integer(i4b) :: ios
47 real(dp) :: dxi, deta
48 real(dp) :: xi0, eta0
49 character :: ch_dummy
50 
51 !-------- Set topography --------
52 
53 zl0 = 0.0_dp
54 
55 open(24, iostat=ios, &
56  file=inpath//'/heino/'//mask_present_file, &
57  recl=1024, status='old')
58 
59 if (ios /= 0) stop ' topography2: Error when opening the mask file!'
60 
61 do n=1, 6; read(24,'(a)') ch_dummy; end do
62 
63 do j=jmax, 0, -1
64  read(24,2300) (maske(j,i), i=0,imax)
65 end do
66 
67 close(24, status='keep')
68 
69 2300 format(imax(i1),i1)
70 
71 !-------- Further stuff --------
72 
73 #if (GRID==0 || GRID==1)
74 
75 dxi = dx *1000.0_dp ! km -> m
76 deta = dx *1000.0_dp ! km -> m
77 
78 xi0 = x0 *1000.0_dp ! km -> m
79 eta0 = y0 *1000.0_dp ! km -> m
80 
81 #elif GRID==2
82 
83 stop ' topography2: GRID==2 not allowed for this application!'
84 
85 #endif
86 
87 do i=0, imax
88 do j=0, jmax
89 
90  zs(j,i) = zl0(j,i)
91  zb(j,i) = zl0(j,i)
92  zl(j,i) = zl0(j,i)
93 
94  xi(i) = xi0 + real(i,dp)*dxi
95  eta(j) = eta0 + real(j,dp)*deta
96 
97  call geo_coord(phi(j,i), lambda(j,i), xi(i), eta(j))
98 
99  zm(j,i) = zb(j,i)
100  n_cts(j,i) = -1
101 
102  h_c(j,i) = 0.0_dp
103  h_t(j,i) = 0.0_dp
104 
105  dzs_dtau(j,i) = 0.0_dp
106  dzm_dtau(j,i) = 0.0_dp
107  dzb_dtau(j,i) = 0.0_dp
108  dzl_dtau(j,i) = 0.0_dp
109  dh_c_dtau(j,i) = 0.0_dp
110  dh_t_dtau(j,i) = 0.0_dp
111 
112 end do
113 end do
114 
115 !-------- Metric tensor, gradients of the topography --------
116 
117 call metric
118 
119 #if TOPOGRAD==0
120 call topograd_1(dxi, deta, 1)
121 #elif TOPOGRAD==1
122 call topograd_2(dxi, deta, 1)
123 #endif
124 
125  1000 format(a)
126 
127 !-------- Corresponding area of grid points --------
128 
129 do i=0, imax
130 do j=0, jmax
131  area(j,i) = sq_g11_g(j,i)*sq_g22_g(j,i)*dxi*deta
132 end do
133 end do
134 
135 end subroutine topography2
136 !