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 4245 for branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/C1D – NEMO

Ignore:
Timestamp:
2013-11-19T12:19:21+01:00 (10 years ago)
Author:
cetlod
Message:

dev_locean_cmcc_ingv_ukmo_merc : merge in the MERC_UKMO dev branch with trunk rev 4119

Location:
branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/C1D
Files:
2 edited
3 copied

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/C1D/c1d.F90

    r2409 r4245  
    44   !! Ocean domain  :  1D configuration 
    55   !!===================================================================== 
    6    !! History :   2.0  !  2004-09  (C. Ethe)  Original code 
    7    !!             3.0  !  2008-04 (G. Madec)  adaptation to SBC 
     6   !! History :   2.0  !  2004-09 (C. Ethe)     Original code 
     7   !!             3.0  !  2008-04 (G. Madec)    adaptation to SBC 
     8   !!             3.5  !  2013-10 (D. Calvert)  add namelist 
    89   !!---------------------------------------------------------------------- 
     10#if defined key_c1d 
     11   !!---------------------------------------------------------------------- 
     12   !!   'key_c1d'                                   1D column configuration 
     13   !!---------------------------------------------------------------------- 
     14   !!   c1d_init       : read in the C1D namelist 
     15   !!---------------------------------------------------------------------- 
     16   USE in_out_manager   ! I/O manager 
     17   USE par_kind         ! kind parameters 
    918 
    1019   IMPLICIT NONE 
    1120   PRIVATE 
    1221 
    13 #if defined key_c1d 
    14    LOGICAL, PUBLIC, PARAMETER ::   lk_c1d = .TRUE.    !: 1D config. flag activated 
    15 #else 
    16    LOGICAL, PUBLIC, PARAMETER ::   lk_c1d = .FALSE.   !: 1D config. flag de-activated 
    17 #endif 
     22   PUBLIC   c1d_init                                 ! called by nemogcm.F90 
     23 
     24   LOGICAL , PUBLIC, PARAMETER ::  lk_c1d = .TRUE.   ! 1D config. flag 
     25 
     26   REAL(wp), PUBLIC            ::  rn_lat1d     ! Column latitude 
     27   REAL(wp), PUBLIC            ::  rn_lon1d     ! Column longitude 
    1828 
    1929   !!---------------------------------------------------------------------- 
     
    2232   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    2333   !!====================================================================== 
     34CONTAINS 
     35 
     36   SUBROUTINE c1d_init 
     37      !!---------------------------------------------------------------------- 
     38      !!                  ***  ROUTINE c1d_init  *** 
     39      !!  
     40      !! ** Purpose :   Initialization of C1D options 
     41      !! 
     42      !! ** Method  :   Read namelist namc1d  
     43      !!---------------------------------------------------------------------- 
     44      INTEGER ::   ios                 ! Local integer output status for namelist read 
     45      NAMELIST/namc1d/ rn_lat1d, rn_lon1d 
     46      !!---------------------------------------------------------------------- 
     47      ! 
     48 
     49      REWIND( numnam_ref )              ! Namelist namc1d in reference namelist : Tracer advection scheme 
     50      READ  ( numnam_ref, namc1d, IOSTAT = ios, ERR = 901) 
     51901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d in reference namelist', lwp ) 
     52 
     53      REWIND( numnam_cfg )              ! Namelist namtra_adv in configuration namelist : Tracer advection scheme 
     54      READ  ( numnam_cfg, namc1d, IOSTAT = ios, ERR = 902 ) 
     55902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d in configuration namelist', lwp ) 
     56      WRITE ( numond, namc1d ) 
     57 
     58      ! 
     59      IF(lwp) THEN                    ! Control print 
     60         WRITE(numout,*) 
     61         WRITE(numout,*) 'c1d_init : Initialize 1D model configuration options' 
     62         WRITE(numout,*) '~~~~~~~~' 
     63         WRITE(numout,*) '   Namelist namc1d : set options for the C1D model' 
     64         WRITE(numout,*) '      column latitude                 rn_lat1d = ', rn_lat1d 
     65         WRITE(numout,*) '      column longitude                rn_lon1d = ', rn_lon1d 
     66      ENDIF 
     67      ! 
     68      ! 
     69   END SUBROUTINE c1d_init 
     70 
     71#else 
     72   !!---------------------------------------------------------------------- 
     73   !!   Dummy module :                           No use of 1D configuration 
     74   !!---------------------------------------------------------------------- 
     75   USE par_kind         ! kind parameters 
     76 
     77   LOGICAL, PUBLIC, PARAMETER ::   lk_c1d = .FALSE.   !: 1D config. flag de-activated 
     78   REAL(wp)                   ::   rn_lat1d, rn_lon1d 
     79CONTAINS 
     80 
     81   SUBROUTINE c1d_init               ! Dummy routine 
     82   END SUBROUTINE c1d_init 
     83 
     84#endif 
     85 
     86   !!====================================================================== 
    2487END MODULE c1d 
  • branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/C1D/dtauvd.F90

    r4244 r4245  
    2626   PUBLIC   dta_uvd        ! called by istate.F90 and dyndmp.90 
    2727 
    28    LOGICAL , PUBLIC ::   ln_uvd_init   = .FALSE.      ! Flag to initialise with U & V current data 
    29    LOGICAL , PUBLIC ::   ln_uvd_dyndmp = .FALSE.      ! Flag for Newtonian damping toward U & V current data 
     28   LOGICAL , PUBLIC ::   ln_uvd_init         ! Flag to initialise with U & V current data 
     29   LOGICAL , PUBLIC ::   ln_uvd_dyndmp       ! Flag for Newtonian damping toward U & V current data 
    3030 
    3131   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_uvd   ! structure for input U & V current (file information and data) 
     
    5959      !! 
    6060      NAMELIST/namc1d_uvd/ ln_uvd_init, ln_uvd_dyndmp, cn_dir, sn_ucur, sn_vcur 
     61      INTEGER  ::   ios 
    6162      !!---------------------------------------------------------------------- 
    6263      ! 
     
    6465      ! 
    6566      ierr0 = 0  ;  ierr1 = 0  ;  ierr2 = 0  ;  ierr3 = 0 
    66       ! 
    67       cn_dir = './'                 ! default: directory in which the model is executed 
    68       ! 
    69       !                             !==   read namelist namc1d_uvd: flags and field info   ==! 
    70  
    71       !                             ! default values (NB: frequency positive => hours, negative => months) 
    72       !              !   file   ! frequency ! variable  ! time intep !  clim   ! 'yearly' or ! weights  ! rotation ! 
    73       !              !   name   !  (hours)  !  name     !   (T/F)    !  (T/F)  !  'monthly'  ! filename ! pairs    ! 
    74       sn_ucur = FLD_N( 'ucurrent',   -1     , 'u_current',  .false.  , .true.  ,  'monthly'  , ''       , 'Ume'    ) 
    75       sn_vcur = FLD_N( 'vcurrent',   -1     , 'v_current',  .false.  , .true.  ,  'monthly'  , ''       , 'Vme'    ) 
    76  
    77       REWIND( numnam )              ! Read in namelist namc1d_uvd 
    78       READ  ( numnam, namc1d_uvd ) 
     67 
     68      REWIND( numnam_ref )              ! Namelist namc1d_uvd in reference namelist :  
     69      READ  ( numnam_ref, namc1d_uvd, IOSTAT = ios, ERR = 901) 
     70901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d_uvd in reference namelist', lwp ) 
     71 
     72      REWIND( numnam_cfg )              ! Namelist namc1d_uvd in configuration namelist : Parameters of the run 
     73      READ  ( numnam_cfg, namc1d_uvd, IOSTAT = ios, ERR = 902 ) 
     74902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d_uvd in configuration namelist', lwp ) 
     75      WRITE ( numond, namc1d_uvd ) 
    7976 
    8077      !                             ! force the initialization when dyndmp is used 
  • branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/C1D/dyndmp.F90

    r4244 r4245  
    3333   PUBLIC   dyn_dmp      ! routine called by step_c1d.F90 
    3434 
    35    LOGICAL, PUBLIC ::   ln_dyndmp = .TRUE.                             ! Flag for Newtonian damping 
     35   LOGICAL, PUBLIC ::   ln_dyndmp           ! Flag for Newtonian damping 
    3636 
    3737   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  utrdmp    ! damping U current trend (m/s2) 
     
    7373      !!---------------------------------------------------------------------- 
    7474      NAMELIST/namc1d_dyndmp/ ln_dyndmp 
    75       !!---------------------------------------------------------------------- 
    76  
    77       REWIND ( numnam )                      !==   read namelist namc1d_dyndmp : momentum damping flag     ==! 
    78       READ   ( numnam, namc1d_dyndmp )       !==   (namelist of namtra_dmp is used for other parameters)   ==! 
     75      INTEGER :: ios 
     76      !!---------------------------------------------------------------------- 
     77 
     78      REWIND( numnam_ref )              ! Namelist namc1d_dyndmp in reference namelist :  
     79      READ  ( numnam_ref, namc1d_dyndmp, IOSTAT = ios, ERR = 901) 
     80901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d_dyndmp in reference namelist', lwp ) 
     81 
     82      REWIND( numnam_cfg )              ! Namelist namc1d_dyndmp in configuration namelist : Parameters of the run 
     83      READ  ( numnam_cfg, namc1d_dyndmp, IOSTAT = ios, ERR = 902 ) 
     84902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc1d_dyndmp in configuration namelist', lwp ) 
     85      WRITE ( numond, namc1d_dyndmp ) 
    7986 
    8087      IF(lwp) THEN                           ! control print 
  • branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/C1D/step_c1d.F90

    r4153 r4245  
    1313   !!   stp_c1d        : NEMO system time-stepping in c1d case 
    1414   !!---------------------------------------------------------------------- 
    15    USE step_oce         ! time stepping definition modules  
     15   USE step_oce        ! time stepping definition modules  
    1616#if defined key_top 
    17    USE trcstp           ! passive tracer time-stepping      (trc_stp routine) 
     17   USE trcstp          ! passive tracer time-stepping      (trc_stp routine) 
    1818#endif 
    1919   USE dyncor_c1d      ! Coriolis term (c1d case)         (dyn_cor_1d     ) 
    2020   USE dynnxt_c1d      ! time-stepping                    (dyn_nxt routine) 
     21   USE dyndmp          ! U & V momentum damping           (dyn_dmp routine) 
    2122   USE restart         ! restart  
    2223 
     
    124125                             CALL tra_sbc    ( kstp )        ! surface boundary condition 
    125126      IF( ln_traqsr      )   CALL tra_qsr    ( kstp )        ! penetrative solar radiation qsr 
     127      IF( ln_tradmp      )   CALL tra_dmp    ( kstp )        ! internal damping trends- tracers 
    126128      IF( lk_zdfkpp      )   CALL tra_kpp    ( kstp )        ! KPP non-local tracer fluxes 
    127129                             CALL tra_zdf    ( kstp )        ! vertical mixing 
     
    136138                               va(:,:,:) = 0.e0 
    137139 
     140      IF( ln_dyndmp      )     CALL dyn_dmp    ( kstp )       ! internal damping trends- momentum 
    138141                               CALL dyn_cor_c1d( kstp )       ! vorticity term including Coriolis 
    139142                               CALL dyn_zdf    ( kstp )       ! vertical diffusion 
Note: See TracChangeset for help on using the changeset viewer.