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 15023 for NEMO/trunk/src/OCE – NEMO

Changeset 15023 for NEMO/trunk/src/OCE


Ignore:
Timestamp:
2021-06-18T16:35:25+02:00 (3 years ago)
Author:
gsamson
Message:

merge ticket2680_C1D_PAPA branch back into the trunk; see ticket #2680 for details

Location:
NEMO/trunk/src/OCE
Files:
2 deleted
16 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/ASM/asminc.F90

    r14834 r15023  
    617617!!gm 
    618618 
    619             IF( ln_zps .AND. .NOT. lk_c1d .AND. .NOT. ln_isfcav)           & 
     619            IF( ln_zps .AND. .NOT. ln_c1d .AND. .NOT. ln_isfcav)           & 
    620620               &  CALL zps_hde    ( kt, Kmm, jpts, pts(:,:,:,:,Kbb), gtsu, gtsv,        &  ! Partial steps: before horizontal gradient 
    621621               &                              rhd, gru , grv               )  ! of t, s, rd at the last ocean level 
    622             IF( ln_zps .AND. .NOT. lk_c1d .AND.       ln_isfcav)                       & 
     622            IF( ln_zps .AND. .NOT. ln_c1d .AND.       ln_isfcav)                       & 
    623623               &  CALL zps_hde_isf( nit000, Kmm, jpts, pts(:,:,:,:,Kbb), gtsu, gtsv, gtui, gtvi,    &  ! Partial steps for top cell (ISF) 
    624624               &                                  rhd, gru , grv , grui, grvi          )  ! of t, s, rd at the last ocean level 
  • NEMO/trunk/src/OCE/C1D/c1d.F90

    r12377 r15023  
    88   !!            3.5  !  2013-10 (D. Calvert)  add namelist 
    99   !!---------------------------------------------------------------------- 
    10 #if defined key_c1d 
    11    !!---------------------------------------------------------------------- 
    12    !!   'key_c1d'                                   1D column configuration 
     10 
    1311   !!---------------------------------------------------------------------- 
    1412   !!   c1d_init      : read in the C1D namelist 
     
    2422   PUBLIC   c1d_init   ! called by nemogcm.F90 
    2523 
    26    LOGICAL , PUBLIC, PARAMETER ::  lk_c1d = .TRUE.   ! 1D config. flag 
    27  
    2824   REAL(wp), PUBLIC ::  rn_lat1d     !: Column latitude 
    2925   REAL(wp), PUBLIC ::  rn_lon1d     !: Column longitude 
    30    LOGICAL , PUBLIC ::  ln_c1d_locpt !: Localization (or not) of 1D column in a grid 
    3126 
    3227   !!---------------------------------------------------------------------- 
     
    4742      INTEGER ::   ios   ! Local integer 
    4843      !! 
    49       NAMELIST/namc1d/ rn_lat1d, rn_lon1d , ln_c1d_locpt 
     44      NAMELIST/namc1d/ rn_lat1d, rn_lon1d 
    5045      !!---------------------------------------------------------------------- 
    5146      ! 
     
    6459         WRITE(numout,*) '      column latitude                 rn_lat1d     = ', rn_lat1d 
    6560         WRITE(numout,*) '      column longitude                rn_lon1d     = ', rn_lon1d 
    66          WRITE(numout,*) '      column localization in a grid   ln_c1d_locpt = ', ln_c1d_locpt 
    6761      ENDIF 
    6862      ! 
    6963   END SUBROUTINE c1d_init 
    7064 
    71 #else 
    72    !!---------------------------------------------------------------------- 
    73    !!   Dummy module :                           No use of 1D configuration 
    74    !!---------------------------------------------------------------------- 
    75    USE par_kind         ! kind parameters 
    76    LOGICAL, PUBLIC, PARAMETER ::   lk_c1d = .FALSE.   !: 1D config. flag de-activated 
    77    REAL(wp)                   ::   rn_lat1d, rn_lon1d 
    78    LOGICAL , PUBLIC           ::   ln_c1d_locpt = .FALSE.  
    79 CONTAINS 
    80    SUBROUTINE c1d_init               ! Dummy routine 
    81    END SUBROUTINE c1d_init 
    82 #endif 
    83  
    8465   !!====================================================================== 
    8566END MODULE c1d 
  • NEMO/trunk/src/OCE/C1D/dtauvd.F90

    r13497 r15023  
    2626   PUBLIC   dta_uvd        ! called by istate.F90 and dyndmp.90 
    2727 
    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 
     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 
    3030 
    3131   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_uvd   ! structure for input U & V current (file information and data) 
     
    9393 
    9494      ! 
    95       IF(  ln_uvd_init .OR. ln_uvd_dyndmp ) THEN 
     95      IF( ln_uvd_init .OR. ln_uvd_dyndmp ) THEN 
    9696         !                          !==   allocate the data arrays   ==! 
    9797         ALLOCATE( sf_uvd(2), STAT=ierr0 ) 
     
    117117 
    118118 
    119    SUBROUTINE dta_uvd( kt, Kmm, puvd ) 
     119   SUBROUTINE dta_uvd( kt, Kmm, pud, pvd ) 
    120120      !!---------------------------------------------------------------------- 
    121121      !!                   ***  ROUTINE dta_uvd  *** 
     
    134134      INTEGER                           , INTENT(in   ) ::   kt     ! ocean time-step 
    135135      INTEGER                           , INTENT(in   ) ::   Kmm    ! time level index 
    136       REAL(wp), DIMENSION(jpi,jpj,jpk,2), INTENT(  out) ::   puvd   ! U & V current data 
     136      REAL(wp), DIMENSION(jpi,jpj,jpk)  , INTENT(  out) ::   pud    ! U & V current data 
     137      REAL(wp), DIMENSION(jpi,jpj,jpk)  , INTENT(  out) ::   pvd    ! U & V current data 
    137138      ! 
    138139      INTEGER ::   ji, jj, jk, jl, jkk               ! dummy loop indicies 
     
    146147      CALL fld_read( kt, 1, sf_uvd )      !==   read U & V current data at time step kt   ==! 
    147148      ! 
    148       puvd(:,:,:,1) = sf_uvd(1)%fnow(:,:,:)                 ! NO mask 
    149       puvd(:,:,:,2) = sf_uvd(2)%fnow(:,:,:)  
     149      pud(:,:,:) = sf_uvd(1)%fnow(:,:,:)                 ! NO mask 
     150      pvd(:,:,:) = sf_uvd(2)%fnow(:,:,:)  
    150151      ! 
    151152      IF( ln_sco ) THEN                   !==   s- or mixed s-zps-coordinate   ==! 
     
    162163               zl = gdept(ji,jj,jk,Kmm) 
    163164               IF    ( zl < gdept_1d(1  ) ) THEN          ! extrapolate above the first level of data 
    164                   zup(jk) =  puvd(ji,jj,1    ,1) 
    165                   zvp(jk) =  puvd(ji,jj,1    ,2) 
     165                  zup(jk) =  pud(ji,jj,1) 
     166                  zvp(jk) =  pvd(ji,jj,1) 
    166167               ELSEIF( zl > gdept_1d(jpk) ) THEN          ! extrapolate below the last level of data 
    167                   zup(jk) =  puvd(ji,jj,jpkm1,1) 
    168                   zvp(jk) =  puvd(ji,jj,jpkm1,2) 
     168                  zup(jk) =  pud(ji,jj,jpkm1) 
     169                  zvp(jk) =  pvd(ji,jj,jpkm1) 
    169170               ELSE                                      ! inbetween : vertical interpolation between jkk & jkk+1 
    170171                  DO jkk = 1, jpkm1                      ! when  gdept(jkk) < zl < gdept(jkk+1) 
    171172                     IF( (zl-gdept_1d(jkk)) * (zl-gdept_1d(jkk+1)) <= 0._wp ) THEN 
    172173                        zi = ( zl - gdept_1d(jkk) ) / (gdept_1d(jkk+1)-gdept_1d(jkk)) 
    173                         zup(jk) = puvd(ji,jj,jkk,1) + ( puvd(ji,jj,jkk+1,1 ) - puvd(ji,jj,jkk,1) ) * zi  
    174                         zvp(jk) = puvd(ji,jj,jkk,2) + ( puvd(ji,jj,jkk+1,2 ) - puvd(ji,jj,jkk,2) ) * zi 
     174                        zup(jk) = pud(ji,jj,jkk) + ( pud(ji,jj,jkk+1) - pud(ji,jj,jkk) ) * zi  
     175                        zvp(jk) = pvd(ji,jj,jkk) + ( pvd(ji,jj,jkk+1) - pvd(ji,jj,jkk) ) * zi 
    175176                     ENDIF 
    176177                  END DO 
     
    178179            END DO 
    179180            DO jk = 1, jpkm1           ! apply mask 
    180                puvd(ji,jj,jk,1) = zup(jk) * umask(ji,jj,jk) 
    181                puvd(ji,jj,jk,2) = zvp(jk) * vmask(ji,jj,jk) 
     181               pud(ji,jj,jk) = zup(jk) * umask(ji,jj,jk) 
     182               pvd(ji,jj,jk) = zvp(jk) * vmask(ji,jj,jk) 
    182183            END DO 
    183             puvd(ji,jj,jpk,1) = 0._wp 
    184             puvd(ji,jj,jpk,2) = 0._wp 
     184            pud(ji,jj,jpk) = 0._wp 
     185            pvd(ji,jj,jpk) = 0._wp 
    185186         END_2D 
    186187         !  
     
    189190      ELSE                                !==   z- or zps- coordinate   ==! 
    190191         !                              
    191          puvd(:,:,:,1) = puvd(:,:,:,1) * umask(:,:,:)       ! apply mask 
    192          puvd(:,:,:,2) = puvd(:,:,:,2) * vmask(:,:,:) 
     192         pud(:,:,:) = pud(:,:,:) * umask(:,:,:)       ! apply mask 
     193         pvd(:,:,:) = pvd(:,:,:) * vmask(:,:,:) 
    193194         ! 
    194195         IF( ln_zps ) THEN                ! zps-coordinate (partial steps) interpolation at the last ocean level 
     
    197198               IF( ik > 1 ) THEN 
    198199                  zl = ( gdept_1d(ik) - gdept_0(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 
    199                   puvd(ji,jj,ik,1) = (1.-zl) * puvd(ji,jj,ik,1) + zl * puvd(ji,jj,ik-1,1) 
    200                   puvd(ji,jj,ik,2) = (1.-zl) * puvd(ji,jj,ik,2) + zl * puvd(ji,jj,ik-1,2) 
     200                  pud(ji,jj,ik) = (1.-zl) * pud(ji,jj,ik) + zl * pud(ji,jj,ik-1) 
     201                  pvd(ji,jj,ik) = (1.-zl) * pvd(ji,jj,ik) + zl * pvd(ji,jj,ik-1) 
    201202               ENDIF 
    202203            END_2D 
  • NEMO/trunk/src/OCE/C1D/dyndmp.F90

    r13295 r15023  
    159159      ! 
    160160      !                           !==   read and interpolate U & V current data at kt   ==! 
    161       CALL dta_uvd( kt, Kmm, zuv_dta ) !!! NOTE: This subroutine must be altered for use outside 
    162                                   !!!       the C1D context (use of U,V grid variables) 
     161      CALL dta_uvd( kt, Kmm, zuv_dta(:,:,:,1), zuv_dta(:,:,:,2)) 
    163162      ! 
    164163      SELECT CASE ( nn_zdmp )     !==   Calculate/add Newtonian damping to the momentum trend   ==! 
  • NEMO/trunk/src/OCE/DOM/dom_oce.F90

    r14834 r15023  
    3838   LOGICAL , PUBLIC ::   ln_1st_euler   !: =T start with forward time step or not (=F) 
    3939   LOGICAL , PUBLIC ::   ln_crs         !: Apply grid coarsening to dynamical model output or online passive tracers 
     40   LOGICAL , PUBLIC ::   ln_c1d         !: =T  single column domain (1x1 pt) 
    4041 
    4142   !! Free surface parameters 
  • NEMO/trunk/src/OCE/DOM/domain.F90

    r15014 r15023  
    1111   !!   NEMO     1.0  !  2002-08  (G. Madec)  F90: Free form and module 
    1212   !!            2.0  !  2005-11  (V. Garnier) Surface pressure gradient organization 
    13    !!            3.3  !  2010-11  (G. Madec)  initialisation in C1D configuration 
     13   !!            3.3  !  2010-11  (G. Madec)  initialisation in C1D configuration  
    1414   !!            3.6  !  2013     ( J. Simeon, C. Calone, G. Madec, C. Ethe ) Online coarsening of outputs 
    1515   !!            3.7  !  2015-11  (G. Madec, A. Coward)  time varying zgr by default 
     
    4646   USE dommsk         ! domain: set the mask system 
    4747   USE domwri         ! domain: write the meshmask file 
    48    USE c1d            ! 1D configuration 
    49    USE dyncor_c1d     ! 1D configuration: Coriolis term    (cor_c1d routine) 
    5048   USE wet_dry , ONLY : ll_wd     ! wet & drying flag 
    5149   USE closea  , ONLY : dom_clo   ! closed seas routine 
     50   USE c1d 
    5251   ! 
    5352   USE in_out_manager ! I/O manager 
     
    129128      CALL dom_tile_init                ! Tile domain 
    130129 
     130      IF( ln_c1d )   CALL     c1d_init                    ! 1D column configuration 
    131131      ! 
    132132      CALL dom_hgr                      ! Horizontal mesh 
     
    226226#endif 
    227227 
    228       ! 
    229  
    230       IF( lk_c1d         )   CALL cor_c1d       ! 1D configuration: Coriolis set at T-point 
    231228      ! 
    232229 
     
    320317         &             nn_stock, nn_write , ln_mskland  , ln_clobber   , nn_chunksz, ln_1st_euler  , & 
    321318         &             ln_cfmeta, ln_xios_read, nn_wxios 
    322       NAMELIST/namdom/ ln_linssh, rn_Dt, rn_atfp, ln_crs, ln_meshmask 
     319      NAMELIST/namdom/ ln_linssh, rn_Dt, rn_atfp, ln_crs, ln_c1d, ln_meshmask 
    323320      NAMELIST/namtile/ ln_tile, nn_ltile_i, nn_ltile_j 
    324321#if defined key_netcdf4 
     
    361358         WRITE(numout,*) '      asselin time filter parameter           rn_atfp     = ', rn_atfp 
    362359         WRITE(numout,*) '      online coarsening of dynamical fields   ln_crs      = ', ln_crs 
     360         WRITE(numout,*) '      single column domain (1x1pt)            ln_c1d      = ', ln_c1d 
    363361      ENDIF 
    364362      ! 
  • NEMO/trunk/src/OCE/DOM/istate.F90

    r14834 r15023  
    7676      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
    7777 
    78        CALL dta_tsd_init        ! Initialisation of T & S input data 
    79  
    80 !      IF( lk_c1d )   CALL dta_uvd_init        ! Initialization of U & V input data 
     78      CALL dta_tsd_init                 ! Initialisation of T & S input data 
     79      IF( ln_c1d) CALL dta_uvd_init     ! Initialisation of U & V input data (c1d only) 
    8180 
    8281      rhd  (:,:,:      ) = 0._wp   ;   rhop (:,:,:  ) = 0._wp      ! set one for all to 0 at level jpk 
     
    114113            ! 
    115114            IF( ln_tsd_init ) THEN                
    116                CALL dta_tsd( nit000, ts(:,:,:,:,Kbb) )       ! read 3D T and S data at nit000 
    117                ! 
     115               CALL dta_tsd( nit000, ts(:,:,:,:,Kbb) )                     ! read 3D T and S data at nit000 
     116            ENDIF 
     117            ! 
     118            IF( ln_uvd_init .AND. ln_c1d ) THEN                
     119               CALL dta_uvd( nit000, Kbb, uu(:,:,:,Kbb), vv(:,:,:,Kbb) )   ! read 3D U and V data at nit000 
     120            ELSE 
    118121               uu  (:,:,:,Kbb) = 0._wp               ! set the ocean at rest 
    119122               vv  (:,:,:,Kbb) = 0._wp   
     123            ENDIF 
    120124               ! 
    121             ELSE                                 ! user defined initial T and S 
     125               ! 
     126            IF( .NOT. ln_tsd_init .AND. .NOT. ln_uvd_init ) THEN 
    122127               DO jk = 1, jpk 
    123128                  zgdept(:,:,jk) = gdept(:,:,jk,Kbb) 
     
    129134            vv    (:,:,:,Kmm) = vv   (:,:,:,Kbb) 
    130135 
    131          ! 
    132 !!gm ==>>>  to be moved in usrdef_istate of C1D case  
    133          IF ( ln_uvd_init .AND. lk_c1d ) THEN ! read 3D U and V data at nit000 
    134             ALLOCATE( zuvd(jpi,jpj,jpk,2) ) 
    135             CALL dta_uvd( nit000, Kbb, zuvd ) 
    136             uu(:,:,:,Kbb) = zuvd(:,:,:,1)  ;  uu(:,:,:,Kmm) = uu(:,:,:,Kbb) 
    137             vv(:,:,:,Kbb) = zuvd(:,:,:,2)  ;  vv(:,:,:,Kmm) = vv(:,:,:,Kbb) 
    138             DEALLOCATE( zuvd ) 
    139          ENDIF 
    140          ! 
    141          !  
    142136         ENDIF  
    143137#if defined key_agrif 
  • NEMO/trunk/src/OCE/IOM/iom.F90

    r15017 r15023  
    2222   USE dom_oce         ! ocean space and time domain 
    2323   USE domutl          ! 
    24    USE c1d             ! 1D vertical configuration 
    2524   USE flo_oce         ! floats module declarations 
    2625   USE lbclnk          ! lateal boundary condition / mpp exchanges 
     
    14101409#endif 
    14111410      ENDIF 
    1412 !some final adjustments 
    1413       ! C1D case : always call lbc_lnk to replicate the central value over the whole 3X3 domain 
    1414       IF( lk_c1d .AND. PRESENT(pv_r2d) )   CALL lbc_lnk( 'iom', pv_r2d,'Z',1.0_wp ) 
    1415       IF( lk_c1d .AND. PRESENT(pv_r3d) )   CALL lbc_lnk( 'iom', pv_r3d,'Z',1.0_wp ) 
    14161411 
    14171412      !--- Apply scale_factor and offset 
  • NEMO/trunk/src/OCE/LBC/lib_mpp.F90

    r14433 r15023  
    7676   PUBLIC   mpp_bcast_nml 
    7777   PUBLIC   tic_tac 
    78 #if defined key_mpp_off 
    79    PUBLIC MPI_wait 
    80    PUBLIC MPI_Wtime 
     78#if defined key_mpi_off 
     79   PUBLIC   MPI_wait 
     80   PUBLIC   MPI_waitall 
     81   PUBLIC   MPI_Wtime 
    8182#endif 
    8283 
     
    127128   INTEGER, PUBLIC, PARAMETER ::   MPI_REAL = 4 
    128129   INTEGER, PUBLIC, PARAMETER ::   MPI_DOUBLE_PRECISION = 8 
     130   INTEGER, PUBLIC, PARAMETER ::   MPI_REQUEST_NULL = 1 
    129131   LOGICAL, PUBLIC, PARAMETER ::   lk_mpp = .FALSE.    !: mpp flag 
     132   INTEGER, PUBLIC, DIMENSION(MPI_STATUS_SIZE) ::   MPI_STATUS_IGNORE = 1     ! out from mpi_wait 
     133   INTEGER, PUBLIC, DIMENSION(MPI_STATUS_SIZE) ::   MPI_STATUSES_IGNORE = 1   ! out from mpi_waitall 
    130134#endif 
    131135 
     
    14011405      INTEGER, DIMENSION(MPI_STATUS_SIZE), INTENT(  out) ::   status 
    14021406      INTEGER                            , INTENT(  out) ::   ierror 
     1407      IF (.FALSE.) THEN   ! to avoid compilation warning 
     1408         status(:) = -1 
     1409         ierror = -1 
     1410      ENDIF 
    14031411   END SUBROUTINE mpi_wait 
    14041412 
     1413   SUBROUTINE mpi_waitall(count, request, status, ierror) 
     1414      INTEGER                            , INTENT(in   ) :: count 
     1415      INTEGER, DIMENSION(count)          , INTENT(in   ) :: request 
     1416      INTEGER, DIMENSION(MPI_STATUS_SIZE), INTENT(  out) :: status 
     1417      INTEGER                            , INTENT(  out) :: ierror 
     1418      IF (.FALSE.) THEN   ! to avoid compilation warning 
     1419         status(:) = -1 
     1420         ierror = -1 
     1421      ENDIF 
     1422   END SUBROUTINE mpi_waitall 
    14051423 
    14061424   FUNCTION MPI_Wtime() 
  • NEMO/trunk/src/OCE/LBC/mppini.F90

    r14976 r15023  
    6262      !!---------------------------------------------------------------------- 
    6363      ! 
    64       nn_hls = 1 
    65       jpiglo = Ni0glo + 2 * nn_hls 
    66       jpjglo = Nj0glo + 2 * nn_hls 
    67       jpimax = jpiglo 
    68       jpjmax = jpjglo 
    69       jpi    = jpiglo 
    70       jpj    = jpjglo 
    71       jpk    = MAX( 2, jpkglo ) 
    72       jpij   = jpi*jpj 
    73       jpni   = 1 
    74       jpnj   = 1 
    75       jpnij  = jpni*jpnj 
    76       nimpp  = 1 
    77       njmpp  = 1 
    78       nidom  = FLIO_DOM_NONE 
     64      nn_comm = 1 
     65      nn_hls  = 1 
     66      jpiglo  = Ni0glo + 2 * nn_hls 
     67      jpjglo  = Nj0glo + 2 * nn_hls 
     68      jpimax  = jpiglo 
     69      jpjmax  = jpjglo 
     70      jpi     = jpiglo 
     71      jpj     = jpjglo 
     72      jpk     = MAX( 2, jpkglo ) 
     73      jpij    = jpi*jpj 
     74      jpni    = 1 
     75      jpnj    = 1 
     76      jpnij   = jpni*jpnj 
     77      nimpp   = 1 
     78      njmpp   = 1 
     79      nidom   = FLIO_DOM_NONE 
     80      ! 
     81      mpiSnei(:,:) = -1 
     82      mpiRnei(:,:) = -1 
     83      l_SelfPerio(1:2) = l_Iperio                  !  west,  east periodicity by itself 
     84      l_SelfPerio(3:4) = l_Jperio                  ! south, north periodicity by itself 
     85      l_SelfPerio(5:8) = l_Iperio .AND. l_Jperio   ! corners bi-periodicity by itself 
     86      l_IdoNFold = l_NFold                         ! is this process doing North fold? 
    7987      ! 
    8088      CALL init_doloop                       ! set start/end indices or do-loop depending on the halo width value (nn_hls) 
     
    532540      END DO 
    533541      ! 
    534       CALL init_excl_landpt      ! exclude exchanges which contain only land points 
     542      IF( jpnij > 1) CALL init_excl_landpt      ! exclude exchanges which contain only land points 
    535543      ! 
    536544      ! Save processor layout changes in ascii file 
  • NEMO/trunk/src/OCE/SBC/fldread.F90

    r14437 r15023  
    3838   USE ioipsl  , ONLY : ymds2ju, ju2ymds   ! for calendar 
    3939   USE lib_mpp        ! MPP library 
    40    USE lbclnk         ! ocean lateral boundary conditions (C1D case) 
     40   USE lbclnk         ! ocean lateral boundary conditions (online interpolation case) 
    4141    
    4242   IMPLICIT NONE 
     
    356356      INTEGER ::   idvar    ! variable ID 
    357357      INTEGER ::   idmspc   ! number of spatial dimensions 
    358       LOGICAL ::   lmoor    ! C1D case: point data 
    359358      REAL(wp), DIMENSION(:,:,:), POINTER ::   dta_alias   ! short cut 
    360359      !!--------------------------------------------------------------------- 
     
    374373         CALL lbc_lnk( 'fldread', dta_alias(:,:,:), sdjf%cltype, sdjf%zsgn, kfillmode = jpfillcopy ) 
    375374      ELSE                                          ! default case 
    376          ! C1D case: If product of spatial dimensions == ipk, then x,y are of 
    377          ! size 1 (point/mooring data): this must be read onto the central grid point 
    378375         idvar  = iom_varid( sdjf%num, sdjf%clvar ) 
    379376         idmspc = iom_file ( sdjf%num )%ndims( idvar ) 
    380377         IF( iom_file( sdjf%num )%luld( idvar ) )   idmspc = idmspc - 1   ! id of the last spatial dimension 
    381          lmoor  = (  idmspc == 0 .OR. PRODUCT( iom_file( sdjf%num )%dimsz( 1:MAX(idmspc,1) ,idvar ) ) == ipk  )     
    382          ! 
    383          IF( lk_c1d .AND. lmoor ) THEN 
    384             CALL iom_get( sdjf%num, jpdom_unknown, sdjf%clvar, dta_alias(2,2,:), sdjf%nrec(1,iaa) )   ! jpdom_unknown -> no lbc_lnk 
    385             CALL lbc_lnk( 'fldread', dta_alias(:,:,:), 'T', 1., kfillmode = jpfillcopy ) 
    386          ELSE 
    387             CALL iom_get( sdjf%num,  jpdom_global, sdjf%clvar, dta_alias(:,:,:), sdjf%nrec(1,iaa),   & 
    388                &          sdjf%cltype, sdjf%zsgn, kfill = jpfillcopy ) 
    389          ENDIF 
     378         CALL iom_get( sdjf%num,  jpdom_global, sdjf%clvar, dta_alias(:,:,:), sdjf%nrec(1,iaa),   & 
     379            &          sdjf%cltype, sdjf%zsgn, kfill = jpfillcopy ) 
    390380      ENDIF 
    391381      ! 
  • NEMO/trunk/src/OCE/TRA/tradmp.F90

    r14982 r15023  
    2424   USE oce            ! ocean: variables 
    2525   USE dom_oce        ! ocean: domain variables 
    26    USE c1d            ! 1D vertical configuration 
    2726   USE trd_oce        ! trends: ocean variables 
    2827   USE trdtra         ! trends manager: tracers 
  • NEMO/trunk/src/OCE/nemogcm.F90

    r14834 r15023  
    5959   USE dia25h  , ONLY : dia_25h_init   ! 25h mean output (initialisation) 
    6060   USE c1d            ! 1D configuration 
    61    USE step_c1d       ! Time stepping loop for the 1D configuration 
    6261#if defined key_top 
    6362   USE trcini         ! passive tracer initialisation 
     
    143142      ! 
    144143      istp = nit000 
    145       ! 
    146 #if defined key_c1d 
    147       DO WHILE ( istp <= nitend .AND. nstop == 0 )    !==  C1D time-stepping  ==! 
    148          CALL stp_c1d( istp ) 
    149          istp = istp + 1 
    150       END DO 
    151 #else 
    152144      ! 
    153145# if defined key_agrif 
     
    204196      ! 
    205197# endif 
    206       ! 
    207 #endif 
    208198      ! 
    209199      IF( ln_diaobs   )   CALL dia_obs_wri 
     
    417407                           CALL     phy_cst         ! Physical constants 
    418408                           CALL     eos_init        ! Equation of state 
    419       IF( lk_c1d       )   CALL     c1d_init        ! 1D column configuration 
    420409                           CALL     wad_init        ! Wetting and drying options 
    421410 
     
    469458 
    470459      !                                      ! Dynamics 
    471       IF( lk_c1d       )   CALL dyn_dmp_init         ! internal momentum damping 
     460      IF( ln_c1d       )   CALL dyn_dmp_init         ! internal momentum damping 
    472461                           CALL dyn_adv_init         ! advection (vector or flux form) 
    473462                           CALL dyn_vor_init         ! vorticity term including Coriolis 
  • NEMO/trunk/src/OCE/step_oce.F90

    r14239 r15023  
    4444   USE dynspg          ! surface pressure gradient        (dyn_spg routine) 
    4545   USE dynatf          ! time-filtering                   (dyn_atf routine) 
     46   USE dyndmp          ! current damping                  (dyn_dmp routine) 
    4647 
    4748   USE traqsr          ! solar radiation penetration      (tra_qsr routine) 
  • NEMO/trunk/src/OCE/stpctl.F90

    r14433 r15023  
    1818   USE oce             ! ocean dynamics and tracers variables 
    1919   USE dom_oce         ! ocean space and time domain variables  
    20    USE c1d             ! 1D vertical configuration 
    2120   USE zdf_oce ,  ONLY : ln_zad_Aimp       ! ocean vertical physics variables 
    2221   USE wet_dry,   ONLY : ll_wd, ssh_ref    ! reference depth for negative bathy 
  • NEMO/trunk/src/OCE/stpmlf.F90

    r15005 r15023  
    233233                         vv(:,:,:,Nrhs) = 0._wp 
    234234 
     235      IF( ln_dyndmp .AND. ln_c1d )  CALL dyn_dmp( kstp, Nbb, Nnn, uu(:,:,:,Nrhs), vv(:,:,:,Nrhs), Nrhs )   ! internal damping trends- momentum 
     236 
    235237      IF( ln_tile ) CALL dom_tile_start         ! [tiling] DYN tiling loop (1) 
    236238      DO jtile = 1, nijtile 
Note: See TracChangeset for help on using the changeset viewer.