- Timestamp:
- 2010-11-12T20:31:16+01:00 (13 years ago)
- Location:
- branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90
r2287 r2380 8 8 !! 9.0 ! 05-11 (V. Garnier) Surface pressure gradient organization 9 9 !!---------------------------------------------------------------------- 10 #if ( defined key_orca_r2 || defined key_orca_r4 )&& ! defined key_coupled11 !!---------------------------------------------------------------------- 12 !! "key_orca_r 2 or 4"10 #if ( defined key_orca_r1 || defined key_orca_r2 || defined key_orca_r4 ) && ! defined key_coupled 11 !!---------------------------------------------------------------------- 12 !! "key_orca_r1 or 2 or 4" 13 13 !!---------------------------------------------------------------------- 14 14 !!---------------------------------------------------------------------- … … 163 163 ij0 = 102 ; ij1 = 102 164 164 ! ! ======================= 165 CASE ( 1 ) ! ORCA_R1 configurations 166 ! ! ======================= 167 ii0 = 283 ; ii1 = 283 168 ij0 = 200 ; ij1 = 200 169 ! ! ======================= 165 170 CASE DEFAULT ! ORCA R05 or R025 166 171 ! ! ======================= … … 204 209 ii0 = 137 ; ii1 = 137 205 210 ij0 = 101 ; ij1 = 102 211 ! ! ======================= 212 CASE ( 1 ) ! ORCA_R1 configurations 213 ! ! ======================= 214 ii0 = 282 ; ii1 = 282 215 ij0 = 200 ; ij1 = 200 206 216 ! ! ======================= 207 217 CASE DEFAULT ! ORCA R05 or R025 … … 247 257 ij0 = 88 ; ij1 = 88 248 258 ! ! ======================= 259 CASE ( 1 ) ! ORCA_R1 configurations 260 ! ! ======================= 261 ii0 = 331 ; ii1 = 331 262 ij0 = 176 ; ij1 = 176 263 ! ! ======================= 249 264 CASE DEFAULT ! ORCA R05 or R025 250 265 ! ! ======================= … … 289 304 ij0 = 116 ; ij1 = 116 290 305 ! ! ======================= 306 CASE ( 1 ) ! ORCA_R1 configurations 307 ! ! ======================= 308 ii0 = 297 ; ii1 = 297 309 ij0 = 230 ; ij1 = 230 310 ! ! ======================= 291 311 CASE DEFAULT ! ORCA R05 or R025 292 312 ! ! ======================= -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/DOM/domhgr.F90
r2287 r2380 157 157 IF(lwp) WRITE(numout,*) 158 158 IF(lwp) WRITE(numout,*) ' orca_r2: Danish Straits : e2u reduced to 10 km' 159 ! 160 ENDIF 161 162 ! ! ===================== 163 IF( cp_cfg == "orca" .AND. jp_cfg == 1 ) THEN ! ORCA R1 configuration 164 ! ! ===================== 165 166 ii0 = 281 ; ii1 = 282 ! Gibraltar Strait (e2u = 20 km) 167 ij0 = 200 ; ij1 = 200 ; e2u( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 20.e3 168 IF(lwp) WRITE(numout,*) 169 IF(lwp) WRITE(numout,*) ' orca_r1: Gibraltar : e2u reduced to 20 km' 170 171 ii0 = 314 ; ii1 = 315 ! Bhosporus Strait (e2u = 10 km) 172 ij0 = 208 ; ij1 = 208 ; e2u( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 10.e3 173 IF(lwp) WRITE(numout,*) 174 IF(lwp) WRITE(numout,*) ' orca_r1: Bhosporus : e2u reduced to 10 km' 175 176 ii0 = 44 ; ii1 = 44 ! Lombok Strait (e1v = 13 km) 177 ij0 = 124 ; ij1 = 125 ; e1v( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 13.e3 178 IF(lwp) WRITE(numout,*) 179 IF(lwp) WRITE(numout,*) ' orca_r1: Lombok : e1v reduced to 10 km' 180 181 ii0 = 48 ; ii1 = 48 ! Sumba Strait (e1v = 8 km) [closed from bathy_11 on] 182 ij0 = 124 ; ij1 = 125 ; e1v( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 8.e3 183 IF(lwp) WRITE(numout,*) 184 IF(lwp) WRITE(numout,*) ' orca_r1: Sumba : e1v reduced to 8 km' 185 186 ii0 = 53 ; ii1 = 53 ! Ombai Strait (e1v = 13 km) 187 ij0 = 124 ; ij1 = 125 ; e1v( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 13.e3 188 IF(lwp) WRITE(numout,*) 189 IF(lwp) WRITE(numout,*) ' orca_r1: Ombai : e1v reduced to 13 km' 190 191 ii0 = 56 ; ii1 = 56 ! Timor Passage (e1v = 20 km) 192 ij0 = 124 ; ij1 = 125 ; e1v( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 20.e3 193 IF(lwp) WRITE(numout,*) 194 IF(lwp) WRITE(numout,*) ' orca_r1: Timor Passage : e1v reduced to 20 km' 195 196 ii0 = 55 ; ii1 = 55 ! West Halmahera Strait (e1v = 30 km) 197 ij0 = 141 ; ij1 = 142 ; e1v( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 30.e3 198 IF(lwp) WRITE(numout,*) 199 IF(lwp) WRITE(numout,*) ' orca_r1: W Halmahera : e1v reduced to 30 km' 200 201 ii0 = 58 ; ii1 = 58 ! East Halmahera Strait (e1v = 50 km) 202 ij0 = 141 ; ij1 = 142 ; e1v( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 50.e3 203 IF(lwp) WRITE(numout,*) 204 IF(lwp) WRITE(numout,*) ' orca_r1: E Halmahera : e1v reduced to 50 km' 205 206 ! 207 208 ! 209 ! 210 ! 159 211 ! 160 212 ENDIF -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
r2287 r2380 331 331 ! 332 332 ENDIF 333 ! ! ===================== 334 IF( cp_cfg == "orca" .AND. jp_cfg .eq. 1 ) THEN ! ORCA R1 configuration 335 ! ! ===================== 336 337 ii0 = 283 ; ii1 = 284 ! Gibraltar Strait 338 ij0 = 200 ; ij1 = 200 ; fmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) = 2.0 339 IF(lwp) WRITE(numout,*) 340 IF(lwp) WRITE(numout,*) ' orca_r1: Gibraltar : ' 341 342 ii0 = 314 ; ii1 = 315 ! Bhosporus Strait 343 ij0 = 208 ; ij1 = 208 ; fmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) = 2.0 344 IF(lwp) WRITE(numout,*) 345 IF(lwp) WRITE(numout,*) ' orca_r1: Bhosporus : ' 346 347 ii0 = 48 ; ii1 = 48 ! Makassar Strait (Top) 348 ij0 = 149 ; ij1 = 150 ; fmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) = 3.0 349 IF(lwp) WRITE(numout,*) 350 IF(lwp) WRITE(numout,*) ' orca_r1: Makassar (Top) : ' 351 352 ii0 = 44 ; ii1 = 44 ! Lombok Strait 353 ij0 = 124 ; ij1 = 125 ; fmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) = 2.0 354 IF(lwp) WRITE(numout,*) 355 IF(lwp) WRITE(numout,*) ' orca_r1: Lombok : ' 356 357 ii0 = 53 ; ii1 = 53 ! Ombai Strait 358 ij0 = 124 ; ij1 = 125 ; fmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) = 2.0 359 IF(lwp) WRITE(numout,*) 360 IF(lwp) WRITE(numout,*) ' orca_r1: Ombai : ' 361 362 ii0 = 56 ; ii1 = 56 ! Timor Passage 363 ij0 = 124 ; ij1 = 125 ; fmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) = 2.0 364 IF(lwp) WRITE(numout,*) 365 IF(lwp) WRITE(numout,*) ' orca_r1: ' 366 367 ii0 = 58 ; ii1 = 58 ! West Halmahera Strait 368 ij0 = 141 ; ij1 = 142 ; fmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) = 3.0 369 IF(lwp) WRITE(numout,*) 370 IF(lwp) WRITE(numout,*) ' orca_r1: West Halmahera : ' 371 372 ii0 = 55 ; ii1 = 55 ! East Halmahera Strait 373 ij0 = 141 ; ij1 = 142 ; fmask( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1), 1:jpk ) = 3.0 374 IF(lwp) WRITE(numout,*) 375 IF(lwp) WRITE(numout,*) ' orca_r1: East Halmahera : ' 376 377 ! 378 ! 379 ENDIF 333 380 ! 334 381 CALL lbc_lnk( fmask, 'F', 1. ) ! Lateral boundary conditions on fmask -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90
r2379 r2380 443 443 CALL iom_get ( inum, jpdom_data, 'Bathymetry', bathy ) 444 444 CALL iom_close (inum) 445 ! ! ===================== 446 IF( cp_cfg == "orca" .AND. jp_cfg == 1 ) THEN ! ORCA R1 configuration 447 ii0 = 142 ; ii1 = 142 ! Close Halmera Strait 448 ij0 = 51 ; ij1 = 53 ! ===================== 449 DO ji = mi0(ii0), mi1(ii1) 450 DO jj = mj0(ij0), mj1(ij1) 451 bathy(ji,jj) = 0.0 452 END DO 453 END DO 454 IF(lwp) WRITE(numout,*) 455 IF(lwp) WRITE(numout,*) ' orca_r1: Halmera strait closed at i=',ii0,' j=',ij0,'->',ij1 456 ENDIF 445 457 ! ! ===================== 446 IF( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN ! ORCA R2 configuration447 ! ! =====================458 IF( cp_cfg == "orca" .AND. jp_cfg == 2 ) THEN ! ORCA R2 configuration 459 ! ! ===================== 448 460 IF( n_cla == 0 ) THEN 449 461 ! -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn_c2d.h90
r2287 r2380 74 74 ENDIF 75 75 76 ! Special case for ORCA R 2 and R4 configurations (overwrite the value of ahm1 ahm2)76 ! Special case for ORCA R1, R2 and R4 configurations (overwrite the value of ahm1 ahm2) 77 77 ! ============================================== 78 78 IF( cp_cfg == "orca" .AND. ( jp_cfg == 2 .OR. jp_cfg == 4 ) ) CALL ldf_dyn_c2d_orca( ld_print ) 79 IF( cp_cfg == "orca" .AND. jp_cfg == 1) CALL ldf_dyn_c2d_orca_R1( ld_print ) 79 80 80 81 ! Control print … … 288 289 289 290 END SUBROUTINE ldf_dyn_c2d_orca 291 292 SUBROUTINE ldf_dyn_c2d_orca_R1( ld_print ) 293 !!---------------------------------------------------------------------- 294 !! *** ROUTINE ldf_dyn_c2d *** 295 !! 296 !! **** W A R N I N G **** 297 !! 298 !! ORCA R1 configuration 299 !! 300 !! **** W A R N I N G **** 301 !! 302 !! ** Purpose : initializations of the lateral viscosity for orca R1 303 !! 304 !! ** Method : blah blah blah... 305 !! 306 !!---------------------------------------------------------------------- 307 !! * Modules used 308 USE ldftra_oce, ONLY : aht0 309 310 !! * Arguments 311 LOGICAL, INTENT (in) :: ld_print ! If true, output arrays on numout 312 313 !! * Local variables 314 INTEGER :: ji, jj, jn ! dummy loop indices 315 INTEGER :: inum ! temporary logical unit 316 INTEGER :: iim, ijm 317 INTEGER :: ifreq, il1, il2, ij, ii 318 INTEGER, DIMENSION(jpidta,jpidta) :: idata 319 INTEGER, DIMENSION(jpi ,jpj ) :: icof 320 321 REAL(wp) :: zahmeq, zcoft, zcoff, zmsk, zam20s 322 323 CHARACTER (len=15) :: clexp 324 !!---------------------------------------------------------------------- 325 326 IF(lwp) WRITE(numout,*) 327 IF(lwp) WRITE(numout,*) 'inildf: 2d eddy viscosity coefficient' 328 IF(lwp) WRITE(numout,*) '~~~~~~ --' 329 IF(lwp) WRITE(numout,*) 330 IF(lwp) WRITE(numout,*) ' orca_r1 ocean model' 331 IF(lwp) WRITE(numout,*) 332 333 #if defined key_antarctic 334 # include "ldfdyn_antarctic.h90" 335 #elif defined key_arctic 336 # include "ldfdyn_arctic.h90" 337 #else 338 ! Read 2d integer array to specify western boundary increase in the 339 ! ===================== equatorial strip (20N-20S) defined at t-points 340 341 CALL ctl_opn( inum, 'ahmcoef', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', & 342 & 1, numout, lwp ) 343 REWIND inum 344 READ(inum,9101) clexp, iim, ijm 345 READ(inum,'(/)') 346 ifreq = 40 347 il1 = 1 348 DO jn = 1, jpidta/ifreq+1 349 READ(inum,'(/)') 350 il2 = MIN( jpidta, il1+ifreq-1 ) 351 READ(inum,9201) ( ii, ji = il1, il2, 5 ) 352 READ(inum,'(/)') 353 DO jj = jpjdta, 1, -1 354 READ(inum,9202) ij, ( idata(ji,jj), ji = il1, il2 ) 355 END DO 356 il1 = il1 + ifreq 357 END DO 358 359 DO jj = 1, nlcj 360 DO ji = 1, nlci 361 icof(ji,jj) = idata( mig(ji), mjg(jj) ) 362 END DO 363 END DO 364 DO jj = nlcj+1, jpj 365 DO ji = 1, nlci 366 icof(ji,jj) = icof(ji,nlcj) 367 END DO 368 END DO 369 DO jj = 1, jpj 370 DO ji = nlci+1, jpi 371 icof(ji,jj) = icof(nlci,jj) 372 END DO 373 END DO 374 375 9101 FORMAT(1x,a15,2i8) 376 9201 FORMAT(3x,13(i3,12x)) 377 9202 FORMAT(i3,41i3) 378 379 380 ! Set ahm1 and ahm2 ( T- and F- points) (used for laplacian operator) 381 ! ================= 382 ! define ahm1 and ahm2 at the right grid point position 383 ! (USER: modify ahm1 and ahm2 following your desiderata) 384 385 386 ! Decrease ahm to zahmeq m2/s in the tropics 387 ! (from 90 to 20 degrees: ahm = scaled by local metrics 388 ! from 20 to 2.5 degrees: ahm = decrease in (1-cos)/2 389 ! from 2.5 to 0 degrees: ahm = constant 390 ! symmetric in the south hemisphere) 391 392 zahmeq = aht0 393 zam20s = ahm0*COS( rad * 20. ) 394 395 DO jj = 1, jpj 396 DO ji = 1, jpi 397 IF( ABS( gphif(ji,jj) ) >= 20. ) THEN 398 ! leave as set in ldf_dyn_c2d 399 ELSEIF( ABS( gphif(ji,jj) ) <= 2.5 ) THEN 400 ahm2(ji,jj) = zahmeq 401 ELSE 402 ahm2(ji,jj) = zahmeq + (zam20s-zahmeq)/2. & 403 * ( 1. - COS( rad * ( ABS(gphif(ji,jj))-2.5 ) * 180. / 17.5 ) ) 404 ENDIF 405 IF( ABS( gphit(ji,jj) ) >= 20. ) THEN 406 ! leave as set in ldf_dyn_c2d 407 ELSEIF( ABS( gphit(ji,jj) ) <= 2.5 ) THEN 408 ahm1(ji,jj) = zahmeq 409 ELSE 410 ahm1(ji,jj) = zahmeq + (zam20s-zahmeq)/2. & 411 * ( 1. - COS( rad * ( ABS(gphit(ji,jj))-2.5 ) * 180. / 17.5 ) ) 412 ENDIF 413 END DO 414 END DO 415 416 ! increase along western boundaries of equatorial strip 417 ! t-point 418 DO jj = 1, jpjm1 419 DO ji = 1, jpim1 420 IF( ABS( gphit(ji,jj) ) < 20. ) THEN 421 zcoft = FLOAT( icof(ji,jj) ) / 100. 422 ahm1(ji,jj) = zcoft * ahm0 + (1.-zcoft) * ahm1(ji,jj) 423 ENDIF 424 END DO 425 END DO 426 ! f-point 427 icof(:,:) = icof(:,:) * tmask(:,:,1) 428 DO jj = 1, jpjm1 429 DO ji = 1, jpim1 430 IF( ABS( gphif(ji,jj) ) < 20. ) THEN 431 zmsk = tmask(ji,jj+1,1) + tmask(ji+1,jj+1,1) + tmask(ji,jj,1) + tmask(ji,jj+1,1) 432 IF( zmsk == 0. ) THEN 433 zcoff = 1. 434 ELSE 435 zcoff = FLOAT( icof(ji,jj+1) + icof(ji+1,jj+1) + icof(ji,jj) + icof(ji,jj+1) ) & 436 / (zmsk * 100.) 437 ENDIF 438 ahm2(ji,jj) = zcoff * ahm0 + (1.-zcoff) * ahm2(ji,jj) 439 ENDIF 440 END DO 441 END DO 442 #endif 443 444 ! Lateral boundary conditions on ( ahm1, ahm2 ) 445 ! ============== 446 CALL lbc_lnk( ahm1, 'T', 1. ) ! T-point, unchanged sign 447 CALL lbc_lnk( ahm2, 'F', 1. ) ! F-point, unchanged sign 448 449 ! Control print 450 IF( lwp .AND. ld_print ) THEN 451 WRITE(numout,*) 452 WRITE(numout,*) 'inildf: 2D ahm1 array' 453 CALL prihre(ahm1,jpi,jpj,1,jpi,1,1,jpj,1,1.e-3,numout) 454 WRITE(numout,*) 455 WRITE(numout,*) 'inildf: 2D ahm2 array' 456 CALL prihre(ahm2,jpi,jpj,1,jpi,1,1,jpj,1,1.e-3,numout) 457 ENDIF 458 459 END SUBROUTINE ldf_dyn_c2d_orca_R1 -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/par_oce.F90
r2287 r2380 61 61 !!--------------------------------------------------------------------- 62 62 # include "par_ORCA_R2.h90" 63 #elif defined key_orca_r1 64 !!--------------------------------------------------------------------- 65 !! 'key_orca_r1' : global ocean : ORCA R1 66 !!--------------------------------------------------------------------- 67 # include "par_ORCA_R1.h90" 63 68 #elif defined key_orca_r05 64 69 !!---------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.