Changeset 155 for codes/icosagcm/trunk/src/geometry.f90
- Timestamp:
- 05/20/13 16:35:23 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/geometry.f90
r153 r155 55 55 INTEGER, PARAMETER :: ne_ldown=1 56 56 INTEGER, PARAMETER :: ne_rdown=-1 57 58 REAL(rstd),private :: schmidt_factor, schmidt_lon, schmidt_lat59 57 60 58 CONTAINS … … 248 246 END SUBROUTINE optimize_geometry 249 247 250 SUBROUTINE schmidt_transform(xyz,cc)251 ! Based on formula (12) from Guo & Drake, JCP 2005252 USE spherical_geom_mod253 IMPLICIT NONE254 REAL(rstd),INTENT(INOUT) :: xyz(3)255 REAL(rstd), INTENT(IN) :: cc ! stretching factor>0256 REAL(rstd) :: lat,lon,mu257 CALL xyz2lonlat_relative(xyz,schmidt_lon,schmidt_lat, lon,lat)258 mu = sin(lat)259 mu = ((cc-1)+mu*(cc+1)) / ((cc+1)+mu*(cc-1))260 lat = asin(mu)261 CALL lonlat2xyz_relative(lon,lat,schmidt_lon, schmidt_lat, xyz)262 END SUBROUTINE schmidt_transform263 264 248 SUBROUTINE set_geometry 265 249 USE metric … … 287 271 288 272 CALL optimize_geometry 289 290 ! Schmidt transform291 schmidt_factor = 1.292 CALL getin('schmidt_factor', schmidt_factor)293 294 schmidt_lon = 0.295 CALL getin('schmidt_lon', schmidt_lon)296 schmidt_lon = schmidt_lon * pi/180.297 298 schmidt_lat = 45.299 CALL getin('schmidt_lat', schmidt_lat)300 schmidt_lat = schmidt_lat * pi/180.301 302 DO ind=1,ndomain303 CALL swap_dimensions(ind)304 CALL swap_geometry(ind)305 DO j=jj_begin-1,jj_end+1306 DO i=ii_begin-1,ii_end+1307 n=(j-1)*iim+i308 vertex(:)=xyz_i(n,:)309 CALL schmidt_transform(vertex, schmidt_factor**2.)310 xyz_i(n,:)=vertex(:)311 END DO312 END DO313 END DO314 315 ! at this point the mesh is defined on the unit sphere by xyz_i316 ! all other mesh quantities are now deduced from xyz_i317 318 CALL update_circumcenters319 320 ! DO ind=1,ndomain321 ! d=>domain(ind)322 ! CALL swap_dimensions(ind)323 ! CALL swap_geometry(ind)324 ! DO j=1,jjm325 ! DO i=1,iim326 ! n=(j-1)*iim+i327 ! d%xyz(:,i,j)=xyz_i(n,:)328 ! ENDDO329 ! ENDDO330 ! ENDDO331 !332 ! CALL compute_boundary333 273 334 274 DO ind=1,ndomain
Note: See TracChangeset
for help on using the changeset viewer.