7 !! Definition of the initial surface and bedrock topography
8 !! (including gradients) and of the horizontal grid spacings dxi, deta.
9 !! For present-day initial topography.
13 !! Copyright 2009-2013 Ralf Greve
17 !! This file is part of SICOPOLIS.
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.
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.
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/>.
32 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
35 !> Definition of the initial surface and bedrock topography
36 !! (including gradients) and of the horizontal grid spacings dxi, deta.
37 !! For present-day initial topography.
38 !<------------------------------------------------------------------------------
45 integer(i4b) :: i, j, n
49 real(dp) :: h_ice, freeboard_ratio
54 open(21, iostat=ios, &
55 file=inpath//
'/nhem/'//zs_present_file, &
56 recl=16384, status=
'old')
58 if (ios.ne.0) stop
' topography1: Error when opening the zs file!'
60 open(22, iostat=ios, &
61 file=inpath//
'/nhem/'//zl_present_file, &
62 recl=16384, status=
'old')
64 if (ios.ne.0) stop
' topography1: Error when opening the zl file!'
66 open(23, iostat=ios, &
67 file=inpath//
'/nhem/'//zl0_file, &
68 recl=16384, status=
'old')
70 if (ios.ne.0) stop
' topography1: Error when opening the zl0 file!'
72 open(24, iostat=ios, &
73 file=inpath//
'/nhem/'//mask_present_file, &
74 recl=1024, status=
'old')
76 if (ios.ne.0) stop
' topography1: Error when opening the mask file!'
78 do n=1, 6;
read(21,
'(a)') ch_dummy;
end do
79 do n=1, 6;
read(22,
'(a)') ch_dummy;
end do
80 do n=1, 6;
read(23,
'(a)') ch_dummy;
end do
81 do n=1, 6;
read(24,
'(a)') ch_dummy;
end do
84 read(21,*) (zs(j,i), i=0,imax)
85 read(22,*) (zl(j,i), i=0,imax)
86 read(23,*) (zl0(j,i), i=0,imax)
87 read(24,2300) (maske(j,i), i=0,imax)
90 close(21, status=
'keep')
91 close(22, status=
'keep')
92 close(23, status=
'keep')
93 close(24, status=
'keep')
95 2300 format(imax(i1),i1)
105 freeboard_ratio = (rho_sw-rho)/rho_sw
110 if (maske(j,i) <= 1 )
then
114 else if (maske(j,i) == 2 )
then
116 #if ( MARGIN==1 || MARGIN==2 )
124 else if (maske(j,i) == 3 )
then
126 #if ( MARGIN==1 || ( MARGIN==2 && MARINE_ICE_FORMATION==1 ) )
130 #elif ( MARGIN==2 && MARINE_ICE_FORMATION==2 )
132 h_ice = zs(j,i)-zb(j,i)
133 zs(j,i) = zl(j,i)+h_ice
136 h_ice = zs(j,i)-zb(j,i)
137 zs(j,i) = freeboard_ratio*h_ice
138 zb(j,i) = zs(j,i)-h_ice
143 xi(i) = xi0 +
real(i,dp)*dxi
144 eta(j) = eta0 +
real(j,dp)*deta
146 call
geo_coord(phi(j,i), lambda(j,i), xi(i), eta(j))
151 h_c(j,i) = zs(j,i)-zm(j,i)
154 dzs_dtau(j,i) = 0.0_dp
155 dzm_dtau(j,i) = 0.0_dp
156 dzb_dtau(j,i) = 0.0_dp
157 dzl_dtau(j,i) = 0.0_dp
158 dh_c_dtau(j,i) = 0.0_dp
159 dh_t_dtau(j,i) = 0.0_dp
178 area(j,i) = sq_g11_g(j,i)*sq_g22_g(j,i)*dxi*deta