47 real(dp),
intent(out) :: dxi, deta
49 integer(i4b) :: i, j, n
52 real(dp) :: h_ice, freeboard_ratio
55 character(len= 8) :: ch_imax
56 character(len=128) :: fmt4
58 write(ch_imax, fmt=
'(i8)') imax
59 write(fmt4, fmt=
'(a)')
'('//trim(adjustl(ch_imax))//
'(i1),i1)'
63 open(21, iostat=ios, &
64 file=inpath//
'/'//trim(ch_domain_short)//
'/'//zs_present_file, &
65 recl=16384, status=
'old')
67 if (ios.ne.0) stop
' topography1: Error when opening the zs file!'
69 open(22, iostat=ios, &
70 file=inpath//
'/'//trim(ch_domain_short)//
'/'//zl_present_file, &
71 recl=16384, status=
'old')
73 if (ios.ne.0) stop
' topography1: Error when opening the zl file!'
75 open(23, iostat=ios, &
76 file=inpath//
'/'//trim(ch_domain_short)//
'/'//zl0_file, &
77 recl=16384, status=
'old')
79 if (ios.ne.0) stop
' topography1: Error when opening the zl0 file!'
81 open(24, iostat=ios, &
82 file=inpath//
'/'//trim(ch_domain_short)//
'/'//mask_present_file, &
83 recl=1024, status=
'old')
85 if (ios.ne.0) stop
' topography1: Error when opening the mask file!'
87 do n=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
88 do n=1, 6;
read(22, fmt=
'(a)') ch_dummy;
end do
89 do n=1, 6;
read(23, fmt=
'(a)') ch_dummy;
end do
90 do n=1, 6;
read(24, fmt=
'(a)') ch_dummy;
end do
93 read(21, fmt=*) (zs(j,i), i=0,imax)
94 read(22, fmt=*) (zl(j,i), i=0,imax)
95 read(23, fmt=*) (zl0(j,i), i=0,imax)
96 read(24, fmt=trim(fmt4)) (maske(j,i), i=0,imax)
99 close(21, status=
'keep')
100 close(22, status=
'keep')
101 close(23, status=
'keep')
102 close(24, status=
'keep')
112 freeboard_ratio = (rho_sw-rho)/rho_sw
117 if (maske(j,i) <= 1 )
then
121 else if (maske(j,i) == 2 )
then
123 #if ( MARGIN==1 || MARGIN==2 )
131 else if (maske(j,i) == 3 )
then
133 #if ( MARGIN==1 || ( MARGIN==2 && MARINE_ICE_FORMATION==1 ) )
137 #elif ( MARGIN==2 && MARINE_ICE_FORMATION==2 )
139 h_ice = zs(j,i)-zb(j,i)
140 zs(j,i) = zl(j,i)+h_ice
143 h_ice = zs(j,i)-zb(j,i)
144 zs(j,i) = freeboard_ratio*h_ice
145 zb(j,i) = zs(j,i)-h_ice
150 xi(i) = xi0 +
real(i,dp)*dxi
151 eta(j) = eta0 +
real(j,dp)*deta
153 call
geo_coord(phi(j,i), lambda(j,i), xi(i), eta(j))
159 h_c(j,i) = zs(j,i)-zm(j,i)
162 dzs_dtau(j,i) = 0.0_dp
163 dzm_dtau(j,i) = 0.0_dp
164 dzb_dtau(j,i) = 0.0_dp
165 dzl_dtau(j,i) = 0.0_dp
166 dh_c_dtau(j,i) = 0.0_dp
167 dh_t_dtau(j,i) = 0.0_dp
186 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.