Changeset 5856


Ignore:
Timestamp:
2015-11-02T15:15:41+01:00 (5 years ago)
Author:
jcastill
Message:

The Surface stress wind is only received from atmosphere if specified in namsbc_cpl

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_rm_um_cpl/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r5855 r5856  
    306306      srcv(jpr_itz2)%clname = 'O_ITauz2'      ! 3rd   -      -         -     -  
    307307      !  
    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. 
     308      IF( TRIM( sn_rcv_tau%cldes ) == 'oce only' .OR. 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. 
    311311       
    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 
     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 
    377377      ENDIF  
    378378      !                                                      ! ------------------------- ! 
Note: See TracChangeset for help on using the changeset viewer.