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 11960 for NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/BDY/bdydta.F90 – NEMO

Ignore:
Timestamp:
2019-11-25T18:19:39+01:00 (4 years ago)
Author:
acc
Message:

Branch 2019/dev_r11943_MERGE_2019. Merge in changes from 2019/dev_r11613_ENHANCE-04_namelists_as_internalfiles. (svn merge -r 11614:11954). Resolved tree conflicts and one actual conflict. Sette tested(these changes alter the ext/AGRIF reference; remember to update). See ticket #2341

Location:
NEMO/branches/2019/dev_r11943_MERGE_2019
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11943_MERGE_2019

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/BDY/bdydta.F90

    r11949 r11960  
    373373      INTEGER ::   ierror, ios     !  
    374374      ! 
     375      INTEGER ::   nbdy_rdstart, nbdy_loc 
     376      CHARACTER(LEN=50)                      ::   cerrmsg       ! error string 
    375377      CHARACTER(len=3)                       ::   cl3           !  
    376378      CHARACTER(len=100)                     ::   cn_dir        ! Root directory for location of data files 
     
    415417      ! Read namelists 
    416418      ! -------------- 
    417       REWIND(numnam_cfg) 
     419      nbdy_rdstart = 1 
    418420      DO jbdy = 1, nb_bdy 
    419421 
     
    421423         WRITE(ctmp2, '(a,i2)') 'block nambdy_dta number ', jbdy 
    422424 
    423          ! There is only one nambdy_dta block in namelist_ref -> use it for each bdy so we do a rewind  
    424          REWIND(numnam_ref) 
     425         ! There is only one nambdy_dta block in namelist_ref -> use it for each bdy so we read from the beginning 
    425426         READ  ( numnam_ref, nambdy_dta, IOSTAT = ios, ERR = 901) 
    426427901      IF( ios /= 0 )   CALL ctl_nam ( ios , 'nambdy_dta in reference namelist' ) 
     
    431432            & .OR. ( dta_bdy(jbdy)%lneed_tra   .AND.       nn_tra_dta(jbdy)    == 1 )   & 
    432433            & .OR. ( dta_bdy(jbdy)%lneed_ice   .AND.       nn_ice_dta(jbdy)    == 1 )   )   THEN 
    433             ! WARNING: we don't do a rewind here, each bdy reads its own nambdy_dta block one after another 
    434             READ  ( numnam_cfg, nambdy_dta, IOSTAT = ios, ERR = 902 ) 
     434            ! 
     435            ! Need to support possibility of reading more than one 
     436            ! nambdy_dta from the namelist_cfg internal file. 
     437            ! Do this by finding the jbdy'th occurence of nambdy_dta in the 
     438            ! character buffer as the starting point. 
     439            ! 
     440            nbdy_loc = INDEX( numnam_cfg( nbdy_rdstart: ), 'nambdy_dta' ) 
     441            IF( nbdy_loc .GT. 0 ) THEN 
     442               nbdy_rdstart = nbdy_rdstart + nbdy_loc 
     443            ELSE 
     444               WRITE(cerrmsg,'(A,I4,A)') 'Error: entry number ',jbdy,' of nambdy_dta not found' 
     445               ios = -1 
     446               CALL ctl_nam ( ios , cerrmsg ) 
     447            ENDIF 
     448            READ  ( numnam_cfg( MAX( 1, nbdy_rdstart - 2 ): ), nambdy_dta, IOSTAT = ios, ERR = 902) 
    435449902         IF( ios >  0 )   CALL ctl_nam ( ios , 'nambdy_dta in configuration namelist' ) 
    436450            IF(lwm) WRITE( numond, nambdy_dta )            
Note: See TracChangeset for help on using the changeset viewer.