Changeset 2808


Ignore:
Timestamp:
2011-07-20T17:34:39+02:00 (9 years ago)
Author:
acc
Message:

Corrected version of simplified harmonic Neptune effect.
This version runs OK in ORCA2 and ORCA1 configurations.

Location:
branches/2011/dev_r2787_NOCS_NEPTUNE/NEMOGCM
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_r2787_NOCS_NEPTUNE/NEMOGCM/ARCH/arch-ALTIX_NAUTILUS4.fcm

    r2364 r2808  
    2222# Note use of -Bstatic because the library root directories are not accessible to the back-end compute nodes 
    2323%NCDF_LIB            -L%HDF5_HOME/lib -L%NCDF_HOME/lib -Bstatic -lnetcdf -lhdf5_fortran -lhdf5_hl -lhdf5 -Bdynamic -lz 
    24 %FC                  mpif90 
     24%FC                  ifort 
    2525%FCFLAGS             -r8 -O3 -xT -ip -vec-report0 
    2626%FFLAGS              -r8 -O3 -xT -ip -vec-report0 
    27 %LD                  mpif90 
     27%LD                  ifort 
    2828%FPPFLAGS            -P -C -traditional 
    29 %LDFLAGS 
     29%LDFLAGS             -lmpi 
    3030%AR                  ar  
    3131%ARFLAGS             -r 
  • branches/2011/dev_r2787_NOCS_NEPTUNE/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist

    r2795 r2808  
    866866&nam_dynnept  !   Neptune effect (simplified: lateral and vertical diffusions removed) 
    867867!----------------------------------------------------------------------- 
     868! Suggested lengthscale values are those of Eby & Holloway (1994) fo a coarse model 
    868869   ln_neptsimp          = .false.  ! yes/no use simplified neptune 
    869870 
    870871   ln_smoothtopo        = .false.  ! yes/no smooth tsu, tsv 
    871    rn_tslse             =  1.2e4   ! value of L at the equator 
    872    rn_tslsp             =  3.0e3   ! value of L at the pole 
    873 / 
     872   rn_tslse             =  1.2e4   ! value of lengthscale L at the equator 
     873   rn_tslsp             =  3.0e3   ! value of lengthscale L at the pole 
     874/ 
  • branches/2011/dev_r2787_NOCS_NEPTUNE/NEMOGCM/NEMO/OPA_SRC/DYN/dynnept.F90

    r2795 r2808  
    22   !!====================================================================== 
    33   !!                       ***  MODULE  dynnept  *** 
    4    !! Ocean dynamics: topostress as proposed by Greg Holloway, 
     4   !! Ocean dynamics: Neptune effect as proposed by Greg Holloway, 
    55   !!                 recoded version of simplest case (u*, v* only) 
    66   !!====================================================================== 
     
    1919   !! smooth_topo2         : 
    2020   !!---------------------------------------------------------------------- 
    21 #if  defined key_dynnept  ||  defined key_esopa 
    2221   USE oce              ! ocean dynamics and tracers 
    2322   USE dom_oce          ! ocean space and time domain 
     
    3332 
    3433   !! * Routine accessibility 
    35    PUBLIC dyn_nept_init       ! routine called by nemogcm.F90 
    36    PUBLIC dyn_cor_topo        ! routine called by step.F90 
     34   PUBLIC dyn_nept_init      ! routine called by nemogcm.F90 
     35   PUBLIC dyn_cor_topo       ! routine called by step.F90 
    3736   !! dynnept_alloc()     is called only by dyn_nept_init, within this module 
    3837   !! div_cur_nept_init   is called only by dyn_nept_init, within this module 
     
    4039 
    4140   !! * Shared module variables 
    42    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)    :: zunep, zvnep  ! topostress u and v 
    43    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  :: zhdivnep      ! hor. div for Neptune vel. 
    44    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  :: zmrotnep      ! curl for Neptune vel. 
     41   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)    :: zunep, zvnep  ! Neptune u and v 
     42   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  :: zhdivnep      ! hor. div for Neptune vel. 
     43   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  :: zmrotnep      ! curl for Neptune vel. 
    4544 
    4645 
    4746   !! * Namelist nam_dynnept variables 
    48    LOGICAL    ::  ln_neptsimp    = .FALSE.  ! yes/no use cortopo 
    49  
    50    LOGICAL    ::  ln_smoothtopo  = .FALSE.  ! yes/no smooth zunep, zvnep 
    51    REAL(wp)   ::  rn_tslse       =  1.2e4   ! value of L at the equator 
    52    REAL(wp)   ::  rn_tslsp       =  3.0e3   ! value of L at the pole 
     47   LOGICAL, PUBLIC  ::  ln_neptsimp    = .FALSE.  ! yes/no simplified neptune 
     48 
     49   LOGICAL          ::  ln_smoothtopo  = .FALSE.  ! yes/no smooth zunep, zvnep 
     50   REAL(wp)         ::  rn_tslse       =  1.2e4   ! value of L at the equator 
     51   REAL(wp)         ::  rn_tslsp       =  3.0e3   ! value of L at the pole 
    5352 
    5453   !! * Module variables 
     
    8786      !! ** History :  1.0  !   07-05  (Zeliang Wang)   Original code for zunep, zvnep 
    8887      !!               1.1  !   07-06  (Michael Dunphy) namelist and  initialisation 
    89       !!               2.0  ! 2011-06  (Jeff Blundell, NOCS) 
     88      !!               2.0  ! 2011-07  (Jeff Blundell, NOCS) 
    9089      !!                    ! Simplified form for temporally invariant u*, v* 
    9190      !!                    ! Horizontal and vertical diffusivity formulations removed 
     
    112111      !!---------------------------------------------------------------------- 
    113112 
    114       ! Define the topostress parameters 
    115       ! ================================ 
     113      ! Define the (simplified) Neptune parameters 
     114      ! ========================================== 
    116115 
    117116!!    WRITE(numout,*) ' start dynnept namelist' 
    118117!!    CALL FLUSH(numout) 
    119       REWIND( numnam )                  ! Read Namelist nam_dynnept:  Topostress 
     118      REWIND( numnam )                  ! Read Namelist nam_dynnept:  Simplified Neptune 
    120119      READ  ( numnam, nam_dynnept ) 
    121120!!    WRITE(numout,*) ' dynnept namelist done' 
     
    124123      IF(lwp) THEN                      ! Control print 
    125124         WRITE(numout,*) 
    126          WRITE(numout,*) 'dyn_nept_init : Topostress module enabled' 
     125         WRITE(numout,*) 'dyn_nept_init : Simplified Neptune module enabled' 
    127126         WRITE(numout,*) '~~~~~~~~~~~~~' 
    128127         WRITE(numout,*) ' -->   Reading namelist nam_dynnept parameters:' 
     
    190189      IF( ln_smoothtopo ) THEN 
    191190         CALL smooth_topo2( htn, ht, .TRUE. ) 
    192       !! overwrites ht with a smoothed verion of htn 
     191      !! overwrites ht with a smoothed version of htn 
    193192      ELSE 
    194193         ht(:,:) = htn(:,:) 
     
    212211      IF( ln_smoothtopo ) THEN 
    213212         CALL smooth_topo2( hu, hu_n, .TRUE. ) 
    214       !! overwrites hu_n with a smoothed verion of hu 
     213      !! overwrites hu_n with a smoothed version of hu 
    215214      ELSE 
    216215         hu_n(:,:) = hu(:,:) 
     
    229228      IF( ln_smoothtopo ) THEN 
    230229         CALL smooth_topo2( hv, hv_n, .TRUE. ) 
    231       !! overwrites hv_n with a smoothed verion of hv 
     230      !! overwrites hv_n with a smoothed version of hv 
    232231      ELSE 
    233232         hv_n(:,:) = hv(:,:) 
     
    548547   END SUBROUTINE smooth_topo2 
    549548 
    550 #else 
    551    !!------------------------------------------------------------------------ 
    552    !!   Dummy module :                 No Topostress 
    553    !!------------------------------------------------------------------------ 
    554 CONTAINS 
    555    SUBROUTINE dyn_nept_init              ! Dummy routine 
    556       WRITE(*,*) 'dyn_nept_init: You should not have seen this print! error?' 
    557    END SUBROUTINE dyn_nept_init 
    558  
    559    SUBROUTINE dyn_cor_topo( kt )        ! Dummy routine 
    560       INTEGER, INTENT(in) :: kt 
    561       WRITE(*,*) 'dyn_cor_topo: You should not have seen this print! error?', kt 
    562    END SUBROUTINE dyn_cor_topo 
    563  
    564    SUBROUTINE div_cur_nept_init         ! Dummy routine 
    565       WRITE(*,*) 'div_cur_nept_init: You should not have seen this print! error?' 
    566    END SUBROUTINE div_cur_nept_init 
    567 #endif 
    568    !!====================================================================== 
    569549END MODULE dynnept 
Note: See TracChangeset for help on using the changeset viewer.