- Timestamp:
- 2015-11-02T14:19:50+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_rm_um_cpl/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
- Property svn:keywords deleted
r5487 r5855 306 306 srcv(jpr_itz2)%clname = 'O_ITauz2' ! 3rd - - - - 307 307 ! 308 ! Vectors: change of sign at north fold ONLY if on the local grid 309 IF( TRIM( sn_rcv_tau%clvor ) == 'local grid' ) srcv(jpr_otx1:jpr_itz2)%nsgn = -1. 308 IF( TRIM( sn_rcv_tau%cldes ) == 'oce only' || TRIM( sn_rcv_tau%cldes ) == 'oce and ice') THEN 309 ! Vectors: change of sign at north fold ONLY if on the local grid 310 IF( TRIM( sn_rcv_tau%clvor ) == 'local grid' ) srcv(jpr_otx1:jpr_itz2)%nsgn = -1. 310 311 311 ! ! Set grid and action312 SELECT CASE( TRIM( sn_rcv_tau%clvgrd ) ) ! 'T', 'U,V', 'U,V,I', 'U,V,F', 'T,I', 'T,F', or 'T,U,V'313 CASE( 'T' )314 srcv(jpr_otx1:jpr_itz2)%clgrid = 'T' ! oce and ice components given at T-point315 srcv(jpr_otx1:jpr_otz1)%laction = .TRUE. ! receive oce components on grid 1316 srcv(jpr_itx1:jpr_itz1)%laction = .TRUE. ! receive ice components on grid 1317 CASE( 'U,V' )318 srcv(jpr_otx1:jpr_otz1)%clgrid = 'U' ! oce components given at U-point319 srcv(jpr_otx2:jpr_otz2)%clgrid = 'V' ! and V-point320 srcv(jpr_itx1:jpr_itz1)%clgrid = 'U' ! ice components given at U-point321 srcv(jpr_itx2:jpr_itz2)%clgrid = 'V' ! and V-point322 srcv(jpr_otx1:jpr_itz2)%laction = .TRUE. ! receive oce and ice components on both grid 1 & 2323 CASE( 'U,V,T' )324 srcv(jpr_otx1:jpr_otz1)%clgrid = 'U' ! oce components given at U-point325 srcv(jpr_otx2:jpr_otz2)%clgrid = 'V' ! and V-point326 srcv(jpr_itx1:jpr_itz1)%clgrid = 'T' ! ice components given at T-point327 srcv(jpr_otx1:jpr_otz2)%laction = .TRUE. ! receive oce components on grid 1 & 2328 srcv(jpr_itx1:jpr_itz1)%laction = .TRUE. ! receive ice components on grid 1 only329 CASE( 'U,V,I' )330 srcv(jpr_otx1:jpr_otz1)%clgrid = 'U' ! oce components given at U-point331 srcv(jpr_otx2:jpr_otz2)%clgrid = 'V' ! and V-point332 srcv(jpr_itx1:jpr_itz1)%clgrid = 'I' ! ice components given at I-point333 srcv(jpr_otx1:jpr_otz2)%laction = .TRUE. ! receive oce components on grid 1 & 2334 srcv(jpr_itx1:jpr_itz1)%laction = .TRUE. ! receive ice components on grid 1 only335 CASE( 'U,V,F' )336 srcv(jpr_otx1:jpr_otz1)%clgrid = 'U' ! oce components given at U-point337 srcv(jpr_otx2:jpr_otz2)%clgrid = 'V' ! and V-point338 srcv(jpr_itx1:jpr_itz1)%clgrid = 'F' ! ice components given at F-point339 srcv(jpr_otx1:jpr_otz2)%laction = .TRUE. ! receive oce components on grid 1 & 2340 srcv(jpr_itx1:jpr_itz1)%laction = .TRUE. ! receive ice components on grid 1 only341 CASE( 'T,I' )342 srcv(jpr_otx1:jpr_itz2)%clgrid = 'T' ! oce and ice components given at T-point343 srcv(jpr_itx1:jpr_itz1)%clgrid = 'I' ! ice components given at I-point344 srcv(jpr_otx1:jpr_otz1)%laction = .TRUE. ! receive oce components on grid 1345 srcv(jpr_itx1:jpr_itz1)%laction = .TRUE. ! receive ice components on grid 1346 CASE( 'T,F' )347 srcv(jpr_otx1:jpr_itz2)%clgrid = 'T' ! oce and ice components given at T-point348 srcv(jpr_itx1:jpr_itz1)%clgrid = 'F' ! ice components given at F-point349 srcv(jpr_otx1:jpr_otz1)%laction = .TRUE. ! receive oce components on grid 1350 srcv(jpr_itx1:jpr_itz1)%laction = .TRUE. ! receive ice components on grid 1351 CASE( 'T,U,V' )352 srcv(jpr_otx1:jpr_otz1)%clgrid = 'T' ! oce components given at T-point353 srcv(jpr_itx1:jpr_itz1)%clgrid = 'U' ! ice components given at U-point354 srcv(jpr_itx2:jpr_itz2)%clgrid = 'V' ! and V-point355 srcv(jpr_otx1:jpr_otz1)%laction = .TRUE. ! receive oce components on grid 1 only356 srcv(jpr_itx1:jpr_itz2)%laction = .TRUE. ! receive ice components on grid 1 & 2357 CASE default358 CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_rcv_tau%clvgrd' )359 END SELECT360 !361 IF( TRIM( sn_rcv_tau%clvref ) == 'spherical' ) & ! spherical: 3rd component not received362 & srcv( (/jpr_otz1, jpr_otz2, jpr_itz1, jpr_itz2/) )%laction = .FALSE.363 !364 IF( TRIM( sn_rcv_tau%clvor ) == 'local grid' ) THEN ! already on local grid -> no need of the second grid365 srcv(jpr_otx2:jpr_otz2)%laction = .FALSE.366 srcv(jpr_itx2:jpr_itz2)%laction = .FALSE.367 srcv(jpr_oty1)%clgrid = srcv(jpr_oty2)%clgrid ! not needed but cleaner...368 srcv(jpr_ity1)%clgrid = srcv(jpr_ity2)%clgrid ! not needed but cleaner...369 ENDIF370 !371 IF( TRIM( sn_rcv_tau%cldes ) /= 'oce and ice' ) THEN ! 'oce and ice' case ocean stress on ocean mesh used372 srcv(jpr_itx1:jpr_itz2)%laction = .FALSE. ! ice components not received373 srcv(jpr_itx1)%clgrid = 'U' ! ocean stress used after its transformation374 srcv(jpr_ity1)%clgrid = 'V' ! i.e. it is always at U- & V-points for i- & j-comp. resp.375 ENDIF376 312 ! ! Set grid and action 313 SELECT CASE( TRIM( sn_rcv_tau%clvgrd ) ) ! 'T', 'U,V', 'U,V,I', 'U,V,F', 'T,I', 'T,F', or 'T,U,V' 314 CASE( 'T' ) 315 srcv(jpr_otx1:jpr_itz2)%clgrid = 'T' ! oce and ice components given at T-point 316 srcv(jpr_otx1:jpr_otz1)%laction = .TRUE. ! receive oce components on grid 1 317 srcv(jpr_itx1:jpr_itz1)%laction = .TRUE. ! receive ice components on grid 1 318 CASE( 'U,V' ) 319 srcv(jpr_otx1:jpr_otz1)%clgrid = 'U' ! oce components given at U-point 320 srcv(jpr_otx2:jpr_otz2)%clgrid = 'V' ! and V-point 321 srcv(jpr_itx1:jpr_itz1)%clgrid = 'U' ! ice components given at U-point 322 srcv(jpr_itx2:jpr_itz2)%clgrid = 'V' ! and V-point 323 srcv(jpr_otx1:jpr_itz2)%laction = .TRUE. ! receive oce and ice components on both grid 1 & 2 324 CASE( 'U,V,T' ) 325 srcv(jpr_otx1:jpr_otz1)%clgrid = 'U' ! oce components given at U-point 326 srcv(jpr_otx2:jpr_otz2)%clgrid = 'V' ! and V-point 327 srcv(jpr_itx1:jpr_itz1)%clgrid = 'T' ! ice components given at T-point 328 srcv(jpr_otx1:jpr_otz2)%laction = .TRUE. ! receive oce components on grid 1 & 2 329 srcv(jpr_itx1:jpr_itz1)%laction = .TRUE. ! receive ice components on grid 1 only 330 CASE( 'U,V,I' ) 331 srcv(jpr_otx1:jpr_otz1)%clgrid = 'U' ! oce components given at U-point 332 srcv(jpr_otx2:jpr_otz2)%clgrid = 'V' ! and V-point 333 srcv(jpr_itx1:jpr_itz1)%clgrid = 'I' ! ice components given at I-point 334 srcv(jpr_otx1:jpr_otz2)%laction = .TRUE. ! receive oce components on grid 1 & 2 335 srcv(jpr_itx1:jpr_itz1)%laction = .TRUE. ! receive ice components on grid 1 only 336 CASE( 'U,V,F' ) 337 srcv(jpr_otx1:jpr_otz1)%clgrid = 'U' ! oce components given at U-point 338 srcv(jpr_otx2:jpr_otz2)%clgrid = 'V' ! and V-point 339 srcv(jpr_itx1:jpr_itz1)%clgrid = 'F' ! ice components given at F-point 340 srcv(jpr_otx1:jpr_otz2)%laction = .TRUE. ! receive oce components on grid 1 & 2 341 srcv(jpr_itx1:jpr_itz1)%laction = .TRUE. ! receive ice components on grid 1 only 342 CASE( 'T,I' ) 343 srcv(jpr_otx1:jpr_itz2)%clgrid = 'T' ! oce and ice components given at T-point 344 srcv(jpr_itx1:jpr_itz1)%clgrid = 'I' ! ice components given at I-point 345 srcv(jpr_otx1:jpr_otz1)%laction = .TRUE. ! receive oce components on grid 1 346 srcv(jpr_itx1:jpr_itz1)%laction = .TRUE. ! receive ice components on grid 1 347 CASE( 'T,F' ) 348 srcv(jpr_otx1:jpr_itz2)%clgrid = 'T' ! oce and ice components given at T-point 349 srcv(jpr_itx1:jpr_itz1)%clgrid = 'F' ! ice components given at F-point 350 srcv(jpr_otx1:jpr_otz1)%laction = .TRUE. ! receive oce components on grid 1 351 srcv(jpr_itx1:jpr_itz1)%laction = .TRUE. ! receive ice components on grid 1 352 CASE( 'T,U,V' ) 353 srcv(jpr_otx1:jpr_otz1)%clgrid = 'T' ! oce components given at T-point 354 srcv(jpr_itx1:jpr_itz1)%clgrid = 'U' ! ice components given at U-point 355 srcv(jpr_itx2:jpr_itz2)%clgrid = 'V' ! and V-point 356 srcv(jpr_otx1:jpr_otz1)%laction = .TRUE. ! receive oce components on grid 1 only 357 srcv(jpr_itx1:jpr_itz2)%laction = .TRUE. ! receive ice components on grid 1 & 2 358 CASE default 359 CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_rcv_tau%clvgrd' ) 360 END SELECT 361 ! 362 IF( TRIM( sn_rcv_tau%clvref ) == 'spherical' ) & ! spherical: 3rd component not received 363 & srcv( (/jpr_otz1, jpr_otz2, jpr_itz1, jpr_itz2/) )%laction = .FALSE. 364 ! 365 IF( TRIM( sn_rcv_tau%clvor ) == 'local grid' ) THEN ! already on local grid -> no need of the second grid 366 srcv(jpr_otx2:jpr_otz2)%laction = .FALSE. 367 srcv(jpr_itx2:jpr_itz2)%laction = .FALSE. 368 srcv(jpr_oty1)%clgrid = srcv(jpr_oty2)%clgrid ! not needed but cleaner... 369 srcv(jpr_ity1)%clgrid = srcv(jpr_ity2)%clgrid ! not needed but cleaner... 370 ENDIF 371 ! 372 IF( TRIM( sn_rcv_tau%cldes ) /= 'oce and ice' ) THEN ! 'oce and ice' case ocean stress on ocean mesh used 373 srcv(jpr_itx1:jpr_itz2)%laction = .FALSE. ! ice components not received 374 srcv(jpr_itx1)%clgrid = 'U' ! ocean stress used after its transformation 375 srcv(jpr_ity1)%clgrid = 'V' ! i.e. it is always at U- & V-points for i- & j-comp. resp. 376 ENDIF 377 ENDIF 377 378 ! ! ------------------------- ! 378 379 ! ! freshwater budget ! E-P
Note: See TracChangeset
for help on using the changeset viewer.