Changeset 1226 for trunk/NEMO/OPA_SRC/geo2ocean.F90
- Timestamp:
- 2008-11-27T18:41:45+01:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/geo2ocean.F90
r1218 r1226 39 39 !!---------------------------------------------------------------------- 40 40 !! NEMO/OPA 3.0 , LOCEAN-IPSL (2008) 41 !! $Id :$41 !! $Id$ 42 42 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 43 43 !!---------------------------------------------------------------------- … … 311 311 312 312 ! lateral boundary cond.: T-, U-, V-, F-pts, sgn 313 CALL lbc_lnk 314 CALL lbc_lnk 315 CALL lbc_lnk 316 CALL lbc_lnk 313 CALL lbc_lnk( gcost, 'T', 1. ) ; CALL lbc_lnk( gsint, 'T', -1. ) 314 CALL lbc_lnk( gcosu, 'U', 1. ) ; CALL lbc_lnk( gsinu, 'U', -1. ) 315 CALL lbc_lnk( gcosv, 'V', 1. ) ; CALL lbc_lnk( gsinv, 'V', -1. ) 316 CALL lbc_lnk( gcosf, 'F', 1. ) ; CALL lbc_lnk( gsinf, 'F', -1. ) 317 317 318 318 END SUBROUTINE angle … … 350 350 351 351 SELECT CASE( cgrid) 352 CASE ( ' t' )352 CASE ( 'T' ) 353 353 ig = 1 354 354 IF( .NOT. linit(ig) ) THEN 355 zsinlon (:,:,ig) = SIN (rad * glamt)356 zcoslon (:,:,ig) = COS (rad * glamt)357 zsinlat (:,:,ig) = SIN (rad * gphit)358 zcoslat (:,:,ig) = COS (rad * gphit)359 linit 360 ENDIF 361 CASE ( ' u' )355 zsinlon(:,:,ig) = SIN( rad * glamt(:,:) ) 356 zcoslon(:,:,ig) = COS( rad * glamt(:,:) ) 357 zsinlat(:,:,ig) = SIN( rad * gphit(:,:) ) 358 zcoslat(:,:,ig) = COS( rad * gphit(:,:) ) 359 linit(ig) = .TRUE. 360 ENDIF 361 CASE ( 'U' ) 362 362 ig = 2 363 363 IF( .NOT. linit(ig) ) THEN 364 zsinlon (:,:,ig) = SIN (rad * glamu)365 zcoslon (:,:,ig) = COS (rad * glamu)366 zsinlat (:,:,ig) = SIN (rad * gphiu)367 zcoslat (:,:,ig) = COS (rad * gphiu)368 linit 369 ENDIF 370 CASE ( ' v' )364 zsinlon(:,:,ig) = SIN( rad * glamu(:,:) ) 365 zcoslon(:,:,ig) = COS( rad * glamu(:,:) ) 366 zsinlat(:,:,ig) = SIN( rad * gphiu(:,:) ) 367 zcoslat(:,:,ig) = COS( rad * gphiu(:,:) ) 368 linit(ig) = .TRUE. 369 ENDIF 370 CASE ( 'V' ) 371 371 ig = 3 372 372 IF( .NOT. linit(ig) ) THEN 373 zsinlon (:,:,ig) = SIN (rad * glamv)374 zcoslon (:,:,ig) = COS (rad * glamv)375 zsinlat (:,:,ig) = SIN (rad * gphiv)376 zcoslat (:,:,ig) = COS (rad * gphiv)377 linit 378 ENDIF 379 CASE ( ' f' )373 zsinlon(:,:,ig) = SIN( rad * glamv(:,:) ) 374 zcoslon(:,:,ig) = COS( rad * glamv(:,:) ) 375 zsinlat(:,:,ig) = SIN( rad * gphiv(:,:) ) 376 zcoslat(:,:,ig) = COS( rad * gphiv(:,:) ) 377 linit(ig) = .TRUE. 378 ENDIF 379 CASE ( 'F' ) 380 380 ig = 4 381 381 IF( .NOT. linit(ig) ) THEN 382 zsinlon (:,:,ig) = SIN (rad * glamf)383 zcoslon (:,:,ig) = COS (rad * glamf)384 zsinlat (:,:,ig) = SIN (rad * gphif)385 zcoslat (:,:,ig) = COS (rad * gphif)386 linit 382 zsinlon(:,:,ig) = SIN( rad * glamf(:,:) ) 383 zcoslon(:,:,ig) = COS( rad * glamf(:,:) ) 384 zsinlat(:,:,ig) = SIN( rad * gphif(:,:) ) 385 zcoslat(:,:,ig) = COS( rad * gphif(:,:) ) 386 linit(ig) = .TRUE. 387 387 ENDIF 388 388 CASE default … … 391 391 END SELECT 392 392 393 pte = - zsinlon (:,:,ig) * pxx + zcoslon(:,:,ig) * pyy394 ptn = - zcoslon (:,:,ig) * zsinlat(:,:,ig) * pxx &395 - zsinlon (:,:,ig) * zsinlat(:,:,ig) * pyy &396 + zcoslat 397 !!$ ptv = zcoslon (:,:,ig) * zcoslat(:,:,ig) * pxx &398 !!$ + zsinlon (:,:,ig) * zcoslat(:,:,ig) * pyy &399 !!$ + zsinlat 393 pte = - zsinlon(:,:,ig) * pxx + zcoslon(:,:,ig) * pyy 394 ptn = - zcoslon(:,:,ig) * zsinlat(:,:,ig) * pxx & 395 - zsinlon(:,:,ig) * zsinlat(:,:,ig) * pyy & 396 + zcoslat(:,:,ig) * pzz 397 !!$ ptv = zcoslon(:,:,ig) * zcoslat(:,:,ig) * pxx & 398 !!$ + zsinlon(:,:,ig) * zcoslat(:,:,ig) * pyy & 399 !!$ + zsinlat(:,:,ig) * pzz 400 400 ! 401 401 END SUBROUTINE geo2oce 402 402 403 403 SUBROUTINE oce2geo ( pte, ptn, cgrid, & 404 p lon, plat, pxx , pyy , pzz )404 pxx , pyy , pzz ) 405 405 !!---------------------------------------------------------------------- 406 406 !! *** ROUTINE oce2geo *** … … 415 415 REAL(wp), DIMENSION(jpi,jpj), INTENT( IN ) :: pte, ptn 416 416 CHARACTER(len=1) , INTENT( IN ) :: cgrid 417 REAL(wp), DIMENSION(jpi,jpj), INTENT( IN ) :: plon, plat418 417 REAL(wp), DIMENSION(jpi,jpj), INTENT( OUT ) :: pxx , pyy , pzz 419 418 !! … … 426 425 !!---------------------------------------------------------------------- 427 426 428 WRITE(ctmp1,*) 'oce2geo : Arnaud, au boulot '429 CALL ctl_stop( ctmp1 )430 431 427 SELECT CASE( cgrid) 432 CASE ( 't' ) ;; ig = 1 433 CASE ( 'u' ) ;; ig = 2 434 CASE ( 'v' ) ;; ig = 3 435 CASE ( 'f' ) ;; ig = 4 436 CASE default 437 WRITE(ctmp1,*) 'oce2geo : bad grid argument : ', cgrid 428 CASE ( 'T' ) 429 ig = 1 430 IF( .NOT. linit(ig) ) THEN 431 zsinlon(:,:,ig) = SIN( rad * glamt(:,:) ) 432 zcoslon(:,:,ig) = COS( rad * glamt(:,:) ) 433 zsinlat(:,:,ig) = SIN( rad * gphit(:,:) ) 434 zcoslat(:,:,ig) = COS( rad * gphit(:,:) ) 435 linit(ig) = .TRUE. 436 ENDIF 437 CASE ( 'U' ) 438 ig = 2 439 IF( .NOT. linit(ig) ) THEN 440 zsinlon(:,:,ig) = SIN( rad * glamu(:,:) ) 441 zcoslon(:,:,ig) = COS( rad * glamu(:,:) ) 442 zsinlat(:,:,ig) = SIN( rad * gphiu(:,:) ) 443 zcoslat(:,:,ig) = COS( rad * gphiu(:,:) ) 444 linit(ig) = .TRUE. 445 ENDIF 446 CASE ( 'V' ) 447 ig = 3 448 IF( .NOT. linit(ig) ) THEN 449 zsinlon(:,:,ig) = SIN( rad * glamv(:,:) ) 450 zcoslon(:,:,ig) = COS( rad * glamv(:,:) ) 451 zsinlat(:,:,ig) = SIN( rad * gphiv(:,:) ) 452 zcoslat(:,:,ig) = COS( rad * gphiv(:,:) ) 453 linit(ig) = .TRUE. 454 ENDIF 455 CASE ( 'F' ) 456 ig = 4 457 IF( .NOT. linit(ig) ) THEN 458 zsinlon(:,:,ig) = SIN( rad * glamf(:,:) ) 459 zcoslon(:,:,ig) = COS( rad * glamf(:,:) ) 460 zsinlat(:,:,ig) = SIN( rad * gphif(:,:) ) 461 zcoslat(:,:,ig) = COS( rad * gphif(:,:) ) 462 linit(ig) = .TRUE. 463 ENDIF 464 CASE default 465 WRITE(ctmp1,*) 'geo2oce : bad grid argument : ', cgrid 438 466 CALL ctl_stop( ctmp1 ) 439 END SELECT 440 pxx(:,:) = 0. ; pyy(:,:) = 0. ; pzz(:,:) = 0. ! stupid definition to avoid warning message when compiling... 467 END SELECT 468 469 pxx = - zsinlon(:,:,ig) * pte - zcoslon(:,:,ig) * zsinlat(:,:,ig) * ptn 470 pyy = zcoslon(:,:,ig) * pte - zsinlon(:,:,ig) * zsinlat(:,:,ig) * ptn 471 pzz = zcoslat(:,:,ig) * ptn 472 441 473 442 474 END SUBROUTINE oce2geo
Note: See TracChangeset
for help on using the changeset viewer.