47 real(dp),
intent(out) :: dxi, deta
49 integer(i4b) :: i, j, n
50 integer(i4b) :: ios, n_dummy
53 real(dp) :: h_ice, freeboard_ratio
56 character(len= 8) :: ch_imax
57 character(len=128) :: fmt4
59 write(ch_imax, fmt=
'(i8)') imax
60 write(fmt4, fmt=
'(a)')
'('//trim(adjustl(ch_imax))//
'(i1),i1)'
64 open(21, iostat=ios, &
65 file=inpath//
'/'//trim(ch_domain_short)//
'/'//zs_present_file, &
66 recl=8192, status=
'old')
68 if (ios.ne.0) stop
' topography1: Error when opening the zs file!'
70 open(22, iostat=ios, &
71 file=inpath//
'/'//trim(ch_domain_short)//
'/'//zl_present_file, &
72 recl=8192, status=
'old')
74 if (ios.ne.0) stop
' topography1: Error when opening the zl file!'
76 open(23, iostat=ios, &
77 file=inpath//
'/'//trim(ch_domain_short)//
'/'//zl0_file, &
78 recl=8192, status=
'old')
80 if (ios.ne.0) stop
' topography1: Error when opening the zl0 file!'
82 open(24, iostat=ios, &
83 file=inpath//
'/'//trim(ch_domain_short)//
'/'//mask_present_file, &
84 recl=1024, status=
'old')
86 if (ios.ne.0) stop
' topography1: Error when opening the mask file!'
88 do n=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
89 do n=1, 6;
read(22, fmt=
'(a)') ch_dummy;
end do
90 do n=1, 6;
read(23, fmt=
'(a)') ch_dummy;
end do
91 do n=1, 6;
read(24, fmt=
'(a)') ch_dummy;
end do
94 read(21, fmt=*) (zs(j,i), i=0,imax)
95 read(22, fmt=*) (zl(j,i), i=0,imax)
96 read(23, fmt=*) (zl0(j,i), i=0,imax)
97 read(24, fmt=trim(fmt4)) (maske(j,i), i=0,imax)
100 close(21, status=
'keep')
101 close(22, status=
'keep')
102 close(23, status=
'keep')
103 close(24, status=
'keep')
113 freeboard_ratio = (rho_sw-rho)/rho_sw
118 if (maske(j,i) <= 1 )
then
122 else if (maske(j,i) == 2 )
then
124 #if ( MARGIN==1 || MARGIN==2 )
132 else if (maske(j,i) == 3 )
then
134 #if ( MARGIN==1 || ( MARGIN==2 && MARINE_ICE_FORMATION==1 ) )
138 #elif ( MARGIN==2 && MARINE_ICE_FORMATION==2 )
140 h_ice = zs(j,i)-zb(j,i)
141 zs(j,i) = zl(j,i)+h_ice
144 h_ice = zs(j,i)-zb(j,i)
145 zs(j,i) = freeboard_ratio*h_ice
146 zb(j,i) = zs(j,i)-h_ice
151 xi(i) = xi0 +
real(i,dp)*dxi
152 eta(j) = eta0 +
real(j,dp)*deta
154 call
geo_coord(phi(j,i), lambda(j,i), xi(i), eta(j))
160 h_c(j,i) = zs(j,i)-zm(j,i)
163 dzs_dtau(j,i) = 0.0_dp
164 dzm_dtau(j,i) = 0.0_dp
165 dzb_dtau(j,i) = 0.0_dp
166 dzl_dtau(j,i) = 0.0_dp
167 dh_c_dtau(j,i) = 0.0_dp
168 dh_t_dtau(j,i) = 0.0_dp
187 area(j,i) = sq_g11_g(j,i)*sq_g22_g(j,i)*dxi*deta
subroutine topograd_2(dxi, deta, n_switch)
Calculation of topography gradients on the staggered grid and on the grid points (the latter by fourt...
subroutine topography1(dxi, deta)
Definition of the initial surface and bedrock topography (including gradients) and of the horizontal ...
Declarations of kind types for SICOPOLIS.
subroutine topograd_1(dxi, deta, n_switch)
Calculation of topography gradients on the staggered grid and on the grid points (the latter by secon...
Declarations of global variables for SICOPOLIS (for the ANT domain).
subroutine geo_coord(phi_val, lambda_val, x_val, y_val)
Computation of longitude lambda and latitude phi for position (x,y) in the numerical domain...
subroutine metric()
Definition of the components g11 and g22 of the metric tensor of the applied coordinates.
Declarations of global variables for SICOPOLIS.