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 7277 for branches/2016/dev_CNRS_2016/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90 – NEMO

Ignore:
Timestamp:
2016-11-21T09:55:07+01:00 (8 years ago)
Author:
flavoni
Message:

update 2016 branch with simplif-2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_CNRS_2016/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r6152 r7277  
    3333   !!             -   ! 2013-06  (I. Epicoco, S. Mocavero, CMCC) nemo_northcomms: setup avoiding MPI communication  
    3434   !!             -   ! 2014-12  (G. Madec) remove KPP scheme and cross-land advection (cla) 
     35   !!            4.0  ! 2016-10  (G. Madec, S. Flavoni)  domain configuration / user defined interface 
    3536   !!---------------------------------------------------------------------- 
    3637 
     
    4546   !!---------------------------------------------------------------------- 
    4647   USE step_oce       ! module used in the ocean time stepping module (step.F90) 
    47    USE domcfg         ! domain configuration               (dom_cfg routine) 
    48    USE mppini         ! shared/distributed memory setting (mpp_init routine) 
    49    USE domain         ! domain initialization             (dom_init routine) 
    50 #if defined key_nemocice_decomp 
    51    USE ice_domain_size, only: nx_global, ny_global 
    52 #endif 
     48   USE phycst         ! physical constant                  (par_cst routine) 
     49   USE domain         ! domain initialization   (dom_init & dom_cfg routines) 
     50   USE usrdef_nam     ! user defined configuration 
    5351   USE tideini        ! tidal components initialization   (tide_ini routine) 
    5452   USE bdyini         ! open boundary cond. setting       (bdy_init routine) 
     
    6058   USE ldftra         ! lateral diffusivity setting    (ldftra_init routine) 
    6159   USE zdfini         ! vertical physics setting          (zdf_init routine) 
    62    USE phycst         ! physical constant                  (par_cst routine) 
    6360   USE trdini         ! dyn/tra trends initialization     (trd_init routine) 
    6461   USE asminc         ! assimilation increments      
     
    6865   USE diaobs         ! Observation diagnostics       (dia_obs_init routine) 
    6966   USE diacfl         ! CFL diagnostics               (dia_cfl_init routine) 
    70    USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 
    7167   USE step           ! NEMO time-stepping                 (stp     routine) 
    7268   USE icbini         ! handle bergs, initialisation 
     
    7874   USE stopar         ! Stochastic param.: ??? 
    7975   USE stopts         ! Stochastic param.: ??? 
     76   USE diurnal_bulk   ! diurnal bulk SST  
     77   USE step_diu       ! diurnal bulk SST timestepping (called from here if run offline) 
     78   USE crsini         ! initialise grid coarsening utility 
     79   USE diatmb         ! Top,middle,bottom output 
     80   USE dia25h         ! 25h mean output 
     81   USE sbc_oce , ONLY : lk_oasis 
     82   USE wet_dry        ! Wetting and drying setting   (wad_init routine) 
    8083#if defined key_top 
    8184   USE trcini         ! passive tracer initialisation 
    8285#endif 
     86#if defined key_nemocice_decomp 
     87   USE ice_domain_size, only: nx_global, ny_global 
     88#endif 
     89   ! 
    8390   USE lib_mpp        ! distributed memory computing 
    84    USE diurnal_bulk    ! diurnal bulk SST  
    85    USE step_diu        ! diurnal bulk SST timestepping (called from here if run offline) 
     91   USE mppini         ! shared/distributed memory setting (mpp_init routine) 
     92   USE lbcnfd , ONLY  : isendto, nsndto, nfsloop, nfeloop   ! Setup of north fold exchanges  
     93   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 
    8694#if defined key_iomput 
    8795   USE xios           ! xIOserver 
    8896#endif 
    89    USE crsini         ! initialise grid coarsening utility 
    90    USE lbcnfd , ONLY  : isendto, nsndto, nfsloop, nfeloop   ! Setup of north fold exchanges  
    91    USE sbc_oce, ONLY  : lk_oasis 
    92    USE diatmb          ! Top,middle,bottom output 
    93    USE dia25h          ! 25h mean output 
    94    USE wet_dry         ! Wetting and drying setting   (wad_init routine) 
    9597 
    9698   IMPLICIT NONE 
     
    104106 
    105107   !!---------------------------------------------------------------------- 
    106    !! NEMO/OPA 3.7 , NEMO Consortium (2015) 
     108   !! NEMO/OPA 4.0 , NEMO Consortium (2016) 
    107109   !! $Id$ 
    108110   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    124126      !!              Madec, 2008, internal report, IPSL. 
    125127      !!---------------------------------------------------------------------- 
    126       INTEGER ::   istp       ! time step index 
     128      INTEGER ::   istp   ! time step index 
    127129      !!---------------------------------------------------------------------- 
    128130      ! 
     
    130132      CALL Agrif_Init_Grids()      ! AGRIF: set the meshes 
    131133#endif 
    132  
     134      ! 
    133135      !                            !-----------------------! 
    134136      CALL nemo_init               !==  Initialisations  ==! 
     
    195197      !                            !==  finalize the run  ==! 
    196198      !                            !------------------------! 
    197       IF(lwp) WRITE(numout,cform_aaa)   ! Flag AAAAAAA 
    198       ! 
    199       IF( nstop /= 0 .AND. lwp ) THEN   ! error print 
     199      IF(lwp) WRITE(numout,cform_aaa)        ! Flag AAAAAAA 
     200      ! 
     201      IF( nstop /= 0 .AND. lwp ) THEN        ! error print 
    200202         WRITE(numout,cform_err) 
    201203         WRITE(numout,*) nstop, ' error have been found' 
     
    215217      ! 
    216218#if defined key_iomput 
    217       CALL xios_finalize                  ! end mpp communications with xios 
    218       IF( lk_oasis )   CALL cpl_finalize  ! end coupling and mpp communications with OASIS 
     219      CALL xios_finalize                     ! end mpp communications with xios 
     220      IF( lk_oasis )   CALL cpl_finalize     ! end coupling and mpp communications with OASIS 
    219221#else 
    220222      IF( lk_oasis ) THEN  
    221          CALL cpl_finalize              ! end coupling and mpp communications with OASIS 
     223         CALL cpl_finalize                   ! end coupling and mpp communications with OASIS 
    222224      ELSE 
    223          IF( lk_mpp )   CALL mppstop    ! end mpp communications 
     225         IF( lk_mpp )   CALL mppstop         ! end mpp communications 
    224226      ENDIF 
    225227#endif 
     
    234236      !! ** Purpose :   initialization of the NEMO GCM 
    235237      !!---------------------------------------------------------------------- 
    236       INTEGER ::   ji            ! dummy loop indices 
    237       INTEGER ::  ilocal_comm   ! local integer 
    238       INTEGER ::   ios 
    239       CHARACTER(len=80), DIMENSION(16) ::   cltxt 
    240       ! 
    241       NAMELIST/namctl/ ln_ctl  , nn_print, nn_ictls, nn_ictle,   & 
    242          &             nn_isplt, nn_jsplt, nn_jctls, nn_jctle,   & 
    243          &             nn_bench, nn_timing, nn_diacfl 
    244       NAMELIST/namcfg/ cp_cfg, cp_cfz, jp_cfg, jpidta, jpjdta, jpkdta, jpiglo, jpjglo, & 
    245          &             jpizoom, jpjzoom, jperio, ln_use_jattr 
    246       !!---------------------------------------------------------------------- 
    247       ! 
    248       cltxt = '' 
     238      INTEGER  ::   ji                 ! dummy loop indices 
     239      INTEGER  ::   ios, ilocal_comm   ! local integer 
     240      CHARACTER(len=120), DIMENSION(30) ::   cltxt, cltxt2, clnam 
     241      ! 
     242      NAMELIST/namctl/ ln_ctl   , nn_print, nn_ictls, nn_ictle,   & 
     243         &             nn_isplt , nn_jsplt, nn_jctls, nn_jctle,   & 
     244         &             nn_timing, nn_diacfl 
     245      NAMELIST/namcfg/ ln_read_cfg, cn_domcfg, ln_write_cfg, cn_domcfg_out, ln_use_jattr 
     246      !!---------------------------------------------------------------------- 
     247      ! 
     248      cltxt  = '' 
     249      cltxt2 = '' 
     250      clnam  = ''   
    249251      cxios_context = 'nemo' 
    250252      ! 
     
    253255      CALL ctl_opn( numnam_cfg, 'namelist_cfg', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. ) 
    254256      ! 
    255       REWIND( numnam_ref )              ! Namelist namctl in reference namelist : Control prints & Benchmark 
     257      REWIND( numnam_ref )              ! Namelist namctl in reference namelist : Control prints 
    256258      READ  ( numnam_ref, namctl, IOSTAT = ios, ERR = 901 ) 
    257259901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namctl in reference namelist', .TRUE. ) 
    258  
    259       REWIND( numnam_cfg )              ! Namelist namctl in confguration namelist : Control prints & Benchmark 
     260      ! 
     261      REWIND( numnam_cfg )              ! Namelist namctl in confguration namelist 
    260262      READ  ( numnam_cfg, namctl, IOSTAT = ios, ERR = 902 ) 
    261263902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namctl in configuration namelist', .TRUE. ) 
    262  
    263       ! 
    264       REWIND( numnam_ref )              ! Namelist namcfg in reference namelist : Control prints & Benchmark 
     264      ! 
     265      REWIND( numnam_ref )              ! Namelist namcfg in reference namelist : Control prints 
    265266      READ  ( numnam_ref, namcfg, IOSTAT = ios, ERR = 903 ) 
    266267903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfg in reference namelist', .TRUE. ) 
     
    270271904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namcfg in configuration namelist', .TRUE. )    
    271272 
    272 ! Force values for AGRIF zoom (cf. agrif_user.F90) 
     273      !                             !--------------------------! 
     274      !                             !  Set global domain size  !   (control print return in cltxt2) 
     275      !                             !--------------------------! 
     276      IF( ln_read_cfg ) THEN              ! Read sizes in domain configuration file 
     277         CALL domain_cfg ( cltxt2,        cn_cfg, nn_cfg, jpiglo, jpjglo, jpkglo, jperio ) 
     278         ! 
     279      ELSE                                ! user-defined namelist 
     280         CALL usr_def_nam( cltxt2, clnam, cn_cfg, nn_cfg, jpiglo, jpjglo, jpkglo, jperio ) 
     281      ENDIF 
     282      ! 
     283      jpk = jpkglo 
     284      ! 
    273285#if defined key_agrif 
    274    IF( .NOT. Agrif_Root() ) THEN 
    275       jpiglo  = nbcellsx + 2 + 2*nbghostcells 
    276       jpjglo  = nbcellsy + 2 + 2*nbghostcells 
    277       jpi     = ( jpiglo-2*jpreci + (jpni-1+0) ) / jpni + 2*jpreci 
    278       jpj     = ( jpjglo-2*jprecj + (jpnj-1+0) ) / jpnj + 2*jprecj 
    279       jpidta  = jpiglo 
    280       jpjdta  = jpjglo 
    281       jpizoom = 1 
    282       jpjzoom = 1 
    283       nperio  = 0 
    284       jperio  = 0 
    285       ln_use_jattr = .false. 
    286    ENDIF 
     286      IF( .NOT. Agrif_Root() ) THEN       ! AGRIF children: specific setting (cf. agrif_user.F90) 
     287         jpiglo  = nbcellsx + 2 + 2*nbghostcells 
     288         jpjglo  = nbcellsy + 2 + 2*nbghostcells 
     289         jpi     = ( jpiglo-2*jpreci + (jpni-1+0) ) / jpni + 2*jpreci 
     290         jpj     = ( jpjglo-2*jprecj + (jpnj-1+0) ) / jpnj + 2*jprecj 
     291         nperio  = 0 
     292         jperio  = 0 
     293         ln_use_jattr = .false. 
     294      ENDIF 
    287295#endif 
    288296      ! 
     
    295303      IF( Agrif_Root() ) THEN 
    296304         IF( lk_oasis ) THEN 
    297             CALL cpl_init( "oceanx", ilocal_comm )                     ! nemo local communicator given by oasis 
    298             CALL xios_initialize( "not used",local_comm=ilocal_comm )    ! send nemo communicator to xios 
     305            CALL cpl_init( "oceanx", ilocal_comm )                               ! nemo local communicator given by oasis 
     306            CALL xios_initialize( "not used"       ,local_comm= ilocal_comm )    ! send nemo communicator to xios 
    299307         ELSE 
    300             CALL  xios_initialize( "for_xios_mpi_id",return_comm=ilocal_comm )    ! nemo local communicator given by xios 
     308            CALL xios_initialize( "for_xios_mpi_id",return_comm=ilocal_comm )    ! nemo local communicator given by xios 
    301309         ENDIF 
    302310      ENDIF 
     
    306314      IF( lk_oasis ) THEN 
    307315         IF( Agrif_Root() ) THEN 
    308             CALL cpl_init( "oceanx", ilocal_comm )                      ! nemo local communicator given by oasis 
     316            CALL cpl_init( "oceanx", ilocal_comm )          ! nemo local communicator given by oasis 
    309317         ENDIF 
    310318         ! Nodes selection (control print return in cltxt) 
    311319         narea = mynode( cltxt, 'output.namelist.dyn', numnam_ref, numnam_cfg, numond , nstop, ilocal_comm ) 
    312320      ELSE 
    313          ilocal_comm = 0 
    314          ! Nodes selection (control print return in cltxt) 
     321         ilocal_comm = 0                                    ! Nodes selection (control print return in cltxt) 
    315322         narea = mynode( cltxt, 'output.namelist.dyn', numnam_ref, numnam_cfg, numond , nstop ) 
    316323      ENDIF 
    317324#endif 
     325 
    318326      narea = narea + 1                                     ! mynode return the rank of proc (0 --> jpnij -1 ) 
    319327 
     
    321329      lwp = (narea == 1) .OR. ln_ctl                        ! control of all listing output print 
    322330 
    323       IF(lwm) THEN 
    324          ! write merged namelists from earlier to output namelist now that the 
    325          ! file has been opened in call to mynode. nammpp has already been 
    326          ! written in mynode (if lk_mpp_mpi) 
     331      IF(lwm) THEN               ! write merged namelists from earlier to output namelist  
     332         !                       ! now that the file has been opened in call to mynode.  
     333         !                       ! NB: nammpp has already been written in mynode (if lk_mpp_mpi) 
    327334         WRITE( numond, namctl ) 
    328335         WRITE( numond, namcfg ) 
     336         IF( .NOT.ln_read_cfg ) THEN 
     337            DO ji = 1, SIZE(clnam) 
     338               IF( TRIM(clnam(ji)) /= '' )   WRITE(numond, * ) clnam(ji)     ! namusr_def print 
     339            END DO 
     340         ENDIF 
    329341      ENDIF 
    330342 
     
    341353      ENDIF 
    342354 
    343       ! Calculate domain dimensions given calculated jpni and jpnj 
    344       ! This used to be done in par_oce.F90 when they were parameters rather than variables 
    345       IF( Agrif_Root() ) THEN 
     355      IF( Agrif_Root() ) THEN       ! AGRIF mother: specific setting from jpni and jpnj 
    346356#if defined key_nemocice_decomp 
    347357         jpi = ( nx_global+2-2*jpreci + (jpni-1) ) / jpni + 2*jpreci    ! first  dim. 
     
    351361         jpj = ( jpjglo     -2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj    ! second dim. 
    352362#endif 
    353       ENDIF          
    354          jpk = jpkdta                                             ! third dim 
     363      ENDIF 
     364 
     365!!gm ???    why here  it has already been done in line 301 ! 
     366      jpk = jpkglo                                             ! third dim 
     367!!gm end 
     368 
    355369#if defined key_agrif 
    356          ! simple trick to use same vertical grid as parent but different number of levels:  
    357          ! Save maximum number of levels in jpkdta, then define all vertical grids with this number. 
    358          ! Suppress once vertical online interpolation is ok 
    359          IF(.NOT.Agrif_Root())   jpkdta = Agrif_Parent( jpkdta ) 
    360 #endif 
    361          jpim1 = jpi-1                                            ! inner domain indices 
    362          jpjm1 = jpj-1                                            !   "           " 
    363          jpkm1 = jpk-1                                            !   "           " 
    364          jpij  = jpi*jpj                                          !  jpi x j 
     370      ! simple trick to use same vertical grid as parent but different number of levels:  
     371      ! Save maximum number of levels in jpkglo, then define all vertical grids with this number. 
     372      ! Suppress once vertical online interpolation is ok 
     373      IF(.NOT.Agrif_Root())   jpkglo = Agrif_Parent( jpkglo ) 
     374#endif 
     375      jpim1 = jpi-1                                            ! inner domain indices 
     376      jpjm1 = jpj-1                                            !   "           " 
     377      jpkm1 = jpk-1                                            !   "           " 
     378      jpij  = jpi*jpj                                          !  jpi x j 
    365379 
    366380      IF(lwp) THEN                            ! open listing units 
     
    372386         WRITE(numout,*) '                       NEMO team' 
    373387         WRITE(numout,*) '            Ocean General Circulation Model' 
    374          WRITE(numout,*) '                  version 3.7  (2015) ' 
     388         WRITE(numout,*) '                NEMO version 3.7  (2016) ' 
    375389         WRITE(numout,*) 
    376390         WRITE(numout,*) 
    377391         DO ji = 1, SIZE(cltxt) 
    378             IF( TRIM(cltxt(ji)) /= '' )   WRITE(numout,*) cltxt(ji)      ! control print of mynode 
     392            IF( TRIM(cltxt (ji)) /= '' )   WRITE(numout,*) cltxt(ji)    ! control print of mynode 
    379393         END DO 
    380          WRITE(numout,cform_aaa)                                         ! Flag AAAAAAA 
     394         WRITE(numout,*) 
     395         WRITE(numout,*) 
     396         DO ji = 1, SIZE(cltxt2) 
     397            IF( TRIM(cltxt2(ji)) /= '' )   WRITE(numout,*) cltxt2(ji)   ! control print of domain size 
     398         END DO 
    381399         ! 
    382       ENDIF 
    383  
    384       ! Now we know the dimensions of the grid and numout has been set we can 
    385       ! allocate arrays 
     400         WRITE(numout,cform_aaa)                                        ! Flag AAAAAAA 
     401         ! 
     402      ENDIF 
     403 
     404      ! Now we know the dimensions of the grid and numout has been set: we can allocate arrays 
    386405      CALL nemo_alloc() 
    387406 
     
    390409      !                             !-------------------------------! 
    391410 
    392       CALL nemo_ctl                          ! Control prints & Benchmark 
     411      CALL nemo_ctl                          ! Control prints 
    393412 
    394413      !                                      ! Domain decomposition 
     
    404423      IF( lk_c1d        )   CALL     c1d_init   ! 1D column configuration 
    405424                            CALL     wad_init   ! Wetting and drying options 
    406                             CALL     dom_cfg    ! Domain configuration 
    407425                            CALL     dom_init   ! Domain 
    408426      IF( ln_crs        )   CALL     crs_init   ! coarsened grid: domain initialization  
     
    503521                            CALL dia_tmb_init  ! TMB outputs 
    504522                            CALL dia_25h_init  ! 25h mean  outputs 
    505  
    506523      ! 
    507524   END SUBROUTINE nemo_init 
     
    519536      IF(lwp) THEN                  ! control print 
    520537         WRITE(numout,*) 
    521          WRITE(numout,*) 'nemo_ctl: Control prints & Benchmark' 
     538         WRITE(numout,*) 'nemo_ctl: Control prints' 
    522539         WRITE(numout,*) '~~~~~~~ ' 
    523540         WRITE(numout,*) '   Namelist namctl' 
     
    530547         WRITE(numout,*) '      number of proc. following i     nn_isplt   = ', nn_isplt 
    531548         WRITE(numout,*) '      number of proc. following j     nn_jsplt   = ', nn_jsplt 
    532          WRITE(numout,*) '      benchmark parameter (0/1)       nn_bench   = ', nn_bench 
    533549         WRITE(numout,*) '      timing activated    (0/1)       nn_timing  = ', nn_timing 
    534550      ENDIF 
     
    541557      isplt     = nn_isplt 
    542558      jsplt     = nn_jsplt 
    543       nbench    = nn_bench 
    544559 
    545560      IF(lwp) THEN                  ! control print 
     
    548563         WRITE(numout,*) '~~~~~~~ ' 
    549564         WRITE(numout,*) '   Namelist namcfg' 
    550          WRITE(numout,*) '      configuration name                               cp_cfg  = ', TRIM(cp_cfg) 
    551          WRITE(numout,*) '      configuration zoom name                          cp_cfz  = ', TRIM(cp_cfz) 
    552          WRITE(numout,*) '      configuration resolution                         jp_cfg  = ', jp_cfg 
    553          WRITE(numout,*) '      1st lateral dimension ( >= jpiglo )              jpidta  = ', jpidta 
    554          WRITE(numout,*) '      2nd    "         "    ( >= jpjglo )              jpjdta  = ', jpjdta 
    555          WRITE(numout,*) '      3nd    "         "                               jpkdta  = ', jpkdta 
    556          WRITE(numout,*) '      1st dimension of global domain in i              jpiglo  = ', jpiglo 
    557          WRITE(numout,*) '      2nd    -                  -    in j              jpjglo  = ', jpjglo 
    558          WRITE(numout,*) '      left bottom i index of the zoom (in data domain) jpizoom = ', jpizoom 
    559          WRITE(numout,*) '      left bottom j index of the zoom (in data domain) jpizoom = ', jpjzoom 
    560          WRITE(numout,*) '      lateral cond. type (between 0 and 6)             jperio  = ', jperio    
    561          WRITE(numout,*) '      use file attribute if exists as i/p j-start ln_use_jattr = ', ln_use_jattr 
     565         WRITE(numout,*) '      read domain configuration file                ln_read_cfg      = ', ln_read_cfg 
     566         WRITE(numout,*) '         filename to be read                           cn_domcfg     = ', TRIM(cn_domcfg) 
     567         WRITE(numout,*) '      write configuration definition file           ln_write_cfg     = ', ln_write_cfg 
     568         WRITE(numout,*) '         filename to be written                        cn_domcfg_out = ', TRIM(cn_domcfg_out) 
     569         WRITE(numout,*) '      use file attribute if exists as i/p j-start   ln_use_jattr     = ', ln_use_jattr 
    562570      ENDIF 
    563571      !                             ! Parameter control 
     
    600608      ENDIF 
    601609      ! 
    602       IF( nbench == 1 ) THEN              ! Benchmark 
    603          SELECT CASE ( cp_cfg ) 
    604          CASE ( 'gyre' )   ;   CALL ctl_warn( ' The Benchmark is activated ' ) 
    605          CASE DEFAULT      ;   CALL ctl_stop( ' The Benchmark is based on the GYRE configuration:',   & 
    606             &                                 ' cp_cfg = "gyre" in namelist &namcfg or set nbench = 0' ) 
    607          END SELECT 
    608       ENDIF 
    609       ! 
    610610      IF( 1_wp /= SIGN(1._wp,-0._wp)  )   CALL ctl_stop( 'nemo_ctl: The intrinsec SIGN function follows ',  & 
    611611         &                                               'f2003 standard. '                              ,  & 
     
    666666      !!---------------------------------------------------------------------- 
    667667      ! 
    668       ierr =        oce_alloc       ()          ! ocean 
     668      ierr =        oce_alloc       ()          ! ocean  
    669669      ierr = ierr + dia_wri_alloc   () 
    670670      ierr = ierr + dom_oce_alloc   ()          ! ocean domain 
     
    842842                IF ((sxM .gt. sxT) .AND. (sxM .lt. dxT)) THEN 
    843843                   nsndto = nsndto + 1 
    844                      isendto(nsndto) = jn 
     844                   isendto(nsndto) = jn 
    845845                ELSEIF ((sxM .le. sxT) .AND. (dxM .ge. dxT)) THEN 
    846846                   nsndto = nsndto + 1 
    847                      isendto(nsndto) = jn 
     847                   isendto(nsndto) = jn 
    848848                ELSEIF ((dxM .lt. dxT) .AND. (sxT .lt. dxM)) THEN 
    849849                   nsndto = nsndto + 1 
    850                      isendto(nsndto) = jn 
    851                 END IF 
     850                   isendto(nsndto) = jn 
     851                ENDIF 
    852852          END DO 
    853853          nfsloop = 1 
Note: See TracChangeset for help on using the changeset viewer.