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 5870 for branches/2015/dev_r5803_NOC_WAD/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90 – NEMO

Ignore:
Timestamp:
2015-11-09T18:33:54+01:00 (9 years ago)
Author:
acc
Message:

Branch 2015/dev_r5803_NOC_WAD. Merge in trunk changes from 5803 to 5869 in preparation for merge. Also tidied and reorganised some wetting and drying code. Renamed wadlmt.F90 to wetdry.F90. Wetting drying code changes restricted to domzgr.F90, domvvl.F90 nemogcm.F90 sshwzv.F90, dynspg_ts.F90, wetdry.F90 and dynhpg.F90. Code passes full SETTE tests with ln_wd=.false.. Still awaiting test case for checking with ln_wd=.false.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5803_NOC_WAD/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r5643 r5870  
    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' ) 
     181         IF( sbc_isf_alloc() /= 0 )   CALL ctl_stop( 'sbc_init : unable to allocate sbc_isf arrays' ) 
    183182         fwfisf  (:,:)   = 0.0_wp ; fwfisf_b  (:,:)   = 0.0_wp 
    184183         risf_tsc(:,:,:) = 0.0_wp ; risf_tsc_b(:,:,:) = 0.0_wp 
     
    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.