New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 6043 for branches/2014/dev_r4650_UKMO14.12_STAND_ALONE_OBSOPER/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90 – NEMO

Ignore:
Timestamp:
2015-12-14T10:27:28+01:00 (8 years ago)
Author:
timgraham
Message:

Merged head of trunk into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4650_UKMO14.12_STAND_ALONE_OBSOPER/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r5600 r6043  
    2828   USE sbcdcy           ! surface boundary condition: diurnal cycle 
    2929   USE sbcssm           ! surface boundary condition: sea-surface mean variables 
    30    USE sbcapr           ! surface boundary condition: atmospheric pressure 
    3130   USE sbcana           ! surface boundary condition: analytical formulation 
    3231   USE sbcflx           ! surface boundary condition: flux formulation 
     
    133132         WRITE(numout,*) '              forced-coupled mixed formulation           ln_mixcpl   = ', ln_mixcpl 
    134133         WRITE(numout,*) '              OASIS coupling (with atm or sas)           lk_oasis    = ', lk_oasis 
    135          WRITE(numout,*) '              components of your executable              nn_components = ', nn_components 
     134         WRITE(numout,*) '              components of your executable            nn_components = ', nn_components 
    136135         WRITE(numout,*) '              Multicategory heat flux formulation (LIM3) nn_limflx   = ', nn_limflx 
    137136         WRITE(numout,*) '           Misc. options of sbc : ' 
     
    176175 
    177176      !                              ! allocate sbc arrays 
    178       IF( sbc_oce_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'sbc_init : unable to allocate sbc_oce arrays' ) 
     177      IF( sbc_oce_alloc() /= 0 )   CALL ctl_stop( 'sbc_init : unable to allocate sbc_oce arrays' ) 
    179178 
    180179      !                          ! Checks: 
    181180      IF( nn_isf .EQ. 0 ) THEN                      ! variable initialisation if no ice shelf  
    182          IF( sbc_isf_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'sbc_init : unable to allocate sbc_isf arrays' ) 
    183          fwfisf  (:,:) = 0.0_wp 
    184          fwfisf_b(:,:) = 0.0_wp 
     181         IF( sbc_isf_alloc() /= 0 )   CALL ctl_stop( 'sbc_init : unable to allocate sbc_isf arrays' ) 
     182         fwfisf  (:,:)   = 0.0_wp ; fwfisf_b  (:,:)   = 0.0_wp 
     183         risf_tsc(:,:,:) = 0.0_wp ; risf_tsc_b(:,:,:) = 0.0_wp 
    185184         rdivisf       = 0.0_wp 
    186185      END IF 
     
    224223         ENDIF 
    225224      ELSE 
    226       IF ( ln_cdgw .OR. ln_sdw  )                                         &  
    227          &   CALL ctl_stop('Not Activated Wave Module (ln_wave=F) but     & 
    228          & asked coupling with drag coefficient (ln_cdgw =T) or Stokes drift (ln_sdw=T) ') 
     225      IF ( ln_cdgw .OR. ln_sdw  )                                                           &  
     226         &   CALL ctl_stop( 'Not Activated Wave Module (ln_wave=F) but asked coupling ',    & 
     227         &                  'with drag coefficient (ln_cdgw =T) or Stokes drift (ln_sdw=T) ') 
    229228      ENDIF  
    230229      !                          ! Choice of the Surface Boudary Condition (set nsbc) 
     
    241240      IF( nn_components == jp_iam_opa )   & 
    242241         &                  THEN   ;   nsbc = jp_none    ; icpt = icpt + 1   ;   ENDIF       ! opa coupling via SAS module 
    243       IF( lk_esopa        )            nsbc = jp_esopa                                       ! esopa test, ALL formulations 
    244       ! 
    245       IF( icpt /= 1 .AND. .NOT.lk_esopa ) THEN 
    246          WRITE(numout,*) 
    247          WRITE(numout,*) '           E R R O R in setting the sbc, one and only one namelist/CPP key option ' 
    248          WRITE(numout,*) '                     must be choosen. You choose ', icpt, ' option(s)' 
    249          WRITE(numout,*) '                     We stop' 
    250          nstop = nstop + 1 
    251       ENDIF 
     242      ! 
     243      IF( icpt /= 1 )    CALL ctl_stop( 'sbc_init: choose ONE and only ONE sbc option' ) 
     244      ! 
    252245      IF(lwp) THEN 
    253246         WRITE(numout,*) 
    254          IF( nsbc == jp_esopa   )   WRITE(numout,*) '              ESOPA test All surface boundary conditions' 
    255247         IF( nsbc == jp_gyre    )   WRITE(numout,*) '              GYRE analytical formulation' 
    256248         IF( nsbc == jp_ana     )   WRITE(numout,*) '              analytical formulation' 
     
    267259      ! 
    268260      IF( lk_oasis )   CALL sbc_cpl_init (nn_ice)   ! OASIS initialisation. must be done before: (1) first time step 
    269       !                                                     !                                            (2) the use of nn_fsbc 
     261      !                                             !                                            (2) the use of nn_fsbc 
    270262 
    271263!     nn_fsbc initialization if OPA-SAS coupling via OASIS 
    272264!     sas model time step has to be declared in OASIS (mandatory) -> nn_fsbc has to be modified accordingly 
    273265      IF ( nn_components /= jp_iam_nemo ) THEN 
    274  
    275266         IF ( nn_components == jp_iam_opa ) nn_fsbc = cpl_freq('O_SFLX') / NINT(rdt) 
    276267         IF ( nn_components == jp_iam_sas ) nn_fsbc = cpl_freq('I_SFLX') / NINT(rdt) 
     
    344335      !                                            !        forcing field computation         ! 
    345336      !                                            ! ---------------------------------------- ! 
    346       ! 
    347       IF ( .NOT. lk_bdy ) then 
    348          IF( ln_apr_dyn ) CALL sbc_apr( kt )                ! atmospheric pressure provided at kt+0.5*nn_fsbc 
    349       ENDIF 
    350                                                          ! (caution called before sbc_ssm) 
    351337      ! 
    352338      IF( nn_components /= jp_iam_sas )   CALL sbc_ssm( kt )   ! ocean sea surface variables (sst_m, sss_m, ssu_m, ssv_m) 
     
    373359         IF( nn_components == jp_iam_opa ) & 
    374360                             CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice )   ! OPA-SAS coupling: OPA receiving fields from SAS 
    375       CASE( jp_esopa )                                 
    376                              CALL sbc_ana     ( kt )                    ! ESOPA, test ALL the formulations 
    377                              CALL sbc_gyre    ( kt )                    ! 
    378                              CALL sbc_flx     ( kt )                    ! 
    379                              CALL sbc_blk_clio( kt )                    ! 
    380                              CALL sbc_blk_core( kt )                    ! 
    381                              CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice )   ! 
    382361      END SELECT 
    383362 
Note: See TracChangeset for help on using the changeset viewer.