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 6051 for branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC – NEMO

Ignore:
Timestamp:
2015-12-15T10:46:14+01:00 (9 years ago)
Author:
lovato
Message:

Merge branches/2015/dev_r5056_CMCC4_simplification (see ticket #1456)

Location:
branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC
Files:
4 deleted
39 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

    r5836 r6051  
    205205      ENDIF 
    206206 
    207       IF ( nacc /= 0 ) & 
    208          & CALL ctl_stop( ' nacc /= 0 and key_asminc :',  & 
    209          &                ' Assimilation increments have only been implemented', & 
    210          &                ' for synchronous time stepping' ) 
    211207 
    212208      IF ( ( ln_asmdin ).AND.( ln_asmiau ) )   & 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/BDY/bdytides.F90

    r5930 r6051  
    323323      ENDIF 
    324324 
    325       IF ( nsec_day == NINT(0.5_wp * rdttra(1)) .AND. zflag==1 ) THEN 
     325      IF ( nsec_day == NINT(0.5_wp * rdt) .AND. zflag==1 ) THEN 
    326326        ! 
    327327        kt_tide = kt 
     
    438438            ! We refresh nodal factors every day below 
    439439            ! This should be done somewhere else 
    440             IF ( nsec_day == NINT(0.5_wp * rdttra(1)) .AND. lk_first_btstp ) THEN 
     440            IF ( nsec_day == NINT(0.5_wp * rdt) .AND. lk_first_btstp ) THEN 
    441441               ! 
    442442               kt_tide = kt                
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/C1D/domc1d.F90

    r5215 r6051  
    4444      !!---------------------------------------------------------------------- 
    4545      NAMELIST/namdom/ nn_bathy, rn_bathy , rn_e3zps_min, rn_e3zps_rat, nn_msh, rn_hmin,   & 
    46          &             nn_acc   , rn_atfp     , rn_rdt      , rn_rdtmin ,                  & 
    47          &             rn_rdtmax, rn_rdth     , nn_closea , ln_crs,    & 
    48          &             jphgr_msh, & 
     46         &             rn_atfp     , rn_rdt      ,nn_closea , ln_crs,  jphgr_msh, & 
    4947         &             ppglam0, ppgphi0, ppe1_deg, ppe2_deg, ppe1_m, ppe2_m, & 
    5048         &             ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/CRS/crsfld.F90

    r5836 r6051  
    5252      !!      2. At time of output, rescale [1] by dimension and time 
    5353      !!         to yield the spatial and temporal average. 
    54       !!  See. diawri_dimg.h90, sbcmod.F90 
     54      !!  See. sbcmod.F90 
    5555      !! 
    5656      !! ** Method  :   
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIA/diafwb.F90

    r5836 r6051  
    116116          
    117117         ! Conversion in m3 
    118          a_fwf    = a_fwf * rdttra(1) * 1.e-3  
     118         a_fwf    = a_fwf * rdt * 1.e-3  
    119119          
    120120         ! fwf correction to bring back the mean ssh to zero 
     
    404404         WRITE(inum,*) 
    405405         WRITE(inum,*)    'Net freshwater budget ' 
    406          WRITE(inum,9010) '  fwf    = ',a_fwf,   ' m3 =', a_fwf   /(FLOAT(nitend-nit000+1)*rdttra(1)) * 1.e-6,' Sv' 
     406         WRITE(inum,9010) '  fwf    = ',a_fwf,   ' m3 =', a_fwf   /(FLOAT(nitend-nit000+1)*rdt) * 1.e-6,' Sv' 
    407407         WRITE(inum,*) 
    408408         WRITE(inum,9010) '  zarea =',zarea 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIA/diaharm.F90

    r5930 r6051  
    2121   USE ioipsl          ! NetCDF IPSL library 
    2222   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    23    USE diadimg         ! To write dimg 
    2423   USE timing          ! preformance summary 
    2524   USE wrk_nemo        ! working arrays 
     
    384383      !!---------------------------------------------------------------------- 
    385384 
    386 #if defined key_dimgout 
    387       cdfile_name_T = TRIM(cexper)//'_Tidal_harmonics_gridT.dimgproc' 
    388       cdfile_name_U = TRIM(cexper)//'_Tidal_harmonics_gridU.dimgproc' 
    389       cdfile_name_V = TRIM(cexper)//'_Tidal_harmonics_gridV.dimgproc' 
    390 #endif 
    391  
    392385      IF(lwp) WRITE(numout,*) '  ' 
    393386      IF(lwp) WRITE(numout,*) 'dia_wri_harm : Write harmonic analysis results' 
    394 #if defined key_dimgout 
    395       IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~  Output files: ', TRIM(cdfile_name_T) 
    396       IF(lwp) WRITE(numout,*) '                             ', TRIM(cdfile_name_U) 
    397       IF(lwp) WRITE(numout,*) '                             ', TRIM(cdfile_name_V) 
    398 #endif 
    399387      IF(lwp) WRITE(numout,*) '  ' 
    400388 
     
    402390      !///////////// 
    403391      ! 
    404 #if defined key_dimgout 
    405       cltext='Elevation amplitude and phase' 
    406       CALL dia_wri_dimg(TRIM(cdfile_name_T), TRIM(cltext), out_eta, 2*nb_ana, '2') 
    407 #else 
    408392      DO jh = 1, nb_ana 
    409393      CALL iom_put( TRIM(tname(jh))//'x', out_eta(:,:,jh) ) 
    410394      CALL iom_put( TRIM(tname(jh))//'y', out_eta(:,:,nb_ana+jh) ) 
    411395      END DO 
    412 #endif 
    413396 
    414397      ! B) ubar 
    415398      !///////// 
    416399      ! 
    417 #if defined key_dimgout 
    418       cltext='ubar amplitude and phase' 
    419       CALL dia_wri_dimg(TRIM(cdfile_name_U), TRIM(cltext), out_u, 2*nb_ana, '2') 
    420 #else 
    421400      DO jh = 1, nb_ana 
    422401      CALL iom_put( TRIM(tname(jh))//'x_u', out_u(:,:,jh) ) 
    423402      CALL iom_put( TRIM(tname(jh))//'y_u', out_u(:,:,nb_ana+jh) ) 
    424403      END DO 
    425 #endif 
    426404 
    427405      ! C) vbar 
    428406      !///////// 
    429407      ! 
    430 #if defined key_dimgout 
    431       cltext='vbar amplitude and phase' 
    432       CALL dia_wri_dimg(TRIM(cdfile_name_V), TRIM(cltext), out_v, 2*nb_ana, '2') 
    433 #else 
    434408      DO jh = 1, nb_ana 
    435409         CALL iom_put( TRIM(tname(jh))//'x_v', out_v(:,:,jh       ) ) 
    436410         CALL iom_put( TRIM(tname(jh))//'y_v', out_v(:,:,jh+nb_ana) ) 
    437411      END DO 
    438 #endif 
    439412      ! 
    440413   END SUBROUTINE dia_wri_harm 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIA/dianam.F90

    r2528 r6051  
    7272 
    7373      IF( llfsec .OR. kfreq < 0 ) THEN   ;   inbsec = kfreq                       ! output frequency already in seconds 
    74       ELSE                               ;   inbsec = kfreq * NINT( rdttra(1) )   ! from time-step to seconds 
     74      ELSE                               ;   inbsec = kfreq * NINT( rdt )   ! from time-step to seconds 
    7575      ENDIF 
    7676      iddss = NINT( rday          )                                         ! number of seconds in 1 day 
     
    116116      ! date of the beginning and the end of the run 
    117117 
    118       zdrun = rdttra(1) / rday * REAL( nitend - nit000, wp )                ! length of the run in days 
    119       zjul  = fjulday - rdttra(1) / rday 
     118      zdrun = rdt / rday * REAL( nitend - nit000, wp )                ! length of the run in days 
     119      zjul  = fjulday - rdt / rday 
    120120      CALL ju2ymds( zjul        , iyear1, imonth1, iday1, zsec1 )           ! year/month/day of the beginning of run 
    121121      CALL ju2ymds( zjul + zdrun, iyear2, imonth2, iday2, zsec2 )           ! year/month/day of the end       of run 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r5930 r6051  
    4242   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    4343   USE in_out_manager  ! I/O manager 
    44    USE diadimg         ! dimg direct access file format output 
    4544   USE iom 
    4645   USE ioipsl 
     
    9796  END FUNCTION dia_wri_alloc 
    9897 
    99 #if defined key_dimgout 
    100    !!---------------------------------------------------------------------- 
    101    !!   'key_dimgout'                                      DIMG output file 
    102    !!---------------------------------------------------------------------- 
    103 #   include "diawri_dimg.h90" 
    104  
    105 #else 
    10698   !!---------------------------------------------------------------------- 
    10799   !!   Default option                                   NetCDF output file 
    108100   !!---------------------------------------------------------------------- 
    109 # if defined key_iomput 
     101#if defined key_iomput 
    110102   !!---------------------------------------------------------------------- 
    111103   !!   'key_iomput'                                        use IOM library 
     
    410402      INTEGER  ::   iimi, iima, ipk, it, itmod, ijmi, ijma   ! local integers 
    411403      INTEGER  ::   jn, ierror                               ! local integers 
    412       REAL(wp) ::   zsto, zout, zmax, zjulian, zdt           ! local scalars 
     404      REAL(wp) ::   zsto, zout, zmax, zjulian                ! local scalars 
    413405      ! 
    414406      REAL(wp), POINTER, DIMENSION(:,:)   :: zw2d       ! 2D workspace 
     
    435427 
    436428      ! Define frequency of output and means 
    437       zdt = rdt 
    438       IF( nacc == 1 ) zdt = rdtmin 
    439429      clop = "x"         ! no use of the mask value (require less cpu time and otherwise the model crashes) 
    440430#if defined key_diainstant 
    441       zsto = nwrite * zdt 
     431      zsto = nwrite * rdt 
    442432      clop = "inst("//TRIM(clop)//")" 
    443433#else 
    444       zsto=zdt 
     434      zsto=rdt 
    445435      clop = "ave("//TRIM(clop)//")" 
    446436#endif 
    447       zout = nwrite * zdt 
    448       zmax = ( nitend - nit000 + 1 ) * zdt 
     437      zout = nwrite * rdt 
     438      zmax = ( nitend - nit000 + 1 ) * rdt 
    449439 
    450440      ! Define indices of the horizontal output zoom and vertical limit storage 
     
    488478         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,           &  ! Horizontal grid: glamt and gphit 
    489479            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    490             &          nit000-1, zjulian, zdt, nh_T, nid_T, domain_id=nidom, snc4chunks=snc4set ) 
     480            &          nit000-1, zjulian, rdt, nh_T, nid_T, domain_id=nidom, snc4chunks=snc4set ) 
    491481         CALL histvert( nid_T, "deptht", "Vertical T levels",      &  ! Vertical grid: gdept 
    492482            &           "m", ipk, gdept_1d, nz_T, "down" ) 
     
    524514         CALL histbeg( clhstnam, jpi, glamu, jpj, gphiu,           &  ! Horizontal grid: glamu and gphiu 
    525515            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    526             &          nit000-1, zjulian, zdt, nh_U, nid_U, domain_id=nidom, snc4chunks=snc4set ) 
     516            &          nit000-1, zjulian, rdt, nh_U, nid_U, domain_id=nidom, snc4chunks=snc4set ) 
    527517         CALL histvert( nid_U, "depthu", "Vertical U levels",      &  ! Vertical grid: gdept 
    528518            &           "m", ipk, gdept_1d, nz_U, "down" ) 
     
    537527         CALL histbeg( clhstnam, jpi, glamv, jpj, gphiv,           &  ! Horizontal grid: glamv and gphiv 
    538528            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    539             &          nit000-1, zjulian, zdt, nh_V, nid_V, domain_id=nidom, snc4chunks=snc4set ) 
     529            &          nit000-1, zjulian, rdt, nh_V, nid_V, domain_id=nidom, snc4chunks=snc4set ) 
    540530         CALL histvert( nid_V, "depthv", "Vertical V levels",      &  ! Vertical grid : gdept 
    541531            &          "m", ipk, gdept_1d, nz_V, "down" ) 
     
    550540         CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,           &  ! Horizontal grid: glamt and gphit 
    551541            &          iimi, iima-iimi+1, ijmi, ijma-ijmi+1,       & 
    552             &          nit000-1, zjulian, zdt, nh_W, nid_W, domain_id=nidom, snc4chunks=snc4set ) 
     542            &          nit000-1, zjulian, rdt, nh_W, nid_W, domain_id=nidom, snc4chunks=snc4set ) 
    553543         CALL histvert( nid_W, "depthw", "Vertical W levels",      &  ! Vertical grid: gdepw 
    554544            &          "m", ipk, gdepw_1d, nz_W, "down" ) 
     
    843833      ! 
    844834   END SUBROUTINE dia_wri 
    845 # endif 
    846  
    847835#endif 
    848836 
     
    867855      INTEGER  ::   id_i , nz_i, nh_i        
    868856      INTEGER, DIMENSION(1) ::   idex             ! local workspace 
    869       REAL(wp) ::   zsto, zout, zmax, zjulian, zdt 
     857      REAL(wp) ::   zsto, zout, zmax, zjulian 
    870858      !!---------------------------------------------------------------------- 
    871859      !  
     
    876864      clname = cdfile_name 
    877865      IF( .NOT. Agrif_Root() ) clname = TRIM(Agrif_CFixed())//'_'//TRIM(clname) 
    878       zdt  = rdt 
    879866      zsto = rdt 
    880867      clop = "inst(x)"           ! no use of the mask value (require less cpu time) 
    881868      zout = rdt 
    882       zmax = ( nitend - nit000 + 1 ) * zdt 
     869      zmax = ( nitend - nit000 + 1 ) * rdt 
    883870 
    884871      IF(lwp) WRITE(numout,*) 
     
    895882      zjulian = zjulian - adatrj   !   set calendar origin to the beginning of the experiment 
    896883      CALL histbeg( clname, jpi, glamt, jpj, gphit,   & 
    897           1, jpi, 1, jpj, nit000-1, zjulian, zdt, nh_i, id_i, domain_id=nidom, snc4chunks=snc4set ) ! Horizontal grid : glamt and gphit 
     884          1, jpi, 1, jpj, nit000-1, zjulian, rdt, nh_i, id_i, domain_id=nidom, snc4chunks=snc4set ) ! Horizontal grid : glamt and gphit 
    898885      CALL histvert( id_i, "deptht", "Vertical T levels",   &    ! Vertical grid : gdept 
    899886          "m", jpk, gdept_1d, nz_i, "down") 
     
    962949      ! ----------------- 
    963950      CALL histclo( id_i ) 
    964 #if ! defined key_iomput && ! defined key_dimgout 
     951#if ! defined key_iomput 
    965952      IF( ninist /= 1  ) THEN 
    966953         CALL histclo( nid_T ) 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/daymod.F90

    r5563 r6051  
    2020   !! 
    2121   !!   we suppose that the time step is deviding the number of second of in a day 
    22    !!             ---> MOD( rday, rdttra(1) ) == 0 
     22   !!             ---> MOD( rday, rdt ) == 0 
    2323   !! 
    2424   !!           ----------- WARNING ----------- 
     
    7878            &           'You must do a restart at higher frequency (or remove this stop and recompile the code in I8)' ) 
    7979      ENDIF 
    80       ! all calendar staff is based on the fact that MOD( rday, rdttra(1) ) == 0 
    81       IF( MOD( rday     , rdttra(1) ) /= 0. )   CALL ctl_stop( 'the time step must devide the number of second of in a day' ) 
     80      ! all calendar staff is based on the fact that MOD( rday, rdt ) == 0 
     81      IF( MOD( rday     , rdt ) /= 0. )   CALL ctl_stop( 'the time step must devide the number of second of in a day' ) 
    8282      IF( MOD( rday     , 2.        ) /= 0. )   CALL ctl_stop( 'the number of second of in a day must be an even number'    ) 
    83       IF( MOD( rdttra(1), 2.        ) /= 0. )   CALL ctl_stop( 'the time step (in second) must be an even number'           ) 
     83      IF( MOD( rdt, 2.        ) /= 0. )   CALL ctl_stop( 'the time step (in second) must be an even number'           ) 
    8484      nsecd   = NINT(rday           ) 
    8585      nsecd05 = NINT(0.5 * rday     ) 
    86       ndt     = NINT(      rdttra(1)) 
    87       ndt05   = NINT(0.5 * rdttra(1)) 
     86      ndt     = NINT(      rdt) 
     87      ndt05   = NINT(0.5 * rdt) 
    8888 
    8989      IF( .NOT. lk_offline ) CALL day_rst( nit000, 'READ' ) 
     
    223223      nsec_week  = nsec_week  + ndt 
    224224      nsec_day   = nsec_day   + ndt 
    225       adatrj  = adatrj  + rdttra(1) / rday 
    226       fjulday = fjulday + rdttra(1) / rday 
     225      adatrj  = adatrj  + rdt / rday 
     226      fjulday = fjulday + rdt / rday 
    227227      IF( ABS(fjulday - REAL(NINT(fjulday),wp)) < zprec )   fjulday = REAL(NINT(fjulday),wp)   ! avoid truncation error 
    228228      IF( ABS(adatrj  - REAL(NINT(adatrj ),wp)) < zprec )   adatrj  = REAL(NINT(adatrj ),wp)   ! avoid truncation error 
     
    334334               ! parameters correspondting to nit000 - 1 (as we start the step loop with a call to day) 
    335335               ndastp = ndate0 - 1     ! ndate0 read in the namelist in dom_nam, we assume that we start run at 00:00 
    336                adatrj = ( REAL( nit000-1, wp ) * rdttra(1) ) / rday 
     336               adatrj = ( REAL( nit000-1, wp ) * rdt ) / rday 
    337337               ! note this is wrong if time step has changed during run 
    338338            ENDIF 
     
    340340            ! parameters correspondting to nit000 - 1 (as we start the step loop with a call to day) 
    341341            ndastp = ndate0 - 1        ! ndate0 read in the namelist in dom_nam, we assume that we start run at 00:00 
    342             adatrj = ( REAL( nit000-1, wp ) * rdttra(1) ) / rday 
     342            adatrj = ( REAL( nit000-1, wp ) * rdt ) / rday 
    343343         ENDIF 
    344344         IF( ABS(adatrj  - REAL(NINT(adatrj),wp)) < 0.1 / rday )   adatrj = REAL(NINT(adatrj),wp)   ! avoid truncation error 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90

    r5930 r6051  
    3535   REAL(wp), PUBLIC ::   rn_e3zps_rat    !: minimum thickness ration for partial steps 
    3636   INTEGER , PUBLIC ::   nn_msh          !: = 1 create a mesh-mask file 
    37    INTEGER , PUBLIC ::   nn_acc          !: = 0/1 use of the acceleration of convergence technique 
    3837   REAL(wp), PUBLIC ::   rn_atfp         !: asselin time filter parameter 
    39    REAL(wp), PUBLIC ::   rn_rdt          !: time step for the dynamics (and tracer if nacc=0) 
    40    REAL(wp), PUBLIC ::   rn_rdtmin       !: minimum time step on tracers 
    41    REAL(wp), PUBLIC ::   rn_rdtmax       !: maximum time step on tracers 
    42    REAL(wp), PUBLIC ::   rn_rdth         !: depth variation of tracer step 
     38   REAL(wp), PUBLIC ::   rn_rdt          !: time step for the dynamics and tracer 
    4339   INTEGER , PUBLIC ::   nn_closea       !: =0 suppress closed sea/lake from the ORCA domain or not (=1) 
    4440   INTEGER , PUBLIC ::   nn_euler        !: =0 start with forward time step or not (=1) 
     
    9995   REAL(wp), PUBLIC ::   e3zps_rat       !: minimum thickness ration for partial steps 
    10096   INTEGER , PUBLIC ::   nmsh            !: = 1 create a mesh-mask file 
    101    INTEGER , PUBLIC ::   nacc            !: = 0/1 use of the acceleration of convergence technique 
    10297   REAL(wp), PUBLIC ::   atfp            !: asselin time filter parameter 
    103    REAL(wp), PUBLIC ::   rdt             !: time step for the dynamics (and tracer if nacc=0) 
    104    REAL(wp), PUBLIC ::   rdtmin          !: minimum time step on tracers 
    105    REAL(wp), PUBLIC ::   rdtmax          !: maximum time step on tracers 
    106    REAL(wp), PUBLIC ::   rdth            !: depth variation of tracer step 
     98   REAL(wp), PUBLIC ::   rdt             !: time step for the dynamics and tracer 
    10799 
    108100   !                                                  !!! associated variables 
    109101   INTEGER , PUBLIC                 ::   neuler        !: restart euler forward option (0=Euler) 
    110102   REAL(wp), PUBLIC                 ::   atfp1         !: asselin time filter coeff. (atfp1= 1-2*atfp) 
    111    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   rdttra  !: vertical profile of tracer time step 
    112    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   r2dtra  !: = 2*rdttra except at nit000 (=rdttra) if neuler=0 
     103   REAL(wp), PUBLIC                 ::   r2dt          !: = 2*rdt except at nit000 (=rdt) if neuler=0 
    113104 
    114105   !!---------------------------------------------------------------------- 
     
    331322      ierr(:) = 0 
    332323      ! 
    333       ALLOCATE( rdttra(jpk), r2dtra(jpk), mig(jpi), mjg(jpj), nfiimpp(jpni,jpnj),  & 
     324      ALLOCATE( mig(jpi), mjg(jpj), nfiimpp(jpni,jpnj),  & 
    334325         &      nfipproc(jpni,jpnj), nfilcit(jpni,jpnj), STAT=ierr(1) ) 
    335326         ! 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90

    r5836 r6051  
    138138         &             nn_no   , cn_exp    , cn_ocerst_in, cn_ocerst_out, ln_rstart , nn_rstctl,   & 
    139139         &             nn_it000, nn_itend  , nn_date0    , nn_leapy     , nn_istate , nn_stock ,   & 
    140          &             nn_write, ln_dimgnnn, ln_mskland  , ln_cfmeta    , ln_clobber, nn_chunksz, nn_euler 
     140         &             nn_write, ln_mskland  , ln_cfmeta , ln_clobber   , nn_chunksz, nn_euler 
    141141      NAMELIST/namdom/ nn_bathy, rn_bathy , rn_e3zps_min, rn_e3zps_rat, nn_msh, rn_hmin,   & 
    142          &             nn_acc   , rn_atfp     , rn_rdt      , rn_rdtmin ,                  & 
    143          &             rn_rdtmax, rn_rdth     , nn_closea , ln_crs,    & 
    144          &             jphgr_msh, & 
     142         &             rn_atfp , rn_rdt   , nn_closea   , ln_crs , jphgr_msh, & 
    145143         &             ppglam0, ppgphi0, ppe1_deg, ppe2_deg, ppe1_m, ppe2_m, & 
    146144         &             ppsur, ppa0, ppa1, ppkth, ppacr, ppdzmin, pphmax, ldbletanh, & 
     
    186184         ENDIF 
    187185         WRITE(numout,*) '      frequency of output file        nn_write   = ', nn_write 
    188          WRITE(numout,*) '      multi file dimgout              ln_dimgnnn = ', ln_dimgnnn 
    189186         WRITE(numout,*) '      mask land points                ln_mskland = ', ln_mskland 
    190187         WRITE(numout,*) '      additional CF standard metadata ln_cfmeta  = ', ln_cfmeta 
     
    267264         WRITE(numout,*) '      ocean time step                       rn_rdt    = ', rn_rdt 
    268265         WRITE(numout,*) '      asselin time filter parameter         rn_atfp   = ', rn_atfp 
    269          WRITE(numout,*) '      acceleration of converge              nn_acc    = ', nn_acc 
    270          WRITE(numout,*) '        nn_acc=1: surface tracer rdt        rn_rdtmin = ', rn_rdtmin 
    271          WRITE(numout,*) '                  bottom  tracer rdt        rdtmax    = ', rn_rdtmax 
    272          WRITE(numout,*) '                  depth of transition       rn_rdth   = ', rn_rdth 
    273266         WRITE(numout,*) '      suppression of closed seas (=0)       nn_closea = ', nn_closea 
    274267         WRITE(numout,*) '      online coarsening of dynamical fields ln_crs    = ', ln_crs 
     
    297290      e3zps_rat = rn_e3zps_rat 
    298291      nmsh      = nn_msh 
    299       nacc      = nn_acc 
    300292      atfp      = rn_atfp 
    301293      rdt       = rn_rdt 
    302       rdtmin    = rn_rdtmin 
    303       rdtmax    = rn_rdtmin 
    304       rdth      = rn_rdth 
    305294 
    306295#if defined key_netcdf4 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/DOM/domstp.F90

    r4292 r6051  
    4141      !!      filter parameter read in namelist 
    4242      !!              - Model time step: 
    43       !!      nacc = 0 : synchronous time intergration.  
    44       !!      There is one time step only, defined by: rdt, rdttra(k)=rdt 
    45       !!      nacc = 1 : accelerating the convergence. There is 2 different 
    46       !!      time steps for dynamics and tracers: 
    47       !!        rdt      : dynamical part 
    48       !!        rdttra(k): temperature and salinity 
    49       !!      The tracer time step is a function of vertical level. the model 
    50       !!      reference time step ( i.e. for wind stress, surface heat and 
    51       !!      salt fluxes) is the surface tracer time step is rdttra(1). 
    52       !!         N.B. depth dependent acceleration of convergence is not im- 
    53       !!      plemented for s-coordinate. 
     43      !!                synchronous time intergration. 
     44      !!      There is one time step only, defined by: rdt for dynamics and 
     45      !!      tracer,wind stress, surface heat and salt fluxes 
    5446      !! 
    55       !! ** Action  : - rdttra   : vertical profile of tracer time step 
     47      !! ** Action  : [REMOVED - rdttra: vertical profile of tracer time step] 
    5648      !!              - atfp1    : = 1 - 2*atfp 
    5749      !! 
     
    7264      atfp1 = 1. - 2. * atfp 
    7365 
    74       SELECT CASE ( nacc ) 
     66      IF(lwp) WRITE(numout,*)'               synchronous time stepping' 
     67      IF(lwp) WRITE(numout,*)'               dynamics and tracer time step = ', rdt/3600., ' hours' 
    7568 
    76          CASE ( 0 )                ! Synchronous time stepping 
    77             IF(lwp) WRITE(numout,*)'               synchronous time stepping' 
    78             IF(lwp) WRITE(numout,*)'               dynamics and tracer time step = ', rdt/3600., ' hours' 
    79  
    80             rdttra(:) = rdt 
    81  
    82          CASE ( 1 )                ! Accelerating the convergence 
    83             IF(lwp) WRITE(numout,*) '              no tracer damping in the turbocline' 
    84             IF(lwp) WRITE(numout,*)'               accelerating the convergence' 
    85             IF(lwp) WRITE(numout,*)'               dynamics time step = ', rdt/3600., ' hours' 
    86             IF( ln_sco .AND. rdtmin /= rdtmax .AND. lk_vvl )   & 
    87                  & CALL ctl_stop ( ' depth dependent acceleration of convergence not implemented in s-coordinates & 
    88                  &                   nor in variable volume' ) 
    89             IF(lwp) WRITE(numout,*)'         tracers   time step :  dt (hours)  level' 
    90  
    91             DO jk = 1, jpk 
    92                IF( gdept_1d(jk) <= rdth ) rdttra(jk) = rdtmin 
    93                IF( gdept_1d(jk) >  rdth ) THEN 
    94                   rdttra(jk) = rdtmin + ( rdtmax - rdtmin )   & 
    95                                       * ( EXP( ( gdept_1d(jk ) - rdth ) / rdth ) - 1. )   & 
    96                                       / ( EXP( ( gdept_1d(jpk) - rdth ) / rdth ) - 1. ) 
    97                ENDIF 
    98                IF(lwp) WRITE(numout,"(36x,f5.2,5x,i3)") rdttra(jk)/3600., jk 
    99             END DO   
    100  
    101          CASE DEFAULT              ! E R R O R  
    102  
    103             WRITE(ctmp1,*) ' nacc value e r r o r, nacc= ',nacc 
    104             CALL ctl_stop( ctmp1 ) 
    105  
    106       END SELECT 
    10769 
    10870   END SUBROUTINE dom_stp 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf.F90

    r5836 r6051  
    3434 
    3535   INTEGER  ::   nzdf = 0   ! type vertical diffusion algorithm used, defined from ln_zdf... namlist logicals 
    36    REAL(wp) ::   r2dt       ! time-step, = 2 rdttra except at nit000 (=rdttra) if neuler=0 
    3736 
    3837   !! * Substitutions 
     
    6362      ! 
    6463      !                                          ! set time step 
    65       IF( neuler == 0 .AND. kt == nit000     ) THEN   ;   r2dt =      rdt   ! = rdtra (restart with Euler time stepping) 
    66       ELSEIF(               kt <= nit000 + 1 ) THEN   ;   r2dt = 2. * rdt   ! = 2 rdttra (leapfrog) 
     64      IF( neuler == 0 .AND. kt == nit000     ) THEN   ;   r2dt =      rdt   ! = rdt (restart with Euler time stepping) 
     65      ELSEIF(               kt <= nit000 + 1 ) THEN   ;   r2dt = 2. * rdt   ! = 2 rdt (leapfrog) 
    6766      ENDIF 
    6867 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/IOM/in_out_manager.F90

    r5518 r6051  
    4242   INTEGER       ::   nn_stock         !: restart file frequency 
    4343   INTEGER, DIMENSION(10) :: nn_stocklist  !: restart dump times 
    44    LOGICAL       ::   ln_dimgnnn       !: type of dimgout. (F): 1 file for all proc 
    45                                                        !:                  (T): 1 file per proc 
    4644   LOGICAL       ::   ln_mskland       !: mask land points in NetCDF outputs (costly: + ~15%) 
    4745   LOGICAL       ::   ln_cfmeta        !: output additional data to netCDF files required for compliance with the CF metadata standard 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r5836 r6051  
    88   !!            3.0  ! 2007-07  (D. Storkey) Changes to iom_gettime 
    99   !!            3.4  ! 2012-12  (R. Bourdalle-Badie and G. Reffray)  add C1D case   
     10   !!            3.6  ! 2014-15  DIMG format removed 
    1011   !!-------------------------------------------------------------------- 
    1112 
     
    2324   USE lbclnk          ! lateal boundary condition / mpp exchanges 
    2425   USE iom_def         ! iom variables definitions 
    25    USE iom_ioipsl      ! NetCDF format with IOIPSL library 
    2626   USE iom_nf90        ! NetCDF format with native NetCDF library 
    27    USE iom_rstdimg     ! restarts access direct format "dimg" style... 
    2827   USE in_out_manager  ! I/O manager 
    2928   USE lib_mpp           ! MPP library 
     
    246245      CHARACTER(LEN=256)    ::   clname    ! the name of the file based on cdname [[+clcpu]+clcpu] 
    247246      CHARACTER(LEN=256)    ::   cltmpn    ! tempory name to store clname (in writting mode) 
    248       CHARACTER(LEN=10)     ::   clsuffix  ! ".nc" or ".dimg" 
     247      CHARACTER(LEN=10)     ::   clsuffix  ! ".nc"  
    249248      CHARACTER(LEN=15)     ::   clcpu     ! the cpu number (max jpmax_digits digits) 
    250249      CHARACTER(LEN=256)    ::   clinfo    ! info character 
     
    309308      ! which suffix should we use? 
    310309      SELECT CASE (iolib) 
    311       CASE (jpioipsl ) ;   clsuffix = '.nc' 
    312310      CASE (jpnf90   ) ;   clsuffix = '.nc' 
    313       CASE (jprstdimg) ;   clsuffix = '.dimg' 
    314311      CASE DEFAULT     ;   clsuffix = '' 
    315          CALL ctl_stop( TRIM(clinfo), 'accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     312         CALL ctl_stop( TRIM(clinfo), 'accepted IO library is only jpnf90 (jpioipsl option has been removed) ' ) 
    316313      END SELECT 
    317314      ! Add the suffix if needed 
     
    326323      IF( .NOT.llok ) THEN 
    327324         ! we try to add the cpu number to the name 
    328          IF( iolib == jprstdimg ) THEN   ;   WRITE(clcpu,*) narea 
    329          ELSE                            ;   WRITE(clcpu,*) narea-1 
    330          ENDIF 
     325         WRITE(clcpu,*) narea-1 
     326 
    331327         clcpu  = TRIM(ADJUSTL(clcpu)) 
    332328         iln = INDEX(clname,TRIM(clsuffix), back = .TRUE.) 
     
    375371         END SELECT 
    376372      ENDIF 
    377       ! Open the NetCDF or RSTDIMG file 
     373      ! Open the NetCDF file 
    378374      ! ============= 
    379375      ! do we have some free file identifier? 
     
    399395      IF( istop == nstop ) THEN   ! no error within this routine 
    400396         SELECT CASE (iolib) 
    401          CASE (jpioipsl )   ;   CALL iom_ioipsl_open(  clname, kiomid, llwrt, llok, idompar ) 
    402397         CASE (jpnf90   )   ;   CALL iom_nf90_open(    clname, kiomid, llwrt, llok, idompar ) 
    403          CASE (jprstdimg)   ;   CALL iom_rstdimg_open( clname, kiomid, llwrt, llok, idompar ) 
    404398         CASE DEFAULT 
    405             CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     399            CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed) ' ) 
    406400         END SELECT 
    407401      ENDIF 
     
    438432            IF( iom_file(jf)%nfid > 0 ) THEN 
    439433               SELECT CASE (iom_file(jf)%iolib) 
    440                CASE (jpioipsl )   ;   CALL iom_ioipsl_close(  jf ) 
    441434               CASE (jpnf90   )   ;   CALL iom_nf90_close(    jf ) 
    442                CASE (jprstdimg)   ;   CALL iom_rstdimg_close( jf ) 
    443435               CASE DEFAULT 
    444                   CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     436                  CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    445437               END SELECT 
    446438               iom_file(jf)%nfid       = 0          ! free the id  
     
    497489               IF( iiv <= jpmax_vars ) THEN 
    498490                  SELECT CASE (iom_file(kiomid)%iolib) 
    499                   CASE (jpioipsl )   ;   iom_varid = iom_ioipsl_varid( kiomid, cdvar, iiv, kdimsz ) 
    500491                  CASE (jpnf90   )   ;   iom_varid = iom_nf90_varid  ( kiomid, cdvar, iiv, kdimsz, kndims ) 
    501                   CASE (jprstdimg)   ;   iom_varid = -1   ! all variables are listed in iom_file 
    502                   CASE DEFAULT    
    503                      CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     492                  CASE DEFAULT 
     493                     CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    504494                  END SELECT 
    505495               ELSE 
     
    559549                                 &                         'Use ncwa -a to suppress the unnecessary dimensions' ) 
    560550            SELECT CASE (iom_file(kiomid)%iolib) 
    561             CASE (jpioipsl )   ;   CALL iom_ioipsl_get(  kiomid, idvar, pvar, itime ) 
    562551            CASE (jpnf90   )   ;   CALL iom_nf90_get(    kiomid, idvar, pvar, itime ) 
    563             CASE (jprstdimg)   ;   CALL iom_rstdimg_get( kiomid, idvar, pvar ) 
    564             CASE DEFAULT     
    565                CALL ctl_stop( 'iom_g0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     552            CASE DEFAULT 
     553               CALL ctl_stop( 'iom_g0d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    566554            END SELECT 
    567555         ENDIF 
     
    694682      IF( luse_jattr ) THEN 
    695683         SELECT CASE (iom_file(kiomid)%iolib) 
    696          CASE (jpioipsl, jprstdimg ) 
    697              CALL ctl_warn(trim(clinfo), 'lrowattr present and true but this only works with netcdf (jpnf90)') 
    698              luse_jattr = .false. 
    699684         CASE (jpnf90   )    
    700685             ! Ok 
    701686         CASE DEFAULT     
    702             CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     687            CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    703688         END SELECT 
    704689      ENDIF 
     
    866851       
    867852         SELECT CASE (iom_file(kiomid)%iolib) 
    868          CASE (jpioipsl )   ;   CALL iom_ioipsl_get(  kiomid, idvar, inbdim, istart, icnt, ix1, ix2, iy1, iy2,   & 
    869             &                                         pv_r1d, pv_r2d, pv_r3d ) 
    870853         CASE (jpnf90   )   ;   CALL iom_nf90_get(    kiomid, idvar, inbdim, istart, icnt, ix1, ix2, iy1, iy2,   & 
    871854            &                                         pv_r1d, pv_r2d, pv_r3d ) 
    872          CASE (jprstdimg)   ;   CALL iom_rstdimg_get( kiomid, idom, idvar, ix1, ix2, iy1, iy2,   & 
    873             &                                         pv_r1d, pv_r2d, pv_r3d ) 
    874          CASE DEFAULT     
    875             CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     855         CASE DEFAULT 
     856            CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    876857         END SELECT 
    877858 
     
    956937                  IF( iom_file(kiomid)%dimsz(1,idvar) <= size(ptime) ) THEN 
    957938                     SELECT CASE (iom_file(kiomid)%iolib) 
    958                      CASE (jpioipsl )   ;   CALL iom_ioipsl_gettime( kiomid, idvar, ptime, cdunits, cdcalendar ) 
    959939                     CASE (jpnf90   )   ;   CALL iom_nf90_gettime(   kiomid, idvar, ptime, cdunits, cdcalendar ) 
    960                      CASE (jprstdimg)   ;   CALL ctl_stop( TRIM(clinfo)//' case IO library == jprstdimg not coded...' ) 
    961                      CASE DEFAULT     
    962                         CALL ctl_stop( TRIM(clinfo)//' accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     940                     CASE DEFAULT 
     941                        CALL ctl_stop( TRIM(clinfo)//' accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    963942                     END SELECT 
    964943                  ELSE 
     
    991970         IF( iom_file(kiomid)%nfid > 0 ) THEN 
    992971            SELECT CASE (iom_file(kiomid)%iolib) 
    993             CASE (jpioipsl )   ;   CALL ctl_stop('iom_getatt: only nf90 available') 
    994972            CASE (jpnf90   )   ;   CALL iom_nf90_getatt( kiomid, cdatt, pvar ) 
    995             CASE (jprstdimg)   ;   CALL ctl_stop('iom_getatt: only nf90 available') 
    996             CASE DEFAULT     
    997                CALL ctl_stop( 'iom_g0d_att: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     973            CASE DEFAULT 
     974               CALL ctl_stop( 'iom_g0d_att: accepted IO library is only jpnf90' ) 
    998975            END SELECT 
    999976         ENDIF 
     
    1017994            ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 
    1018995            SELECT CASE (iom_file(kiomid)%iolib) 
    1019             CASE (jpioipsl )   ;   CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r0d = pvar ) 
    1020996            CASE (jpnf90   )   ;   CALL iom_nf90_rstput(   kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r0d = pvar ) 
    1021             CASE (jprstdimg)   ;   IF( kt == kwrite )    CALL iom_rstdimg_rstput( kiomid, cdvar, ivid, pvar ) 
    1022             CASE DEFAULT      
    1023                CALL ctl_stop( 'iom_rp0d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     997            CASE DEFAULT 
     998               CALL ctl_stop( 'iom_rp0d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    1024999            END SELECT 
    10251000         ENDIF 
     
    10391014            ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 
    10401015            SELECT CASE (iom_file(kiomid)%iolib) 
    1041             CASE (jpioipsl )   ;   CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r1d = pvar ) 
    10421016            CASE (jpnf90   )   ;   CALL iom_nf90_rstput(   kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r1d = pvar ) 
    1043             CASE (jprstdimg)   ;   IF( kt == kwrite )    CALL iom_rstdimg_rstput( kiomid, cdvar, ivid, pv_r1d = pvar ) 
    1044             CASE DEFAULT      
    1045                CALL ctl_stop( 'iom_rp1d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     1017            CASE DEFAULT 
     1018               CALL ctl_stop( 'iom_rp1d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    10461019            END SELECT 
    10471020         ENDIF 
     
    10611034            ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 
    10621035            SELECT CASE (iom_file(kiomid)%iolib) 
    1063             CASE (jpioipsl )   ;   CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r2d = pvar ) 
    10641036            CASE (jpnf90   )   ;   CALL iom_nf90_rstput(   kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r2d = pvar ) 
    1065             CASE (jprstdimg)   ;   IF( kt == kwrite )   CALL iom_rstdimg_rstput( kiomid, cdvar, ivid, pv_r2d = pvar )  
    1066             CASE DEFAULT      
    1067                CALL ctl_stop( 'iom_rp2d: accepted IO library are only jpioipsl, jpnf90 and jprstdimg' ) 
     1037            CASE DEFAULT 
     1038               CALL ctl_stop( 'iom_rp2d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    10681039            END SELECT 
    10691040         ENDIF 
     
    10831054            ivid = iom_varid( kiomid, cdvar, ldstop = .FALSE. ) 
    10841055            SELECT CASE (iom_file(kiomid)%iolib) 
    1085             CASE (jpioipsl )   ;   CALL iom_ioipsl_rstput( kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r3d = pvar ) 
    10861056            CASE (jpnf90   )   ;   CALL iom_nf90_rstput(   kt, kwrite, kiomid, cdvar, ivid, ktype, pv_r3d = pvar ) 
    1087             CASE (jprstdimg)   ;   IF( kt == kwrite )   CALL iom_rstdimg_rstput( kiomid, cdvar, ivid, pv_r3d = pvar ) 
    1088             CASE DEFAULT      
    1089                CALL ctl_stop( 'iom_rp3d: accepted IO library are only jpioipsl and jprstdimg' ) 
     1057            CASE DEFAULT 
     1058               CALL ctl_stop( 'iom_rp3d: accepted IO library is only jpnf90 (jpioipsl option has been removed)' ) 
    10901059            END SELECT 
    10911060         ENDIF 
     
    16451614            idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@') 
    16461615            DO WHILE ( idx /= 0 )  
    1647                cldate = iom_sdate( fjulday - rdttra(1) / rday ) 
     1616               cldate = iom_sdate( fjulday - rdt / rday ) 
    16481617               clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+11:LEN_TRIM(clname)) 
    16491618               idx = INDEX(clname,'@startdate@') + INDEX(clname,'@STARTDATE@') 
     
    16521621            idx = INDEX(clname,'@startdatefull@') + INDEX(clname,'@STARTDATEFULL@') 
    16531622            DO WHILE ( idx /= 0 )  
    1654                cldate = iom_sdate( fjulday - rdttra(1) / rday, ldfull = .TRUE. ) 
     1623               cldate = iom_sdate( fjulday - rdt / rday, ldfull = .TRUE. ) 
    16551624               clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+15:LEN_TRIM(clname)) 
    16561625               idx = INDEX(clname,'@startdatefull@') + INDEX(clname,'@STARTDATEFULL@') 
     
    16591628            idx = INDEX(clname,'@enddate@') + INDEX(clname,'@ENDDATE@') 
    16601629            DO WHILE ( idx /= 0 )  
    1661                cldate = iom_sdate( fjulday + rdttra(1) / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE. ) 
     1630               cldate = iom_sdate( fjulday + rdt / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE. ) 
    16621631               clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+9:LEN_TRIM(clname)) 
    16631632               idx = INDEX(clname,'@enddate@') + INDEX(clname,'@ENDDATE@') 
     
    16661635            idx = INDEX(clname,'@enddatefull@') + INDEX(clname,'@ENDDATEFULL@') 
    16671636            DO WHILE ( idx /= 0 )  
    1668                cldate = iom_sdate( fjulday + rdttra(1) / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE., ldfull = .TRUE. ) 
     1637               cldate = iom_sdate( fjulday + rdt / rday * REAL( nitend - nit000, wp ), ld24 = .TRUE., ldfull = .TRUE. ) 
    16691638               clname = clname(1:idx-1)//TRIM(cldate)//clname(idx+13:LEN_TRIM(clname)) 
    16701639               idx = INDEX(clname,'@enddatefull@') + INDEX(clname,'@ENDDATEFULL@') 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/IOM/iom_def.F90

    r4205 r6051  
    2828   INTEGER, PARAMETER, PUBLIC ::   jpdom_autodta       = 9   !:  
    2929 
    30    INTEGER, PARAMETER, PUBLIC ::   jpioipsl    = 100      !: Use ioipsl (fliocom only) library 
    3130   INTEGER, PARAMETER, PUBLIC ::   jpnf90      = 101      !: Use nf90 library 
    32    INTEGER, PARAMETER, PUBLIC ::   jprstdimg   = 102      !: Use restart dimgs (fortran direct acces) library 
    33 #if defined key_dimgout 
    34    INTEGER, PARAMETER, PUBLIC ::   jprstlib  = jprstdimg  !: restarts io library 
    35 #else 
     31 
    3632   INTEGER, PARAMETER, PUBLIC ::   jprstlib  = jpnf90     !: restarts io library 
    37 #endif 
    3833 
    3934   INTEGER, PARAMETER, PUBLIC ::   jp_r8    = 200      !: write REAL(8) 
     
    5449      CHARACTER(LEN=240)                        ::   name     !: name of the file 
    5550      INTEGER                                   ::   nfid     !: identifier of the file (0 if closed) 
    56       INTEGER                                   ::   iolib    !: library used to read the file (jpioipsl, jpnf90 or jprstdimg) 
     51      INTEGER                                   ::   iolib    !: library used to read the file (jpnf90 or new formats, 
     52                                                              !: jpioipsl option has been removed) 
    5753      INTEGER                                   ::   nvars    !: number of identified varibles in the file 
    5854      INTEGER                                   ::   iduld    !: id of the unlimited dimension 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90

    r5836 r6051  
    9595               WRITE(numout,*) 
    9696               SELECT CASE ( jprstlib ) 
    97                CASE ( jprstdimg )   ;   WRITE(numout,*)                            & 
    98                    '             open ocean restart binary file: ',TRIM(clpath)//clname 
    9997               CASE DEFAULT         ;   WRITE(numout,*)                            & 
    10098                   '             open ocean restart NetCDF file: ',TRIM(clpath)//clname 
     
    126124      !!---------------------------------------------------------------------- 
    127125 
    128                      CALL iom_rstput( kt, nitrst, numrow, 'rdt'    , rdt       )   ! dynamics time step 
    129                      CALL iom_rstput( kt, nitrst, numrow, 'rdttra1', rdttra(1) )   ! surface tracer time step 
     126                     CALL iom_rstput( kt, nitrst, numrow, 'rdt'    , rdt       )   ! dynamics and tracer time step 
    130127 
    131128                     CALL iom_rstput( kt, nitrst, numrow, 'ub'     , ub        )     ! before fields 
     
    175172            SELECT CASE ( jprstlib ) 
    176173            CASE ( jpnf90    )   ;   WRITE(numout,*) 'rst_read : read oce NetCDF restart file' 
    177             CASE ( jprstdimg )   ;   WRITE(numout,*) 'rst_read : read oce binary restart file' 
    178174            END SELECT 
    179175            IF ( snc4set%luse )      WRITE(numout,*) 'rst_read : configured with NetCDF4 support' 
     
    183179         clpath = TRIM(cn_ocerst_indir) 
    184180         IF( clpath(LEN_TRIM(clpath):) /= '/' ) clpath = TRIM(clpath) // '/' 
    185          IF ( jprstlib == jprstdimg ) THEN 
    186            ! eventually read netcdf file (monobloc)  for restarting on different number of processors 
    187            ! if {cn_ocerst_in}.nc exists, then set jlibalt to jpnf90 
    188            INQUIRE( FILE = TRIM(cn_ocerst_indir)//'/'//TRIM(cn_ocerst_in)//'.nc', EXIST = llok ) 
    189            IF ( llok ) THEN ; jlibalt = jpnf90  ; ELSE ; jlibalt = jprstlib ; ENDIF 
    190          ENDIF 
    191181         CALL iom_open( TRIM(clpath)//cn_ocerst_in, numror, kiolib = jlibalt ) 
    192182      ENDIF 
     
    202192      !! ** Method  :   Read in restart.nc file fields which are necessary for restart 
    203193      !!---------------------------------------------------------------------- 
    204       REAL(wp) ::   zrdt, zrdttra1 
     194      REAL(wp) ::   zrdt 
    205195      INTEGER  ::   jk 
    206196      LOGICAL  ::   llok 
     
    213203         CALL iom_get( numror, 'rdt', zrdt ) 
    214204         IF( zrdt /= rdt )   neuler = 0 
    215       ENDIF 
    216       IF( iom_varid( numror, 'rdttra1', ldstop = .FALSE. ) > 0 )   THEN 
    217          CALL iom_get( numror, 'rdttra1', zrdttra1 ) 
    218          IF( zrdttra1 /= rdttra(1) )   neuler = 0 
    219205      ENDIF 
    220206      !  
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/LBC/mppini.F90

    r4679 r6051  
    457457#  include "mppini_2.h90" 
    458458 
    459 # if defined key_dimgout 
    460    !!---------------------------------------------------------------------- 
    461    !!   'key_dimgout'                  NO use of NetCDF files 
    462    !!---------------------------------------------------------------------- 
    463    SUBROUTINE mpp_init_ioipsl       ! Dummy routine 
    464    END SUBROUTINE mpp_init_ioipsl   
    465 # else 
    466459   SUBROUTINE mpp_init_ioipsl 
    467460      !!---------------------------------------------------------------------- 
     
    509502   END SUBROUTINE mpp_init_ioipsl   
    510503 
    511 # endif 
    512504#endif 
    513505 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90

    r5836 r6051  
    166166         isecsbc = nsec_year + nsec1jan000 + (kit+it_offset)*NINT( rdt/REAL(nn_baro,wp) ) 
    167167      ELSE                      ! middle of sbc time step 
    168          isecsbc = nsec_year + nsec1jan000 + NINT(0.5 * REAL(kn_fsbc - 1,wp) * rdttra(1)) + it_offset * NINT(rdttra(1)) 
     168         isecsbc = nsec_year + nsec1jan000 + NINT(0.5 * REAL(kn_fsbc - 1,wp) * rdt) + it_offset * NINT(rdt) 
    169169      ENDIF 
    170170      imf = SIZE( sd ) 
     
    193193               CALL fld_rec( kn_fsbc, sd(jf), kt_offset = it_offset, kit = kit )    ! update after record informations 
    194194 
    195                ! if kn_fsbc*rdttra is larger than nfreqh (which is kind of odd), 
     195               ! if kn_fsbc*rdt is larger than nfreqh (which is kind of odd), 
    196196               ! it is possible that the before value is no more the good one... we have to re-read it 
    197197               ! if before is not the last record of the file currently opened and after is the first record to be read 
     
    214214               IF( sd(jf)%ln_tint ) THEN 
    215215                   
    216                   ! if kn_fsbc*rdttra is larger than nfreqh (which is kind of odd), 
     216                  ! if kn_fsbc*rdt is larger than nfreqh (which is kind of odd), 
    217217                  ! it is possible that the before value is no more the good one... we have to re-read it 
    218218                  ! if before record is not just just before the after record... 
     
    245245                        ! year/month/week/day file to be not present. If the run continue further than the current 
    246246                        ! year/month/week/day, next year/month/week/day file must exist 
    247                         isecend = nsec_year + nsec1jan000 + (nitend - kt) * NINT(rdttra(1))   ! second at the end of the run  
     247                        isecend = nsec_year + nsec1jan000 + (nitend - kt) * NINT(rdt)   ! second at the end of the run 
    248248                        llstop = isecend > sd(jf)%nrec_a(2)                                   ! read more than 1 record of next year 
    249249                        ! we suppose that the date of next file is next day (should be ok even for weekly files...) 
     
    459459      IF( PRESENT(kt_offset) )   it_offset = kt_offset 
    460460      IF( PRESENT(kit) ) THEN   ;   it_offset = ( kit + it_offset ) * NINT( rdt/REAL(nn_baro,wp) ) 
    461       ELSE                      ;   it_offset =         it_offset   * NINT(       rdttra(1)      ) 
     461      ELSE                      ;   it_offset =         it_offset   * NINT(       rdt            ) 
    462462      ENDIF 
    463463      ! 
     
    536536         ELSE                                           ;   ztmp = REAL(nsec_year ,wp)  ! since 00h on Jan 1 of the current year 
    537537         ENDIF 
    538          ztmp = ztmp + 0.5 * REAL(kn_fsbc - 1, wp) * rdttra(1) + REAL( it_offset, wp )  ! centrered in the middle of sbc time step 
    539          ztmp = ztmp + 0.01 * rdttra(1)                                                 ! avoid truncation error  
     538         ztmp = ztmp + 0.5 * REAL(kn_fsbc - 1, wp) * rdt + REAL( it_offset, wp )        ! centrered in the middle of sbc time step 
     539         ztmp = ztmp + 0.01 * rdt                                                       ! avoid truncation error  
    540540         IF( sdjf%ln_tint ) THEN                ! time interpolation, shift by 1/2 record 
    541541            ! 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r5836 r6051  
    844844      LOGICAL  ::   llnewtx, llnewtau      ! update wind stress components and module?? 
    845845      INTEGER  ::   ji, jj, jn             ! dummy loop indices 
    846       INTEGER  ::   isec                   ! number of seconds since nit000 (assuming rdttra did not change since nit000) 
     846      INTEGER  ::   isec                   ! number of seconds since nit000 (assuming rdt did not change since nit000) 
    847847      REAL(wp) ::   zcumulneg, zcumulpos   ! temporary scalars      
    848848      REAL(wp) ::   zcoef                  ! temporary scalar 
     
    862862      !                                                      ! Receive all the atmos. fields (including ice information) 
    863863      !                                                      ! ======================================================= ! 
    864       isec = ( kt - nit000 ) * NINT( rdttra(1) )                ! date of exchanges 
     864      isec = ( kt - nit000 ) * NINT( rdt )                      ! date of exchanges 
    865865      DO jn = 1, jprcv                                          ! received fields sent by the atmosphere 
    866866         IF( srcv(jn)%laction )   CALL cpl_rcv( jn, isec, frcv(jn)%z3, xcplmask(:,:,1:nn_cplmodel), nrcvinfo(jn) ) 
     
    17131713      CALL wrk_alloc( jpi,jpj,jpl, ztmp3, ztmp4 ) 
    17141714 
    1715       isec = ( kt - nit000 ) * NINT(rdttra(1))        ! date of exchanges 
     1715      isec = ( kt - nit000 ) * NINT( rdt )        ! date of exchanges 
    17161716 
    17171717      zfr_l(:,:) = 1.- fr_i(:,:) 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/SBC/sbcdcy.F90

    r3764 r6051  
    9090 
    9191      ! When are we during the day (from 0 to 1) 
    92       zlo = ( REAL(nsec_day, wp) - 0.5_wp * rdttra(1) ) / rday 
    93       zup = zlo + ( REAL(nn_fsbc, wp)     * rdttra(1) ) / rday 
     92      zlo = ( REAL(nsec_day, wp) - 0.5_wp * rdt ) / rday 
     93      zup = zlo + ( REAL(nn_fsbc, wp)     * rdt ) / rday 
    9494      !                                           
    9595      IF( nday_qsr == -1 ) THEN       ! first time step only   
     
    189189         END DO   
    190190         ! 
    191          ztmp = rday / ( rdttra(1) * REAL(nn_fsbc, wp) ) 
     191         ztmp = rday / ( rdt * REAL(nn_fsbc, wp) ) 
    192192         rscal(:,:) = rscal(:,:) * ztmp 
    193193         ! 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90

    r5643 r6051  
    129129         ENDIF    
    130130         !                                         ! Update fwfold if new year start 
    131          ikty = 365 * 86400 / rdttra(1)    !!bug  use of 365 days leap year or 360d year !!!!!!! 
     131         ikty = 365 * 86400 / rdt                  !!bug  use of 365 days leap year or 360d year !!!!!!! 
    132132         IF( MOD( kt, ikty ) == 0 ) THEN 
    133133            a_fwb_b = a_fwb                           ! mean sea level taking into account the ice+snow 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90

    r5541 r6051  
    373373      ! 
    374374      ! sea-ice timestep and inverse 
    375       rdt_ice   = nn_fsbc * rdttra(1)   
     375      rdt_ice   = nn_fsbc * rdt   
    376376      r1_rdtice = 1._wp / rdt_ice  
    377377 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/SBC/sbctide.F90

    r5930 r6051  
    4848      !!---------------------------------------------------------------------- 
    4949 
    50       IF( nsec_day == NINT(0.5_wp * rdttra(1)) ) THEN      ! start a new day 
     50      IF( nsec_day == NINT(0.5_wp * rdt) ) THEN      ! start a new day 
    5151         ! 
    5252         IF( kt == nit000 ) THEN 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90

    r5930 r6051  
    9696      !                                          ! set time step 
    9797      IF( neuler == 0 .AND. kt == nit000 ) THEN     ! at nit000 
    98          r2dtra(:) =  rdttra(:)                          ! = rdtra (restarting with Euler time stepping) 
     98         r2dt = rdt                                 ! = rdt (restarting with Euler time stepping) 
    9999      ELSEIF( kt <= nit000 + 1) THEN                ! at nit000 or nit000+1 
    100          r2dtra(:) = 2._wp * rdttra(:)                   ! = 2 rdttra (leapfrog) 
     100         r2dt = 2._wp * rdt                         ! = 2 rdt (leapfrog) 
    101101      ENDIF 
    102102      ! 
     
    135135         CALL tra_adv_cen    ( kt, nit000, 'TRA',         zun, zvn, zwn     , tsn, tsa, jpts, nn_cen_h, nn_cen_v ) 
    136136      CASE ( np_FCT )                                    ! FCT scheme      : 2nd / 4th order 
    137          CALL tra_adv_fct    ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts, nn_fct_h, nn_fct_v ) 
     137         CALL tra_adv_fct    ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts, nn_fct_h, nn_fct_v ) 
    138138      CASE ( np_FCT_zts )                                ! 2nd order FCT with vertical time-splitting 
    139          CALL tra_adv_fct_zts( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts        , nn_fct_zts ) 
     139         CALL tra_adv_fct_zts( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts        , nn_fct_zts ) 
    140140      CASE ( np_MUS )                                    ! MUSCL 
    141          CALL tra_adv_mus    ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb,      tsa, jpts        , ln_mus_ups )  
     141         CALL tra_adv_mus    ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb,      tsa, jpts        , ln_mus_ups )  
    142142      CASE ( np_UBS )                                    ! UBS 
    143          CALL tra_adv_ubs    ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts        , nn_ubs_v   ) 
     143         CALL tra_adv_ubs    ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts        , nn_ubs_v   ) 
    144144      CASE ( np_QCK )                                    ! QUICKEST 
    145          CALL tra_adv_qck    ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts                     ) 
     145         CALL tra_adv_qck    ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts                     ) 
    146146      ! 
    147147      END SELECT 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_fct.F90

    r5930 r6051  
    7070      INTEGER                              , INTENT(in   ) ::   kn_fct_h        ! order of the FCT scheme (=2 or 4) 
    7171      INTEGER                              , INTENT(in   ) ::   kn_fct_v        ! order of the FCT scheme (=2 or 4) 
    72       REAL(wp), DIMENSION(        jpk     ), INTENT(in   ) ::   p2dt            ! vertical profile of tracer time-step 
     72      REAL(wp)                             , INTENT(in   ) ::   p2dt            ! tracer time-step 
    7373      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(in   ) ::   pun, pvn, pwn   ! 3 ocean velocity components 
    7474      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb, ptn        ! before and now tracer fields 
     
    7676      ! 
    7777      INTEGER  ::   ji, jj, jk, jn                           ! dummy loop indices   
    78       REAL(wp) ::   z2dtt, ztra                              ! local scalar 
     78      REAL(wp) ::   ztra                              ! local scalar 
    7979      REAL(wp) ::   zfp_ui, zfp_vj, zfp_wk, zC2t_u, zC4t_u   !   -      - 
    8080      REAL(wp) ::   zfm_ui, zfm_vj, zfm_wk, zC2t_v, zC4t_v   !   -      - 
     
    149149         !                
    150150         DO jk = 1, jpkm1     !* trend and after field with monotonic scheme 
    151             z2dtt = p2dt(jk) 
    152151            DO jj = 2, jpjm1 
    153152               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    159158!!gm why tmask added in the two following lines ???    the mask is done in tranxt ! 
    160159                  pta(ji,jj,jk,jn) =   pta(ji,jj,jk,jn)         + ztra   * tmask(ji,jj,jk) 
    161                   zwi(ji,jj,jk)    = ( ptb(ji,jj,jk,jn) + z2dtt * ztra ) * tmask(ji,jj,jk) 
     160                  zwi(ji,jj,jk)    = ( ptb(ji,jj,jk,jn) + p2dt * ztra ) * tmask(ji,jj,jk) 
    162161               END DO 
    163162            END DO 
     
    348347      INTEGER                              , INTENT(in   ) ::   kjpt            ! number of tracers 
    349348      INTEGER                              , INTENT(in   ) ::   kn_fct_zts      ! number of number of vertical sub-timesteps 
    350       REAL(wp), DIMENSION(        jpk     ), INTENT(in   ) ::   p2dt            ! vertical profile of tracer time-step 
     349      REAL(wp)                             , INTENT(in   ) ::   p2dt            ! tracer time-step 
    351350      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(in   ) ::   pun, pvn, pwn   ! 3 ocean velocity components 
    352351      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb, ptn        ! before and now tracer fields 
     
    354353      ! 
    355354      REAL(wp), DIMENSION( jpk )                           ::   zts             ! length of sub-timestep for vertical advection 
    356       REAL(wp), DIMENSION( jpk )                           ::   zr_p2dt         ! reciprocal of tracer timestep 
     355      REAL(wp)                                             ::   zr_p2dt         ! reciprocal of tracer timestep 
    357356      INTEGER  ::   ji, jj, jk, jl, jn       ! dummy loop indices   
    358357      INTEGER  ::   jtb, jtn, jta   ! sub timestep pointers for leap-frog/euler forward steps 
    359358      INTEGER  ::   jtaken          ! toggle for collecting appropriate fluxes from sub timesteps 
    360359      REAL(wp) ::   z_rzts          ! Fractional length of Euler forward sub-timestep for vertical advection 
    361       REAL(wp) ::   z2dtt, ztra              ! local scalar 
     360      REAL(wp) ::   ztra              ! local scalar 
    362361      REAL(wp) ::   zfp_ui, zfp_vj, zfp_wk   !   -      - 
    363362      REAL(wp) ::   zfm_ui, zfm_vj, zfm_wk   !   -      - 
     
    390389      zwi(:,:,:) = 0._wp 
    391390      z_rzts = 1._wp / REAL( kn_fct_zts, wp ) 
    392       zr_p2dt(:) = 1._wp / p2dt(:) 
     391      zr_p2dt = 1._wp / p2dt 
    393392      ! 
    394393      !                                                          ! =========== 
     
    443442         ! 
    444443         DO jk = 1, jpkm1         ! total advective trend 
    445             z2dtt = p2dt(jk) 
    446444            DO jj = 2, jpjm1 
    447445               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    452450                  ! update and guess with monotonic sheme 
    453451                  pta(ji,jj,jk,jn) =   pta(ji,jj,jk,jn)         + ztra 
    454                   zwi(ji,jj,jk)    = ( ptb(ji,jj,jk,jn) + z2dtt * ztra ) * tmask(ji,jj,jk) 
     452                  zwi(ji,jj,jk)    = ( ptb(ji,jj,jk,jn) + p2dt * ztra ) * tmask(ji,jj,jk) 
    455453               END DO 
    456454            END DO 
     
    508506            IF( jl == 1 ) THEN                        ! Euler forward to kick things off 
    509507               jtb = 1   ;   jtn = 1   ;   jta = 2 
    510                zts(:) = p2dt(:) * z_rzts 
     508               zts(:) = p2dt * z_rzts 
    511509               jtaken = MOD( kn_fct_zts + 1 , 2)            ! Toggle to collect every second flux 
    512510               !                                            ! starting at jl =1 if kn_fct_zts is odd;  
     
    514512            ELSEIF( jl == 2 ) THEN                    ! First leapfrog step 
    515513               jtb = 1   ;   jtn = 2   ;   jta = 3 
    516                zts(:) = 2._wp * p2dt(:) * z_rzts 
     514               zts(:) = 2._wp * p2dt * z_rzts 
    517515            ELSE                                      ! Shuffle pointers for subsequent leapfrog steps 
    518516               jtb = MOD(jtb,3) + 1 
     
    557555            DO jj = 2, jpjm1 
    558556               DO ji = fs_2, fs_jpim1 
    559                   zwz(ji,jj,jk) = ( zwzts(ji,jj,jk) * zr_p2dt(jk) - zwz_sav(ji,jj,jk) ) * wmask(ji,jj,jk) 
     557                  zwz(ji,jj,jk) = ( zwzts(ji,jj,jk) * zr_p2dt - zwz_sav(ji,jj,jk) ) * wmask(ji,jj,jk) 
    560558               END DO 
    561559            END DO 
     
    623621      !!       in-space based differencing for fluid 
    624622      !!---------------------------------------------------------------------- 
    625       REAL(wp), DIMENSION(jpk)         , INTENT(in   ) ::   p2dt            ! vertical profile of tracer time-step 
     623      REAL(wp)                         , INTENT(in   ) ::   p2dt            ! tracer time-step 
    626624      REAL(wp), DIMENSION (jpi,jpj,jpk), INTENT(in   ) ::   pbef, paft      ! before & after field 
    627625      REAL(wp), DIMENSION (jpi,jpj,jpk), INTENT(inout) ::   paa, pbb, pcc   ! monotonic fluxes in the 3 directions 
     
    629627      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    630628      INTEGER  ::   ikm1         ! local integer 
    631       REAL(wp) ::   zpos, zneg, zbt, za, zb, zc, zbig, zrtrn, z2dtt   ! local scalars 
     629      REAL(wp) ::   zpos, zneg, zbt, za, zb, zc, zbig, zrtrn    ! local scalars 
    632630      REAL(wp) ::   zau, zbu, zcu, zav, zbv, zcv, zup, zdo            !   -      - 
    633631      REAL(wp), POINTER, DIMENSION(:,:,:) :: zbetup, zbetdo, zbup, zbdo 
     
    652650      DO jk = 1, jpkm1 
    653651         ikm1 = MAX(jk-1,1) 
    654          z2dtt = p2dt(jk) 
    655652         DO jj = 2, jpjm1 
    656653            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    679676 
    680677               ! up & down beta terms 
    681                zbt = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) / z2dtt 
     678               zbt = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) / p2dt 
    682679               zbetup(ji,jj,jk) = ( zup            - paft(ji,jj,jk) ) / ( zpos + zrtrn ) * zbt 
    683680               zbetdo(ji,jj,jk) = ( paft(ji,jj,jk) - zdo            ) / ( zneg + zrtrn ) * zbt 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_mus.F90

    r5930 r6051  
    7373      INTEGER                              , INTENT(in   ) ::   kjpt            ! number of tracers 
    7474      LOGICAL                              , INTENT(in   ) ::   ld_msc_ups      ! use upstream scheme within muscl 
    75       REAL(wp), DIMENSION(        jpk     ), INTENT(in   ) ::   p2dt            ! vertical profile of tracer time-step 
     75      REAL(wp)                             , INTENT(in   ) ::   p2dt            ! tracer time-step 
    7676      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(in   ) ::   pun, pvn, pwn   ! 3 ocean velocity components 
    7777      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb             ! before tracer field 
     
    8282      REAL(wp) ::   zu, z0u, zzwx, zw    ! local scalars 
    8383      REAL(wp) ::   zv, z0v, zzwy, z0w   !   -      - 
    84       REAL(wp) ::   zdt, zalpha          !   -      - 
     84      REAL(wp) ::   zalpha          !   -      - 
    8585      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zslpx, zslpy   ! 3D workspace 
    8686      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwx  , zwy     ! -      -  
     
    163163         !                                             !-- MUSCL horizontal advective fluxes 
    164164         DO jk = 1, jpkm1                                     ! interior values 
    165             zdt  = p2dt(jk) 
    166165            DO jj = 2, jpjm1 
    167166               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    169168                  z0u = SIGN( 0.5, pun(ji,jj,jk) ) 
    170169                  zalpha = 0.5 - z0u 
    171                   zu  = z0u - 0.5 * pun(ji,jj,jk) * zdt / ( e1e2u(ji,jj) * fse3u(ji,jj,jk) ) 
     170                  zu  = z0u - 0.5 * pun(ji,jj,jk) * p2dt / ( e1e2u(ji,jj) * fse3u(ji,jj,jk) ) 
    172171                  zzwx = ptb(ji+1,jj,jk,jn) + xind(ji,jj,jk) * zu * zslpx(ji+1,jj,jk) 
    173172                  zzwy = ptb(ji  ,jj,jk,jn) + xind(ji,jj,jk) * zu * zslpx(ji  ,jj,jk) 
     
    176175                  z0v = SIGN( 0.5, pvn(ji,jj,jk) ) 
    177176                  zalpha = 0.5 - z0v 
    178                   zv  = z0v - 0.5 * pvn(ji,jj,jk) * zdt / ( e1e2v(ji,jj) * fse3v(ji,jj,jk) ) 
     177                  zv  = z0v - 0.5 * pvn(ji,jj,jk) * p2dt / ( e1e2v(ji,jj) * fse3v(ji,jj,jk) ) 
    179178                  zzwx = ptb(ji,jj+1,jk,jn) + xind(ji,jj,jk) * zv * zslpy(ji,jj+1,jk) 
    180179                  zzwy = ptb(ji,jj  ,jk,jn) + xind(ji,jj,jk) * zv * zslpy(ji,jj  ,jk) 
     
    237236         !                                !-- vertical advective flux 
    238237         DO jk = 1, jpkm1                       ! interior values 
    239             zdt  = p2dt(jk) 
    240238            DO jj = 2, jpjm1       
    241239               DO ji = fs_2, fs_jpim1   ! vector opt. 
    242240                  z0w = SIGN( 0.5, pwn(ji,jj,jk+1) ) 
    243241                  zalpha = 0.5 + z0w 
    244                   zw  = z0w - 0.5 * pwn(ji,jj,jk+1) * zdt  / ( e1e2t(ji,jj) * fse3w(ji,jj,jk+1) ) 
     242                  zw  = z0w - 0.5 * pwn(ji,jj,jk+1) * p2dt  / ( e1e2t(ji,jj) * fse3w(ji,jj,jk+1) ) 
    245243                  zzwx = ptb(ji,jj,jk+1,jn) + xind(ji,jj,jk) * zw * zslpx(ji,jj,jk+1) 
    246244                  zzwy = ptb(ji,jj,jk  ,jn) + xind(ji,jj,jk) * zw * zslpx(ji,jj,jk  ) 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_qck.F90

    r5930 r6051  
    8787      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype          ! =TRA or TRC (tracer indicator) 
    8888      INTEGER                              , INTENT(in   ) ::   kjpt            ! number of tracers 
    89       REAL(wp), DIMENSION(        jpk     ), INTENT(in   ) ::   p2dt            ! vertical profile of tracer time-step 
     89      REAL(wp)                             , INTENT(in   ) ::   p2dt            ! tracer time-step 
    9090      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(in   ) ::   pun, pvn, pwn   ! 3 ocean velocity components 
    9191      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb, ptn        ! before and now tracer fields 
     
    125125      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype     ! =TRA or TRC (tracer indicator) 
    126126      INTEGER                              , INTENT(in   ) ::   kjpt       ! number of tracers 
    127       REAL(wp), DIMENSION(        jpk     ), INTENT(in   ) ::   p2dt       ! vertical profile of tracer time-step 
     127      REAL(wp)                             , INTENT(in   ) ::   p2dt       ! tracer time-step 
    128128      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(in   ) ::   pun        ! i-velocity components 
    129129      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb, ptn   ! before and now tracer fields 
     
    131131      !! 
    132132      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    133       REAL(wp) ::   ztra, zbtr, zdir, zdx, zdt, zmsk   ! local scalars 
     133      REAL(wp) ::   ztra, zbtr, zdir, zdx, zmsk   ! local scalars 
    134134      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zwx, zfu, zfc, zfd 
    135135      !---------------------------------------------------------------------- 
     
    166166         ! 
    167167         DO jk = 1, jpkm1   
    168             zdt =  p2dt(jk) 
    169168            DO jj = 2, jpjm1 
    170169               DO ji = fs_2, fs_jpim1   ! vector opt.    
    171170                  zdir = 0.5 + SIGN( 0.5, pun(ji,jj,jk) )   ! if pun > 0 : zdir = 1 otherwise zdir = 0  
    172171                  zdx = ( zdir * e1t(ji,jj) + ( 1. - zdir ) * e1t(ji+1,jj) ) * e2u(ji,jj) * fse3u(ji,jj,jk) 
    173                   zwx(ji,jj,jk)  = ABS( pun(ji,jj,jk) ) * zdt / zdx    ! (0<zc_cfl<1 : Courant number on x-direction) 
     172                  zwx(ji,jj,jk)  = ABS( pun(ji,jj,jk) ) * p2dt / zdx    ! (0<zc_cfl<1 : Courant number on x-direction) 
    174173                  zfc(ji,jj,jk)  = zdir * ptb(ji  ,jj,jk,jn) + ( 1. - zdir ) * ptb(ji+1,jj,jk,jn)  ! FC in the x-direction for T 
    175174                  zfd(ji,jj,jk)  = zdir * ptb(ji+1,jj,jk,jn) + ( 1. - zdir ) * ptb(ji  ,jj,jk,jn)  ! FD in the x-direction for T 
     
    242241      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype     ! =TRA or TRC (tracer indicator) 
    243242      INTEGER                              , INTENT(in   ) ::   kjpt       ! number of tracers 
    244       REAL(wp), DIMENSION(        jpk     ), INTENT(in   ) ::   p2dt       ! vertical profile of tracer time-step 
     243      REAL(wp)                             , INTENT(in   ) ::   p2dt       ! tracer time-step 
    245244      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(in   ) ::   pvn        ! j-velocity components 
    246245      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb, ptn   ! before and now tracer fields 
     
    248247      !! 
    249248      INTEGER  :: ji, jj, jk, jn   ! dummy loop indices 
    250       REAL(wp) :: ztra, zbtr, zdir, zdx, zdt, zmsk   ! local scalars 
     249      REAL(wp) :: ztra, zbtr, zdir, zdx, zmsk   ! local scalars 
    251250      REAL(wp), POINTER, DIMENSION(:,:,:) :: zwy, zfu, zfc, zfd 
    252251      !---------------------------------------------------------------------- 
     
    289288         ! 
    290289         DO jk = 1, jpkm1   
    291             zdt =  p2dt(jk) 
    292290            DO jj = 2, jpjm1 
    293291               DO ji = fs_2, fs_jpim1   ! vector opt.    
    294292                  zdir = 0.5 + SIGN( 0.5, pvn(ji,jj,jk) )   ! if pun > 0 : zdir = 1 otherwise zdir = 0  
    295293                  zdx = ( zdir * e2t(ji,jj) + ( 1. - zdir ) * e2t(ji,jj+1) ) * e1v(ji,jj) * fse3v(ji,jj,jk) 
    296                   zwy(ji,jj,jk)  = ABS( pvn(ji,jj,jk) ) * zdt / zdx    ! (0<zc_cfl<1 : Courant number on x-direction) 
     294                  zwy(ji,jj,jk)  = ABS( pvn(ji,jj,jk) ) * p2dt / zdx    ! (0<zc_cfl<1 : Courant number on x-direction) 
    297295                  zfc(ji,jj,jk)  = zdir * ptb(ji,jj  ,jk,jn) + ( 1. - zdir ) * ptb(ji,jj+1,jk,jn)  ! FC in the x-direction for T 
    298296                  zfd(ji,jj,jk)  = zdir * ptb(ji,jj+1,jk,jn) + ( 1. - zdir ) * ptb(ji,jj  ,jk,jn)  ! FD in the x-direction for T 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_ubs.F90

    r5930 r6051  
    8585      INTEGER                              , INTENT(in   ) ::   kjpt            ! number of tracers 
    8686      INTEGER                              , INTENT(in   ) ::   kn_ubs_v        ! number of tracers 
    87       REAL(wp), DIMENSION(        jpk     ), INTENT(in   ) ::   p2dt            ! vertical profile of tracer time-step 
     87      REAL(wp)                             , INTENT(in   ) ::   p2dt            ! tracer time-step 
    8888      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(in   ) ::   pun, pvn, pwn   ! 3 ocean transport components 
    8989      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb, ptn        ! before and now tracer fields 
     
    9191      ! 
    9292      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    93       REAL(wp) ::   ztra, zbtr, zcoef, z2dtt                       ! local scalars 
     93      REAL(wp) ::   ztra, zbtr, zcoef                       ! local scalars 
    9494      REAL(wp) ::   zfp_ui, zfm_ui, zcenut, ztak, zfp_wk, zfm_wk   !   -      - 
    9595      REAL(wp) ::   zfp_vj, zfm_vj, zcenvt, zeeu, zeev, z_hdivn    !   -      - 
     
    212212            ! 
    213213            DO jk = 1, jpkm1           !* trend and after field with monotonic scheme 
    214                z2dtt = p2dt(jk) 
    215214               DO jj = 2, jpjm1 
    216215                  DO ji = fs_2, fs_jpim1   ! vector opt. 
    217216                     ztak = - ( ztw(ji,jj,jk) - ztw(ji,jj,jk+1) ) / ( e1e2t(ji,jj) * fse3t_n(ji,jj,jk) ) 
    218217                     pta(ji,jj,jk,jn) =   pta(ji,jj,jk,jn) +  ztak  
    219                      zti(ji,jj,jk)    = ( ptb(ji,jj,jk,jn) + z2dtt * ( ztak + zltu(ji,jj,jk) ) ) * tmask(ji,jj,jk) 
     218                     zti(ji,jj,jk)    = ( ptb(ji,jj,jk,jn) + p2dt * ( ztak + zltu(ji,jj,jk) ) ) * tmask(ji,jj,jk) 
    220219                  END DO 
    221220               END DO 
     
    293292      !!       in-space based differencing for fluid 
    294293      !!---------------------------------------------------------------------- 
    295       REAL(wp), INTENT(in   ), DIMENSION(jpk)          ::   p2dt   ! vertical profile of tracer time-step 
     294      REAL(wp), INTENT(in   )                          ::   p2dt   ! tracer time-step 
    296295      REAL(wp),                DIMENSION (jpi,jpj,jpk) ::   pbef   ! before field 
    297296      REAL(wp), INTENT(inout), DIMENSION (jpi,jpj,jpk) ::   paft   ! after field 
     
    300299      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    301300      INTEGER  ::   ikm1         ! local integer 
    302       REAL(wp) ::   zpos, zneg, zbt, za, zb, zc, zbig, zrtrn, z2dtt   ! local scalars 
     301      REAL(wp) ::   zpos, zneg, zbt, za, zb, zc, zbig, zrtrn   ! local scalars 
    303302      REAL(wp), POINTER, DIMENSION(:,:,:) :: zbetup, zbetdo 
    304303      !!---------------------------------------------------------------------- 
     
    349348      ! --------------------------------------------------- 
    350349      DO jk = 1, jpkm1 
    351          z2dtt = p2dt(jk) 
    352350         DO jj = 2, jpjm1 
    353351            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    356354               zneg = MAX( 0., pcc(ji  ,jj  ,jk  ) ) - MIN( 0., pcc(ji  ,jj  ,jk+1) ) 
    357355               ! up & down beta terms 
    358                zbt = e1e2t(ji,jj) * fse3t(ji,jj,jk) / z2dtt 
     356               zbt = e1e2t(ji,jj) * fse3t(ji,jj,jk) / p2dt 
    359357               zbetup(ji,jj,jk) = ( zbetup(ji,jj,jk) - paft(ji,jj,jk) ) / (zpos+zrtrn) * zbt 
    360358               zbetdo(ji,jj,jk) = ( paft(ji,jj,jk) - zbetdo(ji,jj,jk) ) / (zneg+zrtrn) * zbt 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90

    r5836 r6051  
    129129      ! 
    130130      !                                               ! set time step size (Euler/Leapfrog) 
    131       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   z2dt =     rdttra(1)      ! at nit000   (Euler) 
    132       ELSE                                        ;   z2dt = 2.* rdttra(1)      !             (Leapfrog) 
     131      IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   z2dt =     rdt      ! at nit000   (Euler) 
     132      ELSE                                        ;   z2dt = 2.* rdt      !             (Leapfrog) 
    133133      ENDIF 
    134134      z1_2dt = 1._wp / z2dt 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_triad.F90

    r5836 r6051  
    115115      ! 
    116116      !                                               ! set time step size (Euler/Leapfrog) 
    117       IF( neuler == 0 .AND. kt == kit000 ) THEN   ;   z2dt =     rdttra(1)      ! at nit000   (Euler) 
    118       ELSE                                        ;   z2dt = 2.* rdttra(1)      !             (Leapfrog) 
     117      IF( neuler == 0 .AND. kt == kit000 ) THEN   ;   z2dt =     rdt      ! at nit000   (Euler) 
     118      ELSE                                        ;   z2dt = 2.* rdt      !             (Leapfrog) 
    119119      ENDIF 
    120120      z1_2dt = 1._wp / z2dt 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90

    r5930 r6051  
    119119  
    120120      ! set time step size (Euler/Leapfrog) 
    121       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   r2dtra(:) =     rdttra(:)      ! at nit000             (Euler) 
    122       ELSEIF( kt <= nit000 + 1 )           THEN   ;   r2dtra(:) = 2._wp* rdttra(:)      ! at nit000 or nit000+1 (Leapfrog) 
     121      IF( neuler == 0 .AND. kt == nit000 ) THEN   ;   r2dt =     rdt      ! at nit000             (Euler) 
     122      ELSEIF( kt <= nit000 + 1 )           THEN   ;   r2dt = 2._wp* rdt   ! at nit000 or nit000+1 (Leapfrog) 
    123123      ENDIF 
    124124 
     
    142142      ELSE                                            ! Leap-Frog + Asselin filter time stepping 
    143143         ! 
    144          IF( lk_vvl )  THEN   ;   CALL tra_nxt_vvl( kt, nit000, rdttra, 'TRA', tsb, tsn, tsa,   & 
     144         IF( lk_vvl )  THEN   ;   CALL tra_nxt_vvl( kt, nit000, rdt, 'TRA', tsb, tsn, tsa,   & 
    145145           &                                                              sbc_tsc, sbc_tsc_b, jpts )  ! variable volume level (vvl)  
    146          ELSE                 ;   CALL tra_nxt_fix( kt, nit000,         'TRA', tsb, tsn, tsa, jpts )  ! fixed    volume level  
     146         ELSE                 ;   CALL tra_nxt_fix( kt, nit000,      'TRA', tsb, tsn, tsa, jpts )  ! fixed    volume level  
    147147         ENDIF 
    148148      ENDIF      
     
    151151      IF( l_trdtra ) THEN      ! trend of the Asselin filter (tb filtered - tb)/dt      
    152152         DO jk = 1, jpkm1 
    153             zfact = 1._wp / r2dtra(jk)              
     153            zfact = 1._wp / r2dt              
    154154            ztrdt(:,:,jk) = ( tsb(:,:,jk,jp_tem) - ztrdt(:,:,jk) ) * zfact 
    155155            ztrds(:,:,jk) = ( tsb(:,:,jk,jp_sal) - ztrds(:,:,jk) ) * zfact 
     
    237237      INTEGER         , INTENT(in   )                               ::  kt       ! ocean time-step index 
    238238      INTEGER         , INTENT(in   )                               ::  kit000   ! first time step index 
    239       REAL(wp)        , INTENT(in   ), DIMENSION(jpk)               ::  p2dt     ! time-step 
     239      REAL(wp)        , INTENT(in   )                               ::  p2dt     ! time-step 
    240240      CHARACTER(len=3), INTENT(in   )                               ::  cdtype   ! =TRA or TRC (tracer indicator) 
    241241      INTEGER         , INTENT(in   )                               ::  kjpt     ! number of tracers 
     
    275275      DO jn = 1, kjpt       
    276276         DO jk = 1, jpkm1 
    277             zfact1 = atfp * p2dt(jk) 
     277            zfact1 = atfp * p2dt 
    278278            zfact2 = zfact1 / rau0 
    279279            DO jj = 1, jpj 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf.F90

    r5930 r6051  
    6868      ! 
    6969      IF( neuler == 0 .AND. kt == nit000 ) THEN     ! at nit000 
    70          r2dtra(:) =  rdttra(:)                          ! = rdtra (restarting with Euler time stepping) 
     70         r2dt =  rdt                          ! = rdt (restarting with Euler time stepping) 
    7171      ELSEIF( kt <= nit000 + 1) THEN                ! at nit000 or nit000+1 
    72          r2dtra(:) = 2. * rdttra(:)                      ! = 2 rdttra (leapfrog) 
     72         r2dt = 2. * rdt                      ! = 2 rdt (leapfrog) 
    7373      ENDIF 
    7474 
     
    8080 
    8181      SELECT CASE ( nzdf )                       ! compute lateral mixing trend and add it to the general trend 
    82       CASE ( 0 )    ;    CALL tra_zdf_exp( kt, nit000, 'TRA', r2dtra, nn_zdfexp, tsb, tsa, jpts )  !   explicit scheme  
    83       CASE ( 1 )    ;    CALL tra_zdf_imp( kt, nit000, 'TRA', r2dtra,            tsb, tsa, jpts )  !   implicit scheme  
     82      CASE ( 0 )    ;    CALL tra_zdf_exp( kt, nit000, 'TRA', r2dt, nn_zdfexp, tsb, tsa, jpts )  !   explicit scheme  
     83      CASE ( 1 )    ;    CALL tra_zdf_imp( kt, nit000, 'TRA', r2dt,            tsb, tsa, jpts )  !   implicit scheme  
    8484      END SELECT 
    8585!!gm WHY here !   and I don't like that ! 
     
    9292      IF( l_trdtra )   THEN                      ! save the vertical diffusive trends for further diagnostics 
    9393         DO jk = 1, jpkm1 
    94             ztrdt(:,:,jk) = ( ( tsa(:,:,jk,jp_tem) - tsb(:,:,jk,jp_tem) ) / r2dtra(jk) ) - ztrdt(:,:,jk) 
    95             ztrds(:,:,jk) = ( ( tsa(:,:,jk,jp_sal) - tsb(:,:,jk,jp_sal) ) / r2dtra(jk) ) - ztrds(:,:,jk) 
     94            ztrdt(:,:,jk) = ( ( tsa(:,:,jk,jp_tem) - tsb(:,:,jk,jp_tem) ) / r2dt ) - ztrdt(:,:,jk) 
     95            ztrds(:,:,jk) = ( ( tsa(:,:,jk,jp_sal) - tsb(:,:,jk,jp_sal) ) / r2dt ) - ztrds(:,:,jk) 
    9696         END DO 
    9797!!gm this should be moved in trdtra.F90 and done on all trends 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_exp.F90

    r3294 r6051  
    8181      INTEGER                              , INTENT(in   ) ::   kjpt        ! number of tracers 
    8282      INTEGER                              , INTENT(in   ) ::   kn_zdfexp   ! number of sub-time step 
    83       REAL(wp), DIMENSION(        jpk     ), INTENT(in   ) ::   p2dt        ! vertical profile of tracer time-step 
     83      REAL(wp)                             , INTENT(in   ) ::   p2dt        ! tracer time-step 
    8484      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb         ! before and now tracer fields 
    8585      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pta         ! tracer trend  
     
    136136                  DO ji = fs_2, fs_jpim1   ! vector opt. 
    137137                     ze3tr = zlavmr / fse3t_n(ji,jj,jk) 
    138                      zwx(ji,jj,jk) = zwx(ji,jj,jk) + p2dt(jk) * ( zwy(ji,jj,jk) - zwy(ji,jj,jk+1) ) * ze3tr 
     138                     zwx(ji,jj,jk) = zwx(ji,jj,jk) + p2dt * ( zwy(ji,jj,jk) - zwy(ji,jj,jk+1) ) * ze3tr 
    139139                  END DO 
    140140               END DO 
     
    150150                  DO ji = fs_2, fs_jpim1   ! vector opt. 
    151151                     ze3tb = fse3t_b(ji,jj,jk) / fse3t(ji,jj,jk)                          ! before e3t 
    152                      ztra  = zwx(ji,jj,jk) - ptb(ji,jj,jk,jn) + p2dt(jk) * pta(ji,jj,jk,jn)       ! total trends * 2*rdt  
     152                     ztra  = zwx(ji,jj,jk) - ptb(ji,jj,jk,jn) + p2dt * pta(ji,jj,jk,jn)       ! total trends * 2*rdt 
    153153                     pta(ji,jj,jk,jn) = ( ze3tb * ptb(ji,jj,jk,jn) + ztra ) * tmask(ji,jj,jk) 
    154154                  END DO 
     
    159159               DO jj = 2, jpjm1  
    160160                  DO ji = fs_2, fs_jpim1   ! vector opt. 
    161                      pta(ji,jj,jk,jn) = ( zwx(ji,jj,jk) + p2dt(jk) * pta(ji,jj,jk,jn) ) * tmask(ji,jj,jk) 
     161                     pta(ji,jj,jk,jn) = ( zwx(ji,jj,jk) + p2dt * pta(ji,jj,jk,jn) ) * tmask(ji,jj,jk) 
    162162                  END DO 
    163163               END DO 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp.F90

    r5836 r6051  
    7878      CHARACTER(len=3)                     , INTENT(in   ) ::   cdtype   ! =TRA or TRC (tracer indicator) 
    7979      INTEGER                              , INTENT(in   ) ::   kjpt     ! number of tracers 
    80       REAL(wp), DIMENSION(        jpk     ), INTENT(in   ) ::   p2dt     ! vertical profile of tracer time-step 
     80      REAL(wp)                             , INTENT(in   ) ::   p2dt     ! tracer time-step 
    8181      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   ) ::   ptb      ! before and now tracer fields 
    8282      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) ::   pta      ! tracer trend  
     
    144144                     ze3ta =  ( 1. - r_vvl ) +        r_vvl   * fse3t_a(ji,jj,jk)   ! after scale factor at T-point 
    145145                     ze3tn =         r_vvl   + ( 1. - r_vvl ) * fse3t_n(ji,jj,jk)   ! now   scale factor at T-point 
    146                      zwi(ji,jj,jk) = - p2dt(jk) * zwt(ji,jj,jk  ) / ( ze3tn * fse3w(ji,jj,jk  ) ) 
    147                      zws(ji,jj,jk) = - p2dt(jk) * zwt(ji,jj,jk+1) / ( ze3tn * fse3w(ji,jj,jk+1) ) 
     146                     zwi(ji,jj,jk) = - p2dt * zwt(ji,jj,jk  ) / ( ze3tn * fse3w(ji,jj,jk  ) ) 
     147                     zws(ji,jj,jk) = - p2dt * zwt(ji,jj,jk+1) / ( ze3tn * fse3w(ji,jj,jk+1) ) 
    148148                     zwd(ji,jj,jk) = ze3ta - zwi(ji,jj,jk) - zws(ji,jj,jk) 
    149149                 END DO 
     
    192192               ze3tb = ( 1. - r_vvl ) + r_vvl * fse3t_b(ji,jj,1) 
    193193               ze3tn = ( 1. - r_vvl ) + r_vvl * fse3t(ji,jj,1) 
    194                pta(ji,jj,1,jn) = ze3tb * ptb(ji,jj,1,jn) + p2dt(1) * ze3tn * pta(ji,jj,1,jn) 
     194               pta(ji,jj,1,jn) = ze3tb * ptb(ji,jj,1,jn) + p2dt * ze3tn * pta(ji,jj,1,jn) 
    195195            END DO 
    196196         END DO 
     
    200200                  ze3tb = ( 1. - r_vvl ) + r_vvl * fse3t_b(ji,jj,jk) 
    201201                  ze3tn = ( 1. - r_vvl ) + r_vvl * fse3t  (ji,jj,jk) 
    202                   zrhs = ze3tb * ptb(ji,jj,jk,jn) + p2dt(jk) * ze3tn * pta(ji,jj,jk,jn)   ! zrhs=right hand side  
     202                  zrhs = ze3tb * ptb(ji,jj,jk,jn) + p2dt * ze3tn * pta(ji,jj,jk,jn)   ! zrhs=right hand side  
    203203                  pta(ji,jj,jk,jn) = zrhs - zwi(ji,jj,jk) / zwt(ji,jj,jk-1) * pta(ji,jj,jk-1,jn) 
    204204               END DO 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl.F90

    r5836 r6051  
    3030   USE zdfddm          ! ocean vertical physics: double diffusion 
    3131   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    32    USE diadimg         ! dimg direct access file format output 
    3332   USE trdmxl_rst      ! restart for diagnosing the ML trends 
    3433   ! 
     
    298297      !!  
    299298      !! ** Purpose :  Compute and cumulate the mixed layer trends over an analysis 
    300       !!               period, and write NetCDF (or dimg) outputs. 
     299      !!               period, and write NetCDF outputs. 
    301300      !! 
    302301      !! ** Method/usage : 
     
    349348      REAL(wp), POINTER, DIMENSION(:,:  ) ::  ztmltot2, zsmltot2, ztmlres2, zsmlres2, ztmlatf2, zsmlatf2, ztmltrdm2, zsmltrdm2   
    350349      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztmltrd2, zsmltrd2   ! only needed for mean diagnostics 
    351 #if defined key_dimgout 
    352       INTEGER ::  iyear,imon,iday 
    353       CHARACTER(LEN=80) :: cltext, clmode 
    354 #endif 
    355350      !!---------------------------------------------------------------------- 
    356351   
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRD/trdmxl_rst.F90

    r5341 r6051  
    6262            WRITE(numout,*) 
    6363            SELECT CASE ( jprstlib ) 
    64             CASE ( jprstdimg )   ;   WRITE(numout,*) '             open ocean restart_mxl binary file: '//clname 
    6564            CASE DEFAULT         ;   WRITE(numout,*) '             open ocean restart_mxl NetCDF file: '//clname 
    6665            END SELECT 
     
    147146      clpath = TRIM(cn_ocerst_indir) 
    148147      IF( clpath(LEN_TRIM(clpath):) /= '/' ) clpath = TRIM(clpath) // '/' 
    149  
    150       IF ( jprstlib == jprstdimg ) THEN 
    151          ! eventually read netcdf file (monobloc)  for restarting on different number of processors 
    152          ! if {cn_trdrst_in}.nc exists, then set jlibalt to jpnf90 
    153          INQUIRE( FILE = TRIM(clpath)//TRIM(cn_trdrst_in)//'.nc', EXIST = llok ) 
    154          IF ( llok ) THEN   ;   jlibalt = jpnf90    
    155          ELSE               ;   jlibalt = jprstlib    
    156          ENDIF 
    157       ENDIF 
    158  
    159148      CALL iom_open( TRIM(clpath)//TRIM(cn_trdrst_in), inum, kiolib = jlibalt )  
    160149 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90

    r5836 r6051  
    3737 
    3838   PUBLIC   trd_tra   ! called by all tra_... modules 
    39  
    40    REAL(wp) ::   r2dt   ! time-step, = 2 rdttra except at nit000 (=rdttra) if neuler=0 
    4139 
    4240   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   trdtx, trdty, trdt   ! use to store the temperature trends 
     
    229227      !!---------------------------------------------------------------------- 
    230228 
    231       IF( neuler == 0 .AND. kt == nit000    ) THEN   ;   r2dt =      rdt      ! = rdtra (restart with Euler time stepping) 
    232       ELSEIF(               kt <= nit000 + 1) THEN   ;   r2dt = 2. * rdt      ! = 2 rdttra (leapfrog) 
     229      IF( neuler == 0 .AND. kt == nit000    ) THEN   ;   r2dt =      rdt      ! = rdt (restart with Euler time stepping) 
     230      ELSEIF(               kt <= nit000 + 1) THEN   ;   r2dt = 2. * rdt      ! = 2 rdt (leapfrog) 
    233231      ENDIF 
    234232 
  • branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRD/trdvor.F90

    r5836 r6051  
    8585      !!  
    8686      !! ** Purpose :  computation of cumulated trends over analysis period 
    87       !!               and make outputs (NetCDF or DIMG format) 
     87      !!               and make outputs (NetCDF format) 
    8888      !!---------------------------------------------------------------------- 
    8989      REAL(wp), DIMENSION(:,:,:), INTENT(inout) ::   putrd, pvtrd   ! U and V trends  
     
    318318      !!  
    319319      !! ** Purpose :  computation of cumulated trends over analysis period 
    320       !!               and make outputs (NetCDF or DIMG format) 
     320      !!               and make outputs (NetCDF format) 
    321321      !!---------------------------------------------------------------------- 
    322322      INTEGER                   , INTENT(in   ) ::   kt             ! time step 
Note: See TracChangeset for help on using the changeset viewer.