Changeset 93 for trunk/NEMO/OPA_SRC/DOM
- Timestamp:
- 2004-06-25T08:33:00+02:00 (20 years ago)
- Location:
- trunk/NEMO/OPA_SRC/DOM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DOM/domain.F90
r72 r93 143 143 NAMELIST/namrun/ no , cexper , ln_rstart , nrstdt , nit000, & 144 144 & nitend, ndate0 , nleapy , ninist , nstock, & 145 & nprint, nwrite , nrunoff , ln_ctl 145 & nprint, nwrite , nrunoff , ln_ctl , nbench 146 146 NAMELIST/namdom/ ntopo , e3zps_min, e3zps_rat, ngrid , nmsh , & 147 147 & nacc , atfp , rdt , rdtmin , rdtmax, & … … 176 176 WRITE(numout,*) ' runoff option nrunoff = ', nrunoff 177 177 WRITE(numout,*) ' run control (for debugging) ln_ctl = ', ln_ctl 178 WRITE(numout,*) ' benchmark parameter (0/1) nbench = ', nbench 178 179 ENDIF 179 180 … … 324 325 325 326 IF( lk_mpp ) THEN 326 CALL mpp_isl( iimi1 ) 327 CALL mpp_isl( ijmi1 ) 328 CALL mpp_isl( iimi2 ) 329 CALL mpp_isl( ijmi2 ) 330 CALL mpp_isl( iima1 ) 331 CALL mpp_isl( ijma1 ) 332 CALL mpp_isl( iima2 ) 333 CALL mpp_isl( ijma2 ) 334 ENDIF 335 336 IF(lwp) THEN 327 !CT bug CALL mpp_isl( iimi1 ) 328 !CT bug CALL mpp_isl( ijmi1 ) 329 !CT bug CALL mpp_isl( iimi2 ) 330 !CT bug CALL mpp_isl( ijmi2 ) 331 !CT bug CALL mpp_isl( iima1 ) 332 !CT bug CALL mpp_isl( ijma1 ) 333 !CT bug CALL mpp_isl( iima2 ) 334 !CT bug CALL mpp_isl( ijma2 ) 335 ENDIF 336 337 IF(lwp) THEN 338 IF(lk_mpp) THEN 339 WRITE(numout,cform_war) 340 WRITE(numout,*)' Min(Max) of e1t, e2t are those of the first proc only' 341 WRITE(numout,*) 342 END IF 337 343 WRITE(numout,"(14x,'e1t maxi: ',1f10.2,' at i = ',i3,' j= ',i3)") ze1max, iima1, ijma1 338 344 WRITE(numout,"(14x,'e1t mini: ',1f10.2,' at i = ',i3,' j= ',i3)") ze1min, iimi1, ijmi1 -
trunk/NEMO/OPA_SRC/DOM/domhgr.F90
r81 r93 1 1 MODULE domhgr 2 2 !!============================================================================== 3 !! *** MODULE dom ain***3 !! *** MODULE domhgr *** 4 4 !! Ocean initialization : domain initialization 5 5 !!============================================================================== … … 19 19 20 20 !! * Module variables 21 REAL (wp) :: glam0, gphi0! variables corresponding to parameters22 ! ! ppglam0 ppgphi0 set in par_oce21 REAL(wp) :: glam0, gphi0 ! variables corresponding to parameters 22 ! ! ppglam0 ppgphi0 set in par_oce 23 23 24 24 !! * Routine accessibility … … 95 95 !! 9.0 ! 04-01 (A.M. Treguier, J.M. Molines) Case 4 (Mercator mesh) 96 96 !! use of parameters in par_CONFIG-Rxx.h90, not in namelist 97 !! ! 04-05 (A. Koch-Larrouy) Add Gyre configuration 97 98 !!---------------------------------------------------------------------- 98 99 !! * local declarations … … 105 106 zphi0, zbeta, znorme, & ! 106 107 zarg, zf0 108 REAL(wp) :: & 109 zlam1, zcos_alpha, zim1 , zjm1 , ze1, ze1deg, & 110 zphi1, zsin_alpha, zim05, zjm05 107 111 !!---------------------------------------------------------------------- 108 112 … … 280 284 ! Latitude 281 285 gphit(ji,jj) = 1./rad * ASIN ( TANH( ppe1_deg *rad* ztj ) ) 282 gphiu(ji,jj) = 1./rad * ASIN ( TANH( ppe1_deg *rad* z tj ) )283 gphiv(ji,jj) = 1./rad * ASIN ( TANH( ppe1_deg *rad* z tj ) )284 gphif(ji,jj) = 1./rad * ASIN ( TANH( ppe1_deg *rad* z tj ) )286 gphiu(ji,jj) = 1./rad * ASIN ( TANH( ppe1_deg *rad* zuj ) ) 287 gphiv(ji,jj) = 1./rad * ASIN ( TANH( ppe1_deg *rad* zvj ) ) 288 gphif(ji,jj) = 1./rad * ASIN ( TANH( ppe1_deg *rad* zfj ) ) 285 289 ! e1 286 290 e1t(ji,jj) = ra * rad * COS( rad * gphit(ji,jj) ) * ppe1_deg … … 295 299 END DO 296 300 END DO 301 302 CASE ( 5 ) ! beta-plane with regular grid-spacing and rotated domain (GYRE configuration) 303 304 IF(lwp) WRITE(numout,*) 305 IF(lwp) WRITE(numout,*) ' beta-plane with regular grid-spacing and rotated domain (GYRE configuration)' 306 IF(lwp) WRITE(numout,*) ' given by ppe1_m and ppe2_m' 307 308 ! Position coordinates (in kilometers) 309 ! ========== 310 311 ! angle 45° and ze1=106.e+3 / jp_cfg forced -> zlam1 = -85°, zphi1 = 29°N 312 zlam1 = -85 313 zphi1 = 29 314 ze1 = 106000. / FLOAT(jp_cfg) ! resolution in meters 315 IF( nbench /= 0 ) ze1 = 106000.e0 ! benchmark: forced the resolution to be about 100 km 316 zsin_alpha = - SQRT( 2. ) / 2. 317 zcos_alpha = SQRT( 2. ) / 2. 318 ze1deg = ze1 / (ra * rad) 319 IF( nbench /= 0 ) ze1deg = ze1deg / FLOAT(jp_cfg) ! benchmark: keep the lat/+lon 320 ! ! at the right jp_cfg resolution 321 glam0 = zlam1 + zcos_alpha * ze1deg * FLOAT( jpjglo-2 ) 322 gphi0 = zphi1 + zsin_alpha * ze1deg * FLOAT( jpjglo-2 ) 323 324 IF(lwp) WRITE(numout,*) 'ze1', ze1, 'cosalpha', zcos_alpha, 'sinalpha', zsin_alpha 325 IF(lwp) WRITE(numout,*) 'ze1deg', ze1deg, 'glam0', glam0, 'gphi0', gphi0 326 327 DO jj = 1, jpj 328 DO ji = 1, jpi 329 zim1 = FLOAT( ji + nimpp - 1 ) - 1. ; zim05 = FLOAT( ji + nimpp - 1 ) - 1.5 330 zjm1 = FLOAT( jj + njmpp - 1 ) - 1. ; zjm05 = FLOAT( jj + njmpp - 1 ) - 1.5 331 332 glamf(ji,jj) = glam0 + zim1 * ze1deg * zcos_alpha + zjm1 * ze1deg * zsin_alpha 333 gphif(ji,jj) = gphi0 - zim1 * ze1deg * zsin_alpha + zjm1 * ze1deg * zcos_alpha 334 335 glamt(ji,jj) = glam0 + zim05 * ze1deg * zcos_alpha + zjm05 * ze1deg * zsin_alpha 336 gphit(ji,jj) = gphi0 - zim05 * ze1deg * zsin_alpha + zjm05 * ze1deg * zcos_alpha 337 338 glamu(ji,jj) = glam0 + zim1 * ze1deg * zcos_alpha + zjm05 * ze1deg * zsin_alpha 339 gphiu(ji,jj) = gphi0 - zim1 * ze1deg * zsin_alpha + zjm05 * ze1deg * zcos_alpha 340 341 glamv(ji,jj) = glam0 + zim05 * ze1deg * zcos_alpha + zjm1 * ze1deg * zsin_alpha 342 gphiv(ji,jj) = gphi0 - zim05 * ze1deg * zsin_alpha + zjm1 * ze1deg * zcos_alpha 343 END DO 344 END DO 345 346 ! Horizontal scale factors (in meters) 347 ! ====== 348 e1t(:,:) = ze1 ; e2t(:,:) = ze1 349 e1u(:,:) = ze1 ; e2u(:,:) = ze1 350 e1v(:,:) = ze1 ; e2v(:,:) = ze1 351 e1f(:,:) = ze1 ; e2f(:,:) = ze1 297 352 298 353 CASE DEFAULT … … 368 423 IF(lwp) WRITE(numout,*) ' Coriolis parameter varies from ', ff(1,1),' to ', ff(1,jpj) 369 424 425 CASE ( 5 ) ! beta-plane and rotated domain 426 427 zbeta = 2. * omega * COS( rad * ppgphi0 ) / ra ! beta at latitude ppgphi0 428 zphi0 = 15.e0 ! latitude of the first row F-points 429 zf0 = 2. * omega * SIN( rad * zphi0 ) ! compute f0 1st point south 430 431 ff(:,:) = ( zf0 + zbeta * ABS( gphif(:,:) - zphi0 ) * rad * ra ) ! f = f0 +beta* y ( y=0 at south) 432 433 IF(lwp) WRITE(numout,*) ' Beta-plane: Beta parameter = constant = ', ff(1,1) 434 IF(lwp) WRITE(numout,*) ' Coriolis parameter varies from ', ff(1,1),' to ', ff(1,jpj) 435 370 436 END SELECT 371 437
Note: See TracChangeset
for help on using the changeset viewer.