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 1271 – NEMO

Changeset 1271


Ignore:
Timestamp:
2009-01-15T09:12:00+01:00 (15 years ago)
Author:
rblod
Message:

Addapt AGRIF routines to the new TOP organization, clean some routines and add a sponge layer for passive tracers, see ticket #293

Location:
trunk/NEMO
Files:
2 added
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/NST_SRC/agrif_top_interp.F90

    r1206 r1271  
    66   USE sol_oce 
    77   USE agrif_oce 
    8    USE trcstp 
    9    USE sms 
     8   USE trc 
    109 
    1110   IMPLICIT NONE 
     
    2221   CONTAINS 
    2322 
    24    SUBROUTINE Agrif_trc( kt ) 
     23   SUBROUTINE Agrif_trc 
    2524      !!--------------------------------------------- 
    2625      !!   *** ROUTINE Agrif_trc *** 
     
    2928#  include "vectopt_loop_substitute.h90" 
    3029       
    31       INTEGER, INTENT(in) :: kt 
    32  
    3330      INTEGER :: ji,jj,jk,jn 
    3431      REAL(wp) :: zrhox 
  • trunk/NEMO/NST_SRC/agrif_top_update.F90

    r1206 r1271  
    88   USE dom_oce 
    99   USE agrif_oce 
    10    USE trcstp 
    11    USE sms 
     10   USE trc 
    1211 
    1312   IMPLICIT NONE 
  • trunk/NEMO/NST_SRC/agrif_user.F90

    r1200 r1271  
    6262      USE dom_oce 
    6363      USE opa 
    64       USE sms 
     64#if defined key_top 
     65      USE trc 
     66#endif 
    6567#if defined key_tradmp   ||   defined key_esopa 
    6668      USE tradmp 
     
    7678      USE agrif_top_update 
    7779      USE agrif_top_interp 
     80      USE agrif_top_sponge 
    7881 
    7982      IMPLICIT NONE 
     
    153156 
    154157#if defined key_top 
     158      Call Agrif_Set_raf(trn,(/'x','y','N','N'/)) 
    155159      Call Agrif_Set_raf(trb,(/'x','y','N','N'/)) 
    156       Call Agrif_Set_raf(trn,(/'x','y','N','N'/)) 
    157160      Call Agrif_Set_raf(tra,(/'x','y','N','N'/)) 
    158161#endif 
     
    241244#if defined key_top 
    242245      Call Agrif_Bc_variable(tabtrtemp,trn,calledweight=1.) 
    243       Call Agrif_Bc_variable(tabtrtemp,tra,calledweight=1.) 
     246      Call Agrif_Bc_variable(tabtrtemp,tra,calledweight=1.,procname=interptrn) 
    244247#endif 
    245248      Agrif_UseSpecialValue = .FALSE. 
     
    292295            ENDIF 
    293296         ENDIF 
     297#if defined key_top 
     298        ! Check passive tracer cell 
     299        IF( ndttrc .ne. 1 ) THEN 
     300           WRITE(*,*) 'ndttrc should be equal to 1' 
     301        ENDIF 
     302#endif 
    294303 
    295304      ENDIF 
    296305 
     306#if defined key_top 
     307      CALL Agrif_Update_trc(0) 
     308#endif 
    297309      CALL Agrif_Update_tra(0) 
    298310      CALL Agrif_Update_dyn(0) 
  • trunk/NEMO/OPA_SRC/DOM/dommsk.F90

    r1152 r1271  
    229229               umask(ji,jj,jk) = tmask(ji,jj  ,jk) * tmask(ji+1,jj  ,jk) 
    230230               vmask(ji,jj,jk) = tmask(ji,jj  ,jk) * tmask(ji  ,jj+1,jk) 
     231            END DO 
     232            DO ji = 1, jpim1  
    231233               fmask(ji,jj,jk) = tmask(ji,jj  ,jk) * tmask(ji+1,jj  ,jk)   & 
    232234                  &            * tmask(ji,jj+1,jk) * tmask(ji+1,jj+1,jk) 
  • trunk/NEMO/OPA_SRC/IOM/iom_ioipsl.F90

    r1152 r1271  
    287287      !! ** Purpose : read the time axis cdvar in the file  
    288288      !!-------------------------------------------------------------------- 
    289       INTEGER                         , INTENT(in)           ::   kt       ! ocean time-step 
    290       INTEGER                         , INTENT(in)           ::   kwrite   ! writing time-step 
    291       INTEGER                         , INTENT(in)           ::   kiomid   ! Identifier of the file  
    292       CHARACTER(len=*)                , INTENT(in)           ::   cdvar    ! variable name 
    293       INTEGER                         , INTENT(in)           ::   kvid     ! variable id 
    294       INTEGER                         , INTENT(in), OPTIONAL ::   ktype    ! variable type (default R8) 
    295       REAL(wp)                        , INTENT(in), OPTIONAL ::   pv_r0d   ! written Od field 
    296       REAL(wp), DIMENSION(        jpk), INTENT(in), OPTIONAL ::   pv_r1d   ! written 1d field 
    297       REAL(wp), DIMENSION(jpi,jpj    ), INTENT(in), OPTIONAL ::   pv_r2d   ! written 2d field 
    298       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL ::   pv_r3d   ! written 3d field 
     289      INTEGER                     , INTENT(in)           ::   kt       ! ocean time-step 
     290      INTEGER                     , INTENT(in)           ::   kwrite   ! writing time-step 
     291      INTEGER                     , INTENT(in)           ::   kiomid   ! Identifier of the file  
     292      CHARACTER(len=*)            , INTENT(in)           ::   cdvar    ! variable name 
     293      INTEGER                     , INTENT(in)           ::   kvid     ! variable id 
     294      INTEGER                     , INTENT(in), OPTIONAL ::   ktype    ! variable type (default R8) 
     295      REAL(wp)                    , INTENT(in), OPTIONAL ::   pv_r0d   ! written Od field 
     296      REAL(wp), DIMENSION(      :), INTENT(in), OPTIONAL ::   pv_r1d   ! written 1d field 
     297      REAL(wp), DIMENSION(:, :   ), INTENT(in), OPTIONAL ::   pv_r2d   ! written 2d field 
     298      REAL(wp), DIMENSION(:, :, :), INTENT(in), OPTIONAL ::   pv_r3d   ! written 3d field 
    299299      ! 
    300300      INTEGER               :: idims                ! number of dimension 
  • trunk/NEMO/OPA_SRC/IOM/iom_nf90.F90

    r1152 r1271  
    313313      !! ** Purpose : read the time axis cdvar in the file  
    314314      !!-------------------------------------------------------------------- 
    315       INTEGER                         , INTENT(in)           ::   kt       ! ocean time-step 
    316       INTEGER                         , INTENT(in)           ::   kwrite   ! writing time-step 
    317       INTEGER                         , INTENT(in)           ::   kiomid   ! Identifier of the file  
    318       CHARACTER(len=*)                , INTENT(in)           ::   cdvar    ! variable name 
    319       INTEGER                         , INTENT(in)           ::   kvid     ! variable id 
    320       INTEGER                         , INTENT(in), OPTIONAL ::   ktype    ! variable type (default R8) 
    321       REAL(wp)                        , INTENT(in), OPTIONAL ::   pv_r0d   ! written Od field 
    322       REAL(wp), DIMENSION(        jpk), INTENT(in), OPTIONAL ::   pv_r1d   ! written 1d field 
    323       REAL(wp), DIMENSION(jpi,jpj    ), INTENT(in), OPTIONAL ::   pv_r2d   ! written 2d field 
    324       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL ::   pv_r3d   ! written 3d field 
     315      INTEGER                     , INTENT(in)           ::   kt       ! ocean time-step 
     316      INTEGER                     , INTENT(in)           ::   kwrite   ! writing time-step 
     317      INTEGER                     , INTENT(in)           ::   kiomid   ! Identifier of the file  
     318      CHARACTER(len=*)            , INTENT(in)           ::   cdvar    ! variable name 
     319      INTEGER                     , INTENT(in)           ::   kvid     ! variable id 
     320      INTEGER                     , INTENT(in), OPTIONAL ::   ktype    ! variable type (default R8) 
     321      REAL(wp)                    , INTENT(in), OPTIONAL ::   pv_r0d   ! written Od field 
     322      REAL(wp), DIMENSION(      :), INTENT(in), OPTIONAL ::   pv_r1d   ! written 1d field 
     323      REAL(wp), DIMENSION(:, :   ), INTENT(in), OPTIONAL ::   pv_r2d   ! written 2d field 
     324      REAL(wp), DIMENSION(:, :, :), INTENT(in), OPTIONAL ::   pv_r3d   ! written 3d field 
    325325      ! 
    326326      INTEGER               :: idims                ! number of dimension 
  • trunk/NEMO/TOP_SRC/PISCES/p4zopt.F90

    r1180 r1271  
    280280      INTEGER :: numlight 
    281281      REAL(wp) ::   ztoto 
     282      CHARACTER(LEN=20) :: clname 
    282283 
    283284      !  FROM THE NEW BIOOPTIC MODEL PROPOSED JM ANDRE, WE READ HERE 
    284285      !  A PRECOMPUTED ARRAY CORRESPONDING TO THE ATTENUATION COEFFICIENT 
    285286 
    286       CALL ctlopn( numlight, 'kRGB61.txt', 'OLD', 'FORMATTED', 'SEQUENTIAL',   & 
     287      clname = 'kRGB61.txt'  
     288      CALL ctlopn( numlight, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   & 
    287289         &           1, numout, .TRUE., 1 ) 
    288290 
  • trunk/NEMO/TOP_SRC/TRP/trcbbl.F90

    r1264 r1271  
    100100      !!     Beckmann, A., and R. Doscher, 1997, J. Phys.Oceanogr., 581-591. 
    101101      !!---------------------------------------------------------------------- 
    102       USE oce_trc, ONLY :   ztrtrd => ua                      ! use ua as 3D workspace    
     102      USE oce, ONLY :   ztrtrd => ua                      ! use ua as 3D workspace    
    103103      !! 
    104104      INTEGER, INTENT( in ) ::   kt                         ! ocean time-step 
  • trunk/NEMO/TOP_SRC/TRP/trcnxt.F90

    r1175 r1271  
    7070      !! ** Action  : - update trb, trn 
    7171      !!---------------------------------------------------------------------- 
     72      USE oce, ONLY :   ztrtrd => ua    ! use ua as 3D workspace  
    7273      !! * Arguments 
    73       USE oce_trc, ONLY : ztrtrd => ua      ! use ua as a 3D workspace 
    74       INTEGER, INTENT( in ) ::   kt         ! ocean time-step index 
     74      INTEGER, INTENT( in ) ::   kt     ! ocean time-step index 
    7575      !! * Local declarations 
    7676      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
     
    8383         WRITE(numout,*) 'trc_nxt : time stepping on passive tracers' 
    8484      ENDIF 
    85  
    8685 
    8786      DO jn = 1, jptra 
     
    113112      END DO                                           !   End of slab 
    114113      !                                                ! =============== 
    115       ! Update tracers  
    116       CALL Agrif_trc( kt ) 
     114      ! Interp tracers on boundaries (coarse => fine) 
     115      CALL Agrif_trc 
    117116      !                                                ! =============== 
    118117      DO jn = 1, jptra                                 ! Horizontal slab 
  • trunk/NEMO/TOP_SRC/TRP/trctrp.F90

    r1256 r1271  
    4242 
    4343   USE zpshde_trc      ! partial step: hor. derivative   (zps_hde_trc routine) 
     44 
     45#if defined key_agrif 
     46   USE agrif_top_sponge ! Momemtum and tracers sponges 
     47#endif 
    4448 
    4549   IMPLICIT NONE 
     
    104108      IF( l_trcldf_iso_zps )   CALL trc_ldf_iso_zps( kt )        ! partial step iso-neutral laplacian 
    105109      IF( l_trcldf_lap     )   CALL trc_ldf_lap    ( kt )        ! iso-level laplacian 
     110 
     111#if defined key_agrif 
     112      IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_trc               ! tracers sponge 
     113#endif 
    106114  
    107115      !                                                      ! vertical diffusion 
  • trunk/NEMO/TOP_SRC/TRP/trczdf_exp.F90

    r1175 r1271  
    7676      !! 
    7777      !!--------------------------------------------------------------------- 
    78       USE oce_trc, ONLY :   ztrtrd => ua    ! use ua as 3D workspace 
     78      USE oce, ONLY :   ztrtrd => ua    ! use ua as 3D workspace 
    7979      !! * Arguments 
    8080      INTEGER, INTENT( in ) ::   kt           ! ocean time-step index 
  • trunk/NEMO/TOP_SRC/TRP/trczdf_imp.F90

    r1264 r1271  
    7575      !! 
    7676      !!--------------------------------------------------------------------- 
    77       USE oce_trc, ONLY : ztrtrd => ua      ! use ua as 3D workspace 
    7877      !! 
    7978      !! * Arguments 
     79      USE oce, ONLY :   ztrtrd => ua    ! use ua as 3D workspace  
     80 
    8081      INTEGER, INTENT( in ) ::   kt           ! ocean time-step index 
    8182      INTEGER ::   ikst, ikenm2, ikstp1 
  • trunk/NEMO/TOP_SRC/TRP/trczdf_iso.F90

    r1258 r1271  
    118118      !!--------------------------------------------------------------------- 
    119119      !! * Modules used 
    120       USE oce_trc , ONLY :    zavs => va, ztrtrd => ua 
     120      USE oce , ONLY :    zavs => va, ztrtrd => ua 
    121121 
    122122      !! * Arguments 
  • trunk/NEMO/TOP_SRC/TRP/trczdf_iso_vopt.F90

    r1264 r1271  
    8585      ! ----------------------------------------------------- 
    8686 
    87       CALL trc_zdf_iso 
     87      CALL trc_zdf_iso( kt ) 
    8888 
    8989      IF( ln_ctl ) THEN    ! print mean trends (used for debugging) 
     
    151151      !!              - Save the trend in trtrd  ('key_trdmld_trc') 
    152152      !!--------------------------------------------------------------------- 
    153       USE oce_trc, ONLY :   zwd   => ua,  &  ! ua, va used as 
     153      USE oce, ONLY :       zwd   => ua,  &  ! ua, va used as 
    154154                            zws   => va      ! workspace 
    155155      INTEGER, INTENT( in ) ::   kt          ! ocean time-step index 
     
    369369 
    370370 
    371    SUBROUTINE trc_zdf_iso 
     371   SUBROUTINE trc_zdf_iso ( kt ) 
    372372      !!---------------------------------------------------------------------- 
    373373      !!                  ***  ROUTINE trc_zdf_iso  *** 
     
    408408      !!         Save in trtrd arrays the trends if 'key_trdmld_trc' defined 
    409409      !!--------------------------------------------------------------------- 
    410       USE oce_trc, ONLY :   zwx => ua,  &  ! use ua, va as 
     410      USE oce, ONLY :   zwx => ua,  &  ! use ua, va as 
    411411                            zwy => va      ! workspace arrays 
     412      INTEGER, INTENT(in) :: kt 
    412413 
    413414      INTEGER ::   ji, jj, jk, jn                ! dummy loop indices 
Note: See TracChangeset for help on using the changeset viewer.