Changeset 7069


Ignore:
Timestamp:
2016-10-21T19:24:28+02:00 (4 years ago)
Author:
clem
Message:

agrif+lim3 update + trunk update

Location:
branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/NST_SRC/agrif_lim3_interp.F90

    r7060 r7069  
    22   !!===================================================================================== 
    33   !!                       ***  MODULE agrif_lim3_interp *** 
    4    !! Nesting module :  interp surface ocean boundary condition over ice from a parent grid 
     4   !! Nesting module :  interp surface ice boundary condition from a parent grid 
    55   !! Sea-Ice model  :  LIM 3.6 Sea ice model time-stepping 
    66   !!===================================================================================== 
  • branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/OPA_SRC/DOM/domhgr.F90

    r6796 r7069  
    451451         e1v(:,:) =  ze1     ;      e2v(:,:) = ze1 
    452452         e1f(:,:) =  ze1     ;      e2f(:,:) = ze1 
     453 
     454      CASE ( 6 )                   ! clem: f-plane with irregular grid-spacing 
     455 
     456         IF(lwp) WRITE(numout,*) 
     457         IF(lwp) WRITE(numout,*) '          f-plane with irregular grid-spacing (+- 10%)' 
     458         IF(lwp) WRITE(numout,*) '          the max is given by ppe1_m and ppe2_m'  
     459 
     460         ! Position coordinates (in kilometers) 
     461         !                          ========== 
     462         glam0 = 0._wp 
     463         gphi0 = 0._wp 
     464          
     465         DO jj = 1, jpj 
     466            DO ji = 1, jpi 
     467               zti = FLOAT( ji - 1 + nimpp - 1 )         ;   ztj = FLOAT( jj - 1 + njmpp - 1 ) 
     468               zui = FLOAT( ji - 1 + nimpp - 1 ) + 0.5   ;   zuj = FLOAT( jj - 1 + njmpp - 1 ) 
     469               zvi = FLOAT( ji - 1 + nimpp - 1 )         ;   zvj = FLOAT( jj - 1 + njmpp - 1 ) + 0.5 
     470               zfi = FLOAT( ji - 1 + nimpp - 1 ) + 0.5   ;   zfj = FLOAT( jj - 1 + njmpp - 1 ) + 0.5 
     471 
     472               glamt(ji,jj) = glam0 + ppe1_m * 1.e-5 * zti 
     473               glamu(ji,jj) = glam0 + ppe1_m * 1.e-5 * zui 
     474               glamv(ji,jj) = glam0 + ppe1_m * 1.e-5 * zvi 
     475               glamf(ji,jj) = glam0 + ppe1_m * 1.e-5 * zfi 
     476    
     477               gphit(ji,jj) = gphi0 + ppe2_m * 1.e-5 * ztj 
     478               gphiu(ji,jj) = gphi0 + ppe2_m * 1.e-5 * zuj 
     479               gphiv(ji,jj) = gphi0 + ppe2_m * 1.e-5 * zvj 
     480               gphif(ji,jj) = gphi0 + ppe2_m * 1.e-5 * zfj 
     481            END DO 
     482         END DO 
     483          
     484         ! Horizontal scale factors (in meters) 
     485         !                              ====== 
     486         DO jj = 1, jpj 
     487            DO ji = 1, jpi 
     488               e1t(ji,jj) = ppe1_m * EXP(-0.8/REAL(jpiglo**2)*(mi0(ji)-REAL(jpiglo+1)*0.5)**2) 
     489               e2t(ji,jj) = ppe2_m * EXP(-0.8/REAL(jpjglo**2)*(mj0(jj)-REAL(jpjglo+1)*0.5)**2) 
     490            END DO 
     491         END DO 
     492         e1u(:,:) = e1t(:,:)      ;      e2u(:,:) = e2t(:,:) 
     493         e1v(:,:) = e1t(:,:)      ;      e2v(:,:) = e2t(:,:) 
     494         e1f(:,:) = e1t(:,:)      ;      e2f(:,:) = e2t(:,:) 
    453495 
    454496      CASE DEFAULT 
  • branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90

    r6861 r7069  
    135135      ! Build the vertical coordinate system 
    136136      ! ------------------------------------ 
     137#if defined key_sas2D 
     138      WRITE(numout,*) ' domzgr: we use SAS2D (i.e. no ocean) with jpk=',jpk 
     139      mbathy(:,:) = 1   ;   bathy(:,:) = rn_hmin 
     140 
     141      gdept_0 (:,:,:) = rn_hmin 
     142      gdepw_0 (:,:,:) = rn_hmin   ;   gdep3w_0(:,:,:) = rn_hmin 
     143      gdept_1d(:)     = rn_hmin   ;   gdepw_1d(:)     = rn_hmin 
     144 
     145      e3t_0 (:,:,:) = rn_hmin 
     146      e3u_0 (:,:,:) = rn_hmin   ;   e3v_0 (:,:,:) = rn_hmin 
     147      e3f_0 (:,:,:) = rn_hmin   ;   e3w_0 (:,:,:) = rn_hmin 
     148      e3uw_0(:,:,:) = rn_hmin   ;   e3vw_0(:,:,:) = rn_hmin 
     149      e3t_1d(:)     = rn_hmin   ;   e3w_1d(:)     = rn_hmin 
     150 
     151      mikt(:,:) = 1   ;   mikv(:,:) = 1 
     152      miku(:,:) = 1   ;   mikf(:,:) = 1 
     153#else 
    137154                          CALL zgr_z            ! Reference z-coordinate system (always called) 
    138155                          CALL zgr_bat          ! Bathymetry fields (levels and meters) 
     
    154171      END IF 
    155172      ! 
     173#endif 
     174       
    156175      IF( nprint == 1 .AND. lwp )   THEN 
    157176         WRITE(numout,*) ' MIN val mbathy ', MINVAL( mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) ) 
     
    174193      ! 
    175194   END SUBROUTINE dom_zgr 
    176  
    177195 
    178196   SUBROUTINE zgr_z 
  • branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r6315 r7069  
    102102#endif 
    103103      CHARACTER(len=10)   :: clname 
    104       INTEGER             :: ji 
     104      INTEGER             :: ji, jkmin 
    105105      ! 
    106106      REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: z_bnds 
     
    190190 
    191191      ! Add vertical grid bounds 
     192      jkmin = MIN(2,jpk)  ! in case jpk=1 (i.e. sas2D) 
    192193#if ! defined key_xios2 
    193194      z_bnds(:      ,1) = gdepw_1d(:) 
    194       z_bnds(1:jpkm1,2) = gdepw_1d(2:jpk) 
     195      z_bnds(1:jpkm1,2) = gdepw_1d(jkmin:jpk) 
    195196      z_bnds(jpk:   ,2) = gdepw_1d(jpk) + e3t_1d(jpk) 
    196197#else 
    197198      z_bnds(1      ,:) = gdepw_1d(:) 
    198       z_bnds(2,1:jpkm1) = gdepw_1d(2:jpk) 
     199      z_bnds(2,1:jpkm1) = gdepw_1d(jkmin:jpk) 
    199200      z_bnds(2,jpk:   ) = gdepw_1d(jpk) + e3t_1d(jpk) 
    200201#endif 
     
    205206 
    206207#if ! defined key_xios2 
    207       z_bnds(:    ,2) = gdept_1d(:) 
    208       z_bnds(2:jpk,1) = gdept_1d(1:jpkm1) 
    209       z_bnds(1    ,1) = gdept_1d(1) - e3w_1d(1) 
    210 #else 
    211       z_bnds(2,:    ) = gdept_1d(:) 
    212       z_bnds(1,2:jpk) = gdept_1d(1:jpkm1) 
    213       z_bnds(1,1    ) = gdept_1d(1) - e3w_1d(1) 
     208      z_bnds(:        ,2) = gdept_1d(:) 
     209      z_bnds(jkmin:jpk,1) = gdept_1d(1:jpkm1) 
     210      z_bnds(1        ,1) = gdept_1d(1) - e3w_1d(1) 
     211#else 
     212      z_bnds(2,:        ) = gdept_1d(:) 
     213      z_bnds(1,jkmin:jpk) = gdept_1d(1:jpkm1) 
     214      z_bnds(1,1        ) = gdept_1d(1) - e3w_1d(1) 
    214215#endif 
    215216      CALL iom_set_axis_attr( "depthw", bounds=z_bnds ) 
    216  
    217217 
    218218# if defined key_floats 
  • branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfric.F90

    r4624 r7069  
    162162                  &                               + avmv(ji,jj,jk) + avmv(ji,jj-1,jk)  )   & 
    163163                  &          + avtb(jk) * tmask(ji,jj,jk) 
    164                !                                            ! Add the background coefficient on eddy viscosity 
     164            END DO 
     165         END DO 
     166         DO jj = 2, jpjm1                                   ! Add the background coefficient on eddy viscosity 
     167            DO ji = 2, jpim1 
    165168               avmu(ji,jj,jk) = avmu(ji,jj,jk) + avmb(jk) * umask(ji,jj,jk) 
    166169               avmv(ji,jj,jk) = avmv(ji,jj,jk) + avmb(jk) * vmask(ji,jj,jk) 
  • branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/SAS_SRC/daymod.F90

    r5564 r7069  
    268268 
    269269      ! since we no longer call rst_opn, need to define nitrst here, used by ice restart routine 
    270       IF( kt == nit000 ) nitrst = nitend 
     270      IF( kt == nit000 )  THEN 
     271         nitrst = nitend 
     272         lrst_oce = .FALSE.  ! init restart ocean (done in rst_opn when not SAS) 
     273      ENDIF 
     274 
    271275      IF( MOD( kt - 1, nstock ) == 0 ) THEN 
    272276         ! we use kt - 1 and not kt - nit000 to keep the same periodicity from the beginning of the experiment 
  • branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/SAS_SRC/nemogcm.F90

    r7060 r7069  
    4949   USE step            ! NEMO time-stepping                 (stp     routine) 
    5050   USE lib_mpp         ! distributed memory computing 
    51 #if defined key_nosignedzero 
    5251   USE lib_fortran     ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 
    53 #endif 
    5452#if defined key_iomput 
    5553   USE xios 
     
    5856   USE sbcssm 
    5957   USE lbcnfd, ONLY: isendto, nsndto, nfsloop, nfeloop ! Setup of north fold exchanges 
     58   USE icbini          ! handle bergs, initialisation 
    6059   USE icbstp          ! handle bergs, calving, themodynamics and transport 
    61 #if defined key_bdy 
     60 
    6261   USE bdyini          ! open boundary cond. setting       (bdy_init routine). clem: mandatory for LIM3 
    63    USE bdydta          ! open boundary cond. setting   (bdy_dta_init routine). clem: mandatory for LIM3 
    64 #endif 
     62   USE bdydta          ! open boundary cond. setting   (bdy_dta_init routine)           - - 
    6563   USE bdy_par 
    66  
     64    
    6765   IMPLICIT NONE 
    6866   PRIVATE 
     
    9896      ! 
    9997#if defined key_agrif 
    100       CALL Agrif_Init_Grids()      ! AGRIF: set the meshes 
    101 #endif 
    102  
     98     CALL Agrif_Init_Grids()      ! AGRIF: set the meshes 
     99#endif 
     100       
    103101      !                            !-----------------------! 
    104102      CALL nemo_init               !==  Initialisations  ==! 
     
    113111      CALL Agrif_Declare_Var_lim2  !  "      "   "   "      "  LIM 
    114112# endif 
     113# if defined key_lim3 
     114      CALL Agrif_Declare_Var_lim3  !  "      "   "   "      "  LIM3 clem: useless? 
     115# endif 
    115116#endif 
    116117      ! check that all process are still there... If some process have an error, 
     
    124125      !                            !-----------------------! 
    125126      istp = nit000 
     127 
     128#if defined key_agrif 
     129          CALL Agrif_Regrid() 
     130#endif 
    126131         
    127132      DO WHILE ( istp <= nitend .AND. nstop == 0 ) 
    128133#if defined key_agrif 
    129          CALL Agrif_Step( stp )           ! AGRIF: time stepping 
     134         CALL stp                         ! AGRIF: time stepping 
    130135#else 
    131136         CALL stp( istp )                 ! standard time stepping 
     
    148153      ! 
    149154#if defined key_agrif 
    150       CALL Agrif_ParentGrid_To_ChildGrid() 
    151       IF( nn_timing == 1 )   CALL timing_finalize 
    152       CALL Agrif_ChildGrid_To_ParentGrid() 
     155      IF( .NOT. Agrif_Root() ) THEN 
     156         CALL Agrif_ParentGrid_To_ChildGrid() 
     157         IF( nn_timing == 1 )   CALL timing_finalize 
     158         CALL Agrif_ChildGrid_To_ParentGrid() 
     159      ENDIF 
    153160#endif 
    154161      IF( nn_timing == 1 )   CALL timing_finalize 
     
    287294         jpnij = jpni*jpnj 
    288295#endif 
    289       END IF 
     296      ENDIF 
    290297 
    291298      ! Calculate domain dimensions given calculated jpni and jpnj 
     
    301308#endif 
    302309      ENDIF 
    303          jpk = jpkdta                                             ! third dim 
     310#if defined key_sas2D 
     311         jpk = 1                                             ! third dim 
     312         jpkm1 = 1                                           !   "           " 
     313#else 
     314         jpk = jpkdta                                        ! third dim 
     315         jpkm1 = jpk-1                                       !   "           " 
     316#endif 
     317#if defined key_agrif 
     318         ! simple trick to use same vertical grid as parent 
     319         ! but different number of levels:  
     320         ! Save maximum number of levels in jpkdta, then define all vertical grids 
     321         ! with this number. 
     322         ! Suppress once vertical online interpolation is ok 
     323         IF(.NOT.Agrif_Root()) jpkdta = Agrif_Parent(jpkdta) 
     324#endif 
    304325         jpim1 = jpi-1                                            ! inner domain indices 
    305326         jpjm1 = jpj-1                                            !   "           " 
    306          jpkm1 = jpk-1                                            !   "           " 
    307327         jpij  = jpi*jpj                                          !  jpi x j 
    308328 
     
    330350      ENDIF 
    331351 
    332       ! Now we know the dimensions of the grid and numout has been set we can  
    333       ! allocate arrays 
     352      ! Now we know the dimensions of the grid and numout has been set we can allocate arrays 
    334353      CALL nemo_alloc() 
    335354 
     
    353372                            CALL dom_init   ! Domain 
    354373 
    355       IF( ln_nnogather )    CALL nemo_northcomms   ! Initialise the northfold neighbour lists (must be done after the masks are defined) 
    356  
    357       IF( ln_ctl        )   CALL prt_ctl_init   ! Print control 
     374     IF( ln_nnogather )     CALL nemo_northcomms   ! Initialise the northfold neighbour lists (must be done after the masks are defined) 
     375 
     376      IF( ln_ctl         CALL prt_ctl_init   ! Print control 
    358377                            CALL day_init   ! model calendar (using both namelist and restart infos) 
    359378 
    360379                            CALL sbc_init   ! Forcings : surface module  
    361                              
     380 
    362381      ! ==> clem: open boundaries init. is mandatory for LIM3 because ice BDY is not decoupled from   
    363382      !           the environment of ocean BDY. Therefore bdy is called in both OPA and SAS modules.  
     
    366385      IF( lk_bdy        )   CALL bdy_dta_init 
    367386      ! ==> 
     387                            CALL icb_init( rdt, nit000)   ! initialise icebergs instance 
    368388       
    369389      IF(lwp) WRITE(numout,*) 'Euler time step switch is ', neuler 
     
    514534      USE diawri    , ONLY: dia_wri_alloc 
    515535      USE dom_oce   , ONLY: dom_oce_alloc 
     536      USE oce  
    516537#if defined key_bdy    
    517538      USE bdy_oce   , ONLY: bdy_oce_alloc 
    518       USE oce         ! clem: mandatory for LIM3 because needed for bdy arrays 
    519 #else 
    520       USE oce       , ONLY : sshn, sshb, snwice_mass, snwice_mass_b, snwice_fmass 
    521 #endif 
    522       ! 
    523       INTEGER :: ierr,ierr1,ierr2,ierr3,ierr4,ierr5,ierr6,ierr7,ierr8 
    524       INTEGER :: jpm 
     539#endif 
     540      ! 
     541      INTEGER :: ierr 
    525542      !!---------------------------------------------------------------------- 
    526543      ! 
    527544      ierr =        dia_wri_alloc   () 
    528545      ierr = ierr + dom_oce_alloc   ()          ! ocean domain 
     546      ierr = ierr + oce_alloc       ()          ! (tsn...) needed for agrif and/or lim3 and bdy 
    529547#if defined key_bdy 
    530548      ierr = ierr + bdy_oce_alloc   ()          ! bdy masks (incl. initialization) 
    531       ierr = ierr + oce_alloc       ()          ! (tsn...) 
    532 #endif 
    533  
    534 #if ! defined key_bdy 
    535        ALLOCATE( snwice_mass(jpi,jpj)  , snwice_mass_b(jpi,jpj),             & 
    536          &      snwice_fmass(jpi,jpj)  , STAT= ierr1 ) 
    537       ! 
    538       ! lim code currently uses surface temperature and salinity in tsn array for initialisation 
    539       ! and ub, vb arrays in ice dynamics, so allocate enough of arrays to use 
    540       ! clem: should not be needed. To be checked out 
    541       jpm = MAX(jp_tem, jp_sal) 
    542       ALLOCATE( tsn(jpi,jpj,1,jpm)  , STAT=ierr2 ) 
    543       ALLOCATE( ub(jpi,jpj,1)       , STAT=ierr3 ) 
    544       ALLOCATE( vb(jpi,jpj,1)       , STAT=ierr4 ) 
    545       ALLOCATE( tsb(jpi,jpj,1,jpm)  , STAT=ierr5 ) 
    546       ALLOCATE( sshn(jpi,jpj)       , STAT=ierr6 ) 
    547       ALLOCATE( un(jpi,jpj,1)       , STAT=ierr7 ) 
    548       ALLOCATE( vn(jpi,jpj,1)       , STAT=ierr8 ) 
    549       ierr = ierr + ierr1 + ierr2 + ierr3 + ierr4 + ierr5 + ierr6  + ierr7 + ierr8 
    550549#endif 
    551550      ! 
     
    618617      INTEGER :: ifac, jl, inu 
    619618      INTEGER, PARAMETER :: ntest = 14 
    620       INTEGER :: ilfax(ntest) 
     619      INTEGER, DIMENSION(ntest) :: ilfax 
     620      !!---------------------------------------------------------------------- 
    621621      ! 
    622622      ! lfax contains the set of allowed factors. 
    623       data (ilfax(jl),jl=1,ntest) / 16384, 8192, 4096, 2048, 1024, 512, 256,  & 
    624          &                            128,   64,   32,   16,    8,   4,   2  / 
    625       !!---------------------------------------------------------------------- 
     623      ilfax(:) = (/(2**jl,jl=ntest,1,-1)/) 
    626624 
    627625      ! Clear the error flag and initialise output vars 
     
    721719                   nsndto = nsndto + 1 
    722720                   isendto(nsndto) = jn 
    723                 END IF 
     721                ENDIF 
    724722          END DO 
    725723          nfsloop = 1 
  • branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/SAS_SRC/sbcssm.F90

    r6861 r7069  
    8282      ! 
    8383      IF( nn_timing == 1 )  CALL timing_start( 'sbc_ssm') 
    84  
    85   IF ( l_sasread ) THEN 
    86       IF( nfld_3d > 0 ) CALL fld_read( kt, 1, sf_ssm_3d )      !==   read data at kt time step   ==! 
    87       IF( nfld_2d > 0 ) CALL fld_read( kt, 1, sf_ssm_2d )      !==   read data at kt time step   ==! 
    88       !  
    89       IF( ln_3d_uve ) THEN 
    90          ssu_m(:,:) = sf_ssm_3d(jf_usp)%fnow(:,:,1) * umask(:,:,1)    ! u-velocity 
    91          ssv_m(:,:) = sf_ssm_3d(jf_vsp)%fnow(:,:,1) * vmask(:,:,1)    ! v-velocity  
    92          IF( lk_vvl )   e3t_m(:,:) = sf_ssm_3d(jf_e3t)%fnow(:,:,1) * tmask(:,:,1)    ! v-velocity  
     84      
     85      IF ( l_sasread ) THEN 
     86         IF( nfld_3d > 0 ) CALL fld_read( kt, 1, sf_ssm_3d )      !==   read data at kt time step   ==! 
     87         IF( nfld_2d > 0 ) CALL fld_read( kt, 1, sf_ssm_2d )      !==   read data at kt time step   ==! 
     88         !  
     89         IF( ln_3d_uve ) THEN 
     90            IF( lk_vvl )   e3t_m(:,:) = sf_ssm_3d(jf_e3t)%fnow(:,:,1) * tmask(:,:,1)    ! v-velocity  
     91                           ssu_m(:,:) = sf_ssm_3d(jf_usp)%fnow(:,:,1) * umask(:,:,1)    ! u-velocity 
     92                           ssv_m(:,:) = sf_ssm_3d(jf_vsp)%fnow(:,:,1) * vmask(:,:,1)    ! v-velocity  
     93         ELSE 
     94            IF( lk_vvl )   e3t_m(:,:) = sf_ssm_2d(jf_e3t)%fnow(:,:,1) * tmask(:,:,1)    ! v-velocity  
     95                           ssu_m(:,:) = sf_ssm_2d(jf_usp)%fnow(:,:,1) * umask(:,:,1)    ! u-velocity 
     96                           ssv_m(:,:) = sf_ssm_2d(jf_vsp)%fnow(:,:,1) * vmask(:,:,1)    ! v-velocity  
     97         ENDIF 
     98         ! 
     99         sst_m(:,:) = sf_ssm_2d(jf_tem)%fnow(:,:,1) * tmask(:,:,1)    ! temperature 
     100         sss_m(:,:) = sf_ssm_2d(jf_sal)%fnow(:,:,1) * tmask(:,:,1)    ! salinity 
     101         ssh_m(:,:) = sf_ssm_2d(jf_ssh)%fnow(:,:,1) * tmask(:,:,1)    ! sea surface height 
     102         IF( ln_read_frq ) THEN 
     103            frq_m(:,:) = sf_ssm_2d(jf_frq)%fnow(:,:,1) * tmask(:,:,1) ! solar penetration 
     104         ELSE 
     105            frq_m(:,:) = 1._wp 
     106         ENDIF 
    93107      ELSE 
    94          ssu_m(:,:) = sf_ssm_2d(jf_usp)%fnow(:,:,1) * umask(:,:,1)    ! u-velocity 
    95          ssv_m(:,:) = sf_ssm_2d(jf_vsp)%fnow(:,:,1) * vmask(:,:,1)    ! v-velocity  
    96          IF( lk_vvl )   e3t_m(:,:) = sf_ssm_2d(jf_e3t)%fnow(:,:,1) * tmask(:,:,1)    ! v-velocity  
    97       ENDIF 
    98       ! 
    99       sst_m(:,:) = sf_ssm_2d(jf_tem)%fnow(:,:,1) * tmask(:,:,1)    ! temperature 
    100       sss_m(:,:) = sf_ssm_2d(jf_sal)%fnow(:,:,1) * tmask(:,:,1)    ! salinity 
    101       ssh_m(:,:) = sf_ssm_2d(jf_ssh)%fnow(:,:,1) * tmask(:,:,1)    ! sea surface height 
    102       IF( ln_read_frq )   frq_m(:,:) = sf_ssm_2d(jf_frq)%fnow(:,:,1) * tmask(:,:,1)    ! sea surface height 
    103  
    104    ELSE 
    105       sst_m(:,:) = 0. 
    106       sss_m(:,:) = 0. 
    107       ssu_m(:,:) = 0. 
    108       ssv_m(:,:) = 0. 
    109       ssh_m(:,:) = 0. 
    110    ENDIF 
    111       ! 
     108         sst_m(:,:) = 0._wp 
     109         sss_m(:,:) = 0._wp 
     110         ssu_m(:,:) = 0._wp 
     111         ssv_m(:,:) = 0._wp 
     112         ssh_m(:,:) = 0._wp 
     113         e3t_m(:,:) = e3t_0(:,:,1) !clem: necessary at least for sas2D 
     114         frq_m(:,:) = 1._wp        !              - - 
     115         sshn (:,:) = 0._wp        !              - - 
     116      ENDIF 
     117       
    112118      IF ( nn_ice == 1 ) THEN 
    113119         tsn(:,:,1,jp_tem) = sst_m(:,:) 
     
    118124      ub (:,:,1) = ssu_m(:,:) 
    119125      vb (:,:,1) = ssv_m(:,:) 
    120  
     126  
    121127      IF(ln_ctl) THEN                  ! print control 
    122128         CALL prt_ctl(tab2d_1=sst_m, clinfo1=' sst_m   - : ', mask1=tmask, ovlap=1   ) 
     
    300306  
    301307      CALL sbc_ssm( nit000 )   ! need to define ss?_m arrays used in limistate 
    302       IF( .NOT. ln_read_frq )   frq_m(:,:) = 1. 
    303308      l_initdone = .TRUE.     
    304309      ! 
  • branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    r6971 r7069  
    267267      IF( lk_offline ) THEN 
    268268        nk_rnf(:,:) = 1 
    269         h_rnf (:,:) = fsdept(:,:,1) 
     269        h_rnf (:,:) = e3t_0(:,:,1) 
    270270      ENDIF 
    271271 
  • branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/TOP_SRC/trcrst.F90

    r5513 r7069  
    304304         IF(lwp) WRITE(numout,9000) jn, TRIM( ctrcnm(jn) ), zmean, zmin, zmax, zdrift 
    305305      END DO 
    306       WRITE(numout,*)  
     306      IF(lwp) WRITE(numout,*)  
    3073079000  FORMAT(' tracer nb :',i2,'    name :',a10,'    mean :',e18.10,'    min :',e18.10, & 
    308308      &      '    max :',e18.10,'    drift :',e18.10, ' %') 
Note: See TracChangeset for help on using the changeset viewer.