Changeset 5600 for branches/2014/dev_r4650_UKMO14.12_STAND_ALONE_OBSOPER/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn_c2d.h90
- Timestamp:
- 2015-07-15T17:46:12+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO14.12_STAND_ALONE_OBSOPER/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn_c2d.h90
r4325 r5600 140 140 !!---------------------------------------------------------------------- 141 141 USE ldftra_oce, ONLY: aht0 142 USE iom 142 143 ! 143 144 LOGICAL, INTENT (in) :: ld_print ! If true, output arrays on numout … … 146 147 INTEGER :: inum, iim, ijm ! local integers 147 148 INTEGER :: ifreq, il1, il2, ij, ii 148 INTEGER :: ijpt0,ijpt1 149 INTEGER :: ijpt0,ijpt1, ierror 149 150 REAL(wp) :: zahmeq, zcoft, zcoff, zmsk 150 151 CHARACTER (len=15) :: clexp 151 INTEGER, POINTER, DIMENSION(:,:) :: icof152 INTEGER, POINTER, DIMENSION(:,:) :: idata152 INTEGER, POINTER, DIMENSION(:,:) :: icof 153 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: ztemp2d ! temporary array to read ahmcoef file 153 154 !!---------------------------------------------------------------------- 154 155 ! 155 156 CALL wrk_alloc( jpi , jpj , icof ) 156 CALL wrk_alloc( jpidta, jpjdta, idata )157 157 ! 158 158 IF(lwp) WRITE(numout,*) … … 233 233 ! Read 2d integer array to specify western boundary increase in the 234 234 ! ===================== equatorial strip (20N-20S) defined at t-points 235 236 CALL ctl_opn( inum, 'ahmcoef', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp ) 237 READ(inum,9101) clexp, iim, ijm 238 READ(inum,'(/)') 239 ifreq = 40 240 il1 = 1 241 DO jn = 1, jpidta/ifreq+1 242 READ(inum,'(/)') 243 il2 = MIN( jpidta, il1+ifreq-1 ) 244 READ(inum,9201) ( ii, ji = il1, il2, 5 ) 245 READ(inum,'(/)') 246 DO jj = jpjdta, 1, -1 247 READ(inum,9202) ij, ( idata(ji,jj), ji = il1, il2 ) 248 END DO 249 il1 = il1 + ifreq 250 END DO 251 252 DO jj = 1, nlcj 253 DO ji = 1, nlci 254 icof(ji,jj) = idata( mig(ji), mjg(jj) ) 255 END DO 256 END DO 257 DO jj = nlcj+1, jpj 258 DO ji = 1, nlci 259 icof(ji,jj) = icof(ji,nlcj) 260 END DO 261 END DO 262 DO jj = 1, jpj 263 DO ji = nlci+1, jpi 264 icof(ji,jj) = icof(nlci,jj) 265 END DO 266 END DO 267 268 9101 FORMAT(1x,a15,2i8) 269 9201 FORMAT(3x,13(i3,12x)) 270 9202 FORMAT(i3,41i3) 271 235 ! 236 ALLOCATE( ztemp2d(jpi,jpj) ) 237 ztemp2d(:,:) = 0. 238 CALL iom_open ( 'ahmcoef.nc', inum ) 239 CALL iom_get ( inum, jpdom_data, 'icof', ztemp2d) 240 icof(:,:) = NINT(ztemp2d(:,:)) 241 CALL iom_close( inum ) 242 DEALLOCATE(ztemp2d) 272 243 273 244 ! Set ahm1 and ahm2 ( T- and F- points) (used for laplacian operator) … … 346 317 ! 347 318 CALL wrk_dealloc( jpi , jpj , icof ) 348 CALL wrk_dealloc( jpidta, jpjdta, idata )349 319 ! 350 320 END SUBROUTINE ldf_dyn_c2d_orca … … 367 337 !!---------------------------------------------------------------------- 368 338 USE ldftra_oce, ONLY: aht0 339 USE iom 369 340 ! 370 341 LOGICAL, INTENT (in) :: ld_print ! If true, output arrays on numout … … 374 345 INTEGER :: iim, ijm 375 346 INTEGER :: ifreq, il1, il2, ij, ii 376 INTEGER :: ijpt0,ijpt1 347 INTEGER :: ijpt0,ijpt1, ierror 377 348 REAL(wp) :: zahmeq, zcoft, zcoff, zmsk, zam20s 378 349 CHARACTER (len=15) :: clexp 379 INTEGER, POINTER, DIMENSION(:,:) :: icof380 INTEGER, POINTER, DIMENSION(:,:) :: idata350 INTEGER, POINTER, DIMENSION(:,:) :: icof 351 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: ztemp2d ! temporary array to read ahmcoef file 381 352 !!---------------------------------------------------------------------- 382 353 ! 383 354 CALL wrk_alloc( jpi , jpj , icof ) 384 CALL wrk_alloc( jpidta, jpjdta, idata )385 355 ! 386 387 356 IF(lwp) WRITE(numout,*) 388 357 IF(lwp) WRITE(numout,*) 'inildf: 2d eddy viscosity coefficient' … … 463 432 ! Read 2d integer array to specify western boundary increase in the 464 433 ! ===================== equatorial strip (20N-20S) defined at t-points 465 466 CALL ctl_opn( inum, 'ahmcoef', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', & 467 & 1, numout, lwp ) 468 REWIND inum 469 READ(inum,9101) clexp, iim, ijm 470 READ(inum,'(/)') 471 ifreq = 40 472 il1 = 1 473 DO jn = 1, jpidta/ifreq+1 474 READ(inum,'(/)') 475 il2 = MIN( jpidta, il1+ifreq-1 ) 476 READ(inum,9201) ( ii, ji = il1, il2, 5 ) 477 READ(inum,'(/)') 478 DO jj = jpjdta, 1, -1 479 READ(inum,9202) ij, ( idata(ji,jj), ji = il1, il2 ) 480 END DO 481 il1 = il1 + ifreq 482 END DO 483 484 DO jj = 1, nlcj 485 DO ji = 1, nlci 486 icof(ji,jj) = idata( mig(ji), mjg(jj) ) 487 END DO 488 END DO 489 DO jj = nlcj+1, jpj 490 DO ji = 1, nlci 491 icof(ji,jj) = icof(ji,nlcj) 492 END DO 493 END DO 494 DO jj = 1, jpj 495 DO ji = nlci+1, jpi 496 icof(ji,jj) = icof(nlci,jj) 497 END DO 498 END DO 499 500 9101 FORMAT(1x,a15,2i8) 501 9201 FORMAT(3x,13(i3,12x)) 502 9202 FORMAT(i3,41i3) 503 434 ALLOCATE( ztemp2d(jpi,jpj) ) 435 ztemp2d(:,:) = 0. 436 CALL iom_open ( 'ahmcoef.nc', inum ) 437 CALL iom_get ( inum, jpdom_data, 'icof', ztemp2d) 438 icof(:,:) = NINT(ztemp2d(:,:)) 439 CALL iom_close( inum ) 440 DEALLOCATE(ztemp2d) 504 441 505 442 ! Set ahm1 and ahm2 ( T- and F- points) (used for laplacian operator) … … 583 520 ! 584 521 CALL wrk_dealloc( jpi , jpj , icof ) 585 CALL wrk_dealloc( jpidta, jpjdta, idata )586 522 ! 587 523 END SUBROUTINE ldf_dyn_c2d_orca_R1
Note: See TracChangeset
for help on using the changeset viewer.