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 2188 for branches/dev_r2174_DCY/NEMO/OPA_SRC/SBC/sbcmod.F90 – NEMO

Ignore:
Timestamp:
2010-10-08T10:32:36+02:00 (14 years ago)
Author:
smasson
Message:

code review but GM for dev_r2174_DCY

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_r2174_DCY/NEMO/OPA_SRC/SBC/sbcmod.F90

    r2187 r2188  
    44   !! Surface module :  provide to the ocean its surface boundary condition 
    55   !!====================================================================== 
    6    !! History :  3.0   !  07-2006  (G. Madec)  Original code 
    7    !!             -    !  08-2008  (S. Masson, E. .... ) coupled interface 
     6   !! History :  3.0  !  2006-07  (G. Madec)  Original code 
     7   !!             -   !  2008-08  (S. Masson, E. .... ) coupled interface 
     8   !!            3.3  !  2010-10  (S. Masson)  add diurnal cycle 
    89   !!---------------------------------------------------------------------- 
    910 
     
    1213   !!   sbc            : surface ocean momentum, heat and freshwater boundary conditions 
    1314   !!---------------------------------------------------------------------- 
    14    USE oce             ! ocean dynamics and tracers 
    15    USE dom_oce         ! ocean space and time domain 
    16    USE phycst          ! physical constants 
    17  
    18    USE sbc_oce         ! Surface boundary condition: ocean fields 
    19    USE sbc_ice         ! Surface boundary condition: ice fields 
    20    USE sbcssm          ! surface boundary condition: sea-surface mean variables 
    21    USE sbcana          ! surface boundary condition: analytical formulation 
    22    USE sbcflx          ! surface boundary condition: flux formulation 
    23    USE sbcblk_clio     ! surface boundary condition: bulk formulation : CLIO 
    24    USE sbcblk_core     ! surface boundary condition: bulk formulation : CORE 
    25    USE sbcice_if       ! surface boundary condition: ice-if sea-ice model 
    26    USE sbcice_lim      ! surface boundary condition: LIM 3.0 sea-ice model 
    27    USE sbcice_lim_2    ! surface boundary condition: LIM 2.0 sea-ice model 
    28    USE sbccpl          ! surface boundary condition: coupled florulation 
     15   USE oce              ! ocean dynamics and tracers 
     16   USE dom_oce          ! ocean space and time domain 
     17   USE phycst           ! physical constants 
     18   USE sbc_oce          ! Surface boundary condition: ocean fields 
     19   USE sbc_ice          ! Surface boundary condition: ice fields 
     20   USE sbcssm           ! surface boundary condition: sea-surface mean variables 
     21   USE sbcana           ! surface boundary condition: analytical formulation 
     22   USE sbcflx           ! surface boundary condition: flux formulation 
     23   USE sbcblk_clio      ! surface boundary condition: bulk formulation : CLIO 
     24   USE sbcblk_core      ! surface boundary condition: bulk formulation : CORE 
     25   USE sbcice_if        ! surface boundary condition: ice-if sea-ice model 
     26   USE sbcice_lim       ! surface boundary condition: LIM 3.0 sea-ice model 
     27   USE sbcice_lim_2     ! surface boundary condition: LIM 2.0 sea-ice model 
     28   USE sbccpl           ! surface boundary condition: coupled florulation 
    2929   USE cpl_oasis3, ONLY:lk_cpl      ! are we in coupled mode? 
    30    USE sbcssr          ! surface boundary condition: sea surface restoring 
    31    USE sbcrnf          ! surface boundary condition: runoffs 
    32    USE sbcfwb          ! surface boundary condition: freshwater budget 
    33    USE closea          ! closed sea 
    34  
    35    USE prtctl          ! Print control                    (prt_ctl routine) 
    36    USE restart         ! ocean restart 
    37    USE iom 
    38    USE in_out_manager  ! I/O manager 
     30   USE sbcssr           ! surface boundary condition: sea surface restoring 
     31   USE sbcrnf           ! surface boundary condition: runoffs 
     32   USE sbcfwb           ! surface boundary condition: freshwater budget 
     33   USE closea           ! closed sea 
     34 
     35   USE prtctl           ! Print control                    (prt_ctl routine) 
     36   USE restart          ! ocean restart 
     37   USE iom              ! IOM library 
     38   USE in_out_manager   ! I/O manager 
    3939 
    4040   IMPLICIT NONE 
     
    4949#  include "domzgr_substitute.h90" 
    5050   !!---------------------------------------------------------------------- 
    51    !! NEMO/OPA 3.0 , LOCEAN-IPSL (2008)  
     51   !! NEMO/OPA 3.3 , NEMO-consortium (2010)  
    5252   !! $Id$ 
    5353   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    5454   !!---------------------------------------------------------------------- 
    55  
    5655CONTAINS 
    5756 
     
    6968      INTEGER ::   icpt      ! temporary integer 
    7069      !! 
    71       NAMELIST/namsbc/ nn_fsbc, ln_ana, ln_flx, ln_blk_clio, ln_blk_core, ln_cpl,   & 
    72          &             nn_ice , ln_dm2dc, ln_rnf, ln_ssr, nn_fwb, nn_ico_cpl 
     70      NAMELIST/namsbc/ nn_fsbc, ln_ana  , ln_flx, ln_blk_clio, ln_blk_core, ln_cpl    ,   & 
     71         &             nn_ice , ln_dm2dc, ln_rnf, ln_ssr     , nn_fwb     , nn_ico_cpl 
    7372      !!---------------------------------------------------------------------- 
    7473 
     
    7978      ENDIF 
    8079 
    81       REWIND( numnam )                   ! Read Namelist namsbc 
     80      REWIND( numnam )           ! Read Namelist namsbc 
    8281      READ  ( numnam, namsbc ) 
    8382 
    84       ! overwrite namelist parameter using CPP key information 
    85 !!gm here no overwrite, test all option via namelist change: require more incore memory 
    86 !!gm  IF( lk_sbc_cpl       ) THEN   ;   ln_cpl      = .TRUE.   ;   ELSE   ;   ln_cpl      = .FALSE.   ;   ENDIF 
    87  
    88       IF ( Agrif_Root() ) THEN 
    89         IF( lk_lim2 )            nn_ice      = 2 
    90         IF( lk_lim3 )            nn_ice      = 3 
    91       ENDIF 
    92       ! 
    93       IF( cp_cfg == 'gyre' ) THEN 
     83      !                          ! overwrite namelist parameter using CPP key information 
     84      IF( Agrif_Root() ) THEN                ! AGRIF zoom 
     85        IF( lk_lim2 )   nn_ice      = 2 
     86        IF( lk_lim3 )   nn_ice      = 3 
     87      ENDIF 
     88      IF( cp_cfg == 'gyre' ) THEN            ! GYRE configuration 
    9489          ln_ana      = .TRUE.    
    9590          nn_ice      =   0 
    9691      ENDIF 
    9792       
    98       ! Control print 
    99       IF(lwp) THEN 
     93      IF(lwp) THEN               ! Control print 
    10094         WRITE(numout,*) '        Namelist namsbc (partly overwritten with CPP key setting)' 
    10195         WRITE(numout,*) '           frequency update of sbc (and ice)             nn_fsbc     = ', nn_fsbc 
     
    116110      ENDIF 
    117111 
     112      !                          ! Checks: 
    118113      IF( .NOT. ln_rnf ) THEN                      ! no specific treatment in vicinity of river mouths  
    119114         ln_rnf_mouth  = .false.                       
     
    144139         &   CALL ctl_warn( 'diurnal cycle for qsr: the sampling of the diurnal cycle is too small...' ) 
    145140       
    146       ! Choice of the Surface Boudary Condition (set nsbc) 
     141      !                          ! Choice of the Surface Boudary Condition (set nsbc) 
    147142      icpt = 0 
    148143      IF( ln_ana          ) THEN   ;   nsbc =  1   ; icpt = icpt + 1   ;   ENDIF       ! analytical      formulation 
     
    153148      IF( cp_cfg == 'gyre') THEN   ;   nsbc =  0                       ;   ENDIF       ! GYRE analytical formulation 
    154149      IF( lk_esopa        )            nsbc = -1                                       ! esopa test, ALL formulations 
    155  
     150      ! 
    156151      IF( icpt /= 1 .AND. .NOT.lk_esopa ) THEN 
    157152         WRITE(numout,*) 
Note: See TracChangeset for help on using the changeset viewer.