Changeset 5


Ignore:
Timestamp:
05/04/11 16:30:27 (13 years ago)
Author:
cholod
Message:

patch_romsagrif_12_04_2011.tar : Bug fixes

Location:
Roms_tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Roms_tools/Roms_Agrif/analytical.F

    r4 r5  
     1! $Id: analytical.F 703 2011-04-11 15:57:49Z gcambon $ 
    12! 
    23!====================================================================== 
     
    18071808      endif 
    18081809#  endif /* OBC_SOUTH */    
    1809 # else 
    1810       ERROR ###  CPP-keys 'T_FRC_BRY' and 'BIOLOGY' are defined, 
    1811       ERROR ###  but no code is provided to set up boundary arrays. 
    18121810# endif /* PISCES */ 
    18131811      return 
  • Roms_tools/Roms_Agrif/get_bry_bio.F

    r2 r5  
    1 ! 
    2 ! $Id$ 
     1! $Id: get_bry_bio.F 704 2011-04-11 17:13:08Z gcambon $  
     2! 
     3!====================================================================== 
     4! ROMS_AGRIF is a branch of ROMS developped at IRD and INRIA, in France 
     5! The two other branches from UCLA (Shchepetkin et al)  
     6! and Rutgers University (Arango et al) are under MIT/X style license. 
     7! ROMS_AGRIF specific routines (nesting) are under CeCILL-C license. 
     8!  
     9! ROMS_AGRIF website : http://roms.mpl.ird.fr 
     10!====================================================================== 
    311! 
    412#include "cppdefs.h" 
    513#if defined SOLVE3D && defined T_FRC_BRY && defined BIOLOGY  
    614 
    7       subroutine get_bry_bio            ! Read side boundary forcing  
    8       implicit none                     ! fields from boundary file 
     15      subroutine get_bry_bio    ! Read side boundary forcing  
     16      implicit none             ! fields from boundary file 
    917# include "param.h" 
    1018# include "scalars.h" 
     
    1321# include "boundary.h" 
    1422      real cff 
    15       integer  lstr,lvar,lenstr, ierr, ierr_all, itrc 
     23      integer  lstr,lvar,lvar2,lenstr, ierr, ierr_all, itrc 
    1624      integer  nf_read_bry_EW, nf_read_bry_NS  
     25      character*60 text 
    1726! 
    1827! Initialization: Check, whether boundary forcing file is already 
     
    2837      lstr=lenstr(bry_file) 
    2938      if (iic.eq.0 ) then 
    30          do itrc=1,NT 
    31             got_tbry(itrc)=.FALSE. 
    32          enddo 
    33          if (bry_id.eq.-1) then 
    34             ierr=nf_open (bry_file(1:lstr), nf_nowrite, bry_id) 
    35             if (ierr.ne.nf_noerr) write(stdout,'(/1x,4A/)') 'ERROR ', 
    36      &           'in get_all_bry: can not open netCDF file ''', 
    37      &           bry_file(1:lstr),   '''.' 
    38          endif 
    39          if (ierr.eq.nf_noerr) then 
    40             ierr_all=0  
    41             do itrc=1,NT 
    42                if (itrc.eq.itemp) then 
    43                   got_tbry(itemp)=.true. 
     39        do itrc=1,NT 
     40          got_tbry(itrc)=.FALSE. 
     41        enddo 
     42        if (bry_id.eq.-1) then 
     43          ierr=nf_open (bry_file(1:lstr), nf_nowrite, bry_id) 
     44          if (ierr.ne.nf_noerr) write(stdout,'(/1x,4A/)') 'ERROR ', 
     45     &      'in get_all_bry: can not open netCDF file ''', 
     46     &      bry_file(1:lstr),   '''.' 
     47        endif 
     48        if (ierr.eq.nf_noerr) then 
     49          ierr_all=0  
     50          do itrc=1,NT 
     51            if (itrc.eq.itemp) then 
     52              got_tbry(itemp)=.true. 
    4453# ifdef SALINITY 
    45                   got_tbry(isalt)=.true. 
    46 # endif 
    47                   ierr=nf_inq_varid (bry_id, 'bry_time',  bry_time_id) 
    48                   if (ierr.ne.nf_noerr) then 
    49                      got_tbry(itemp)=.false. 
    50                      ierr_all=ierr_all+ierr 
     54              got_tbry(isalt)=.true. 
     55# endif 
     56              ierr=nf_inq_varid (bry_id, 'bry_time',  bry_time_id) 
     57              if (ierr.ne.nf_noerr) then 
     58                got_tbry(itemp)=.false. 
     59                ierr_all=ierr_all+ierr 
    5160# ifdef SALINITY 
    52                      got_tbry(isalt)=.false. 
    53 # endif 
    54                      write(stdout,3) 'bry_time', bry_file(1:lstr) 
     61                got_tbry(isalt)=.false. 
     62# endif 
     63                write(stdout,3) 'bry_time', bry_file(1:lstr) 
    5564C     goto 99      !--> ERROR 
    56                   endif 
    57                    
     65              endif 
     66               
    5867# ifdef PISCES 
    59                elseif (itrc.eq.iDIC_) then 
    60                   got_tbry(itrc)=.true. 
    61                   ierr=nf_inq_varid (bry_id, 'dic_time', bry_tid(itrc)) 
    62                   ierr_all=ierr_all+ierr 
    63                   if (ierr .ne. nf_noerr) then 
    64                      got_tbry(itrc)=.false. 
    65                      write(stdout,3) 'dic_time', bry_file(1:lstr) 
    66 c     goto 99                                     !--> ERROR 
    67                   endif 
    68                elseif (itrc.eq.iTAL_) then 
    69                   got_tbry(itrc)=.true. 
    70                   ierr=nf_inq_varid (bry_id, 'talk_time', bry_tid(itrc)) 
    71                   ierr_all=ierr_all+ierr 
    72                   if (ierr .ne. nf_noerr) then 
    73                      got_tbry(itrc)=.false. 
    74                      write(stdout,3) 'talk_time', bry_file(1:lstr) 
    75 c     goto 99                                     !--> ERROR 
    76                   endif 
    77                elseif (itrc.eq.iOXY_) then 
    78                   got_tbry(itrc)=.true. 
    79                   ierr=nf_inq_varid (bry_id, 'o2_time', bry_tid(itrc)) 
    80                   ierr_all=ierr_all+ierr 
    81                   if (ierr .ne. nf_noerr) then 
    82                      got_tbry(itrc)=.false. 
    83                      write(stdout,3) 'o2_time', bry_file(1:lstr) 
    84 c     goto 99                                     !--> ERROR 
    85                   endif 
    86                elseif (itrc.eq.iCAL_) then 
    87                   got_tbry(itrc)=.true. 
    88                   ierr=nf_inq_varid (bry_id, 'cal_time', bry_tid(itrc)) 
    89                   ierr_all=ierr_all+ierr 
    90                   if (ierr .ne. nf_noerr) then 
    91                      got_tbry(itrc)=.false. 
    92                      write(stdout,3) 'cal_time', bry_file(1:lstr) 
    93 c     goto 99                                     !--> ERROR 
    94                   endif 
    95                elseif (itrc.eq.iPO4_) then 
    96                   got_tbry(itrc)=.true. 
    97                   ierr=nf_inq_varid (bry_id, 'po4_time', bry_tid(itrc)) 
    98                   ierr_all=ierr_all+ierr 
    99                   if (ierr .ne. nf_noerr) then 
    100                      got_tbry(itrc)=.false. 
    101                      write(stdout,3) 'po4_time', bry_file(1:lstr) 
    102 c     goto 99                                     !--> ERROR 
    103                   endif 
    104                elseif (itrc.eq.iPOC_) then 
    105                   got_tbry(itrc)=.true. 
    106                   ierr=nf_inq_varid (bry_id, 'poc_time', bry_tid(itrc)) 
    107                   ierr_all=ierr_all+ierr 
    108                   if (ierr .ne. nf_noerr) then 
    109                      got_tbry(itrc)=.false. 
    110                      write(stdout,3) 'poc_time', bry_file(1:lstr) 
    111 c     goto 99                                     !--> ERROR 
    112                   endif 
    113                elseif (itrc.eq.iSIL_) then 
    114                   got_tbry(itrc)=.true. 
    115                   ierr=nf_inq_varid (bry_id, 'si_time', bry_tid(itrc)) 
    116                   ierr_all=ierr_all+ierr 
    117                   if (ierr .ne. nf_noerr) then 
    118                      got_tbry(itrc)=.false. 
    119                      write(stdout,3) 'si_time', bry_file(1:lstr) 
    120 c     goto 99                                     !--> ERROR 
    121                   endif 
    122                elseif (itrc.eq.iPHY_) then 
    123                   got_tbry(itrc)=.true. 
    124                   ierr=nf_inq_varid (bry_id, 'phy_time', bry_tid(itrc)) 
    125                   ierr_all=ierr_all+ierr 
    126                   if (ierr .ne. nf_noerr) then 
    127                      got_tbry(itrc)=.false. 
    128                      write(stdout,3) 'phy_time', bry_file(1:lstr) 
    129 c     goto 99                                     !--> ERROR 
    130                   endif 
    131                elseif (itrc.eq.iZOO_) then 
    132                   got_tbry(itrc)=.true. 
    133                   ierr=nf_inq_varid (bry_id, 'zoo_time', bry_tid(itrc)) 
    134                   ierr_all=ierr_all+ierr 
    135                   if (ierr .ne. nf_noerr) then 
    136                      got_tbry(itrc)=.false. 
    137                      write(stdout,3) 'zoo_time', bry_file(1:lstr) 
    138 c     goto 99                                     !--> ERROR 
    139                   endif 
    140                elseif (itrc.eq.iDOC_) then 
    141                   got_tbry(itrc)=.true. 
    142                   ierr=nf_inq_varid (bry_id, 'doc_time', bry_tid(itrc)) 
    143                   ierr_all=ierr_all+ierr 
    144                   if (ierr .ne. nf_noerr) then 
    145                      got_tbry(itrc)=.false. 
    146                      write(stdout,3) 'doc_time', bry_file(1:lstr) 
    147 c     goto 99                                     !--> ERROR 
    148                   endif 
    149                elseif (itrc.eq.iDIA_) then 
    150                   got_tbry(itrc)=.true. 
    151                   ierr=nf_inq_varid (bry_id, 'dia_time', bry_tid(itrc)) 
    152                   ierr_all=ierr_all+ierr 
    153                   if (ierr .ne. nf_noerr) then 
    154                      got_tbry(itrc)=.false. 
    155                      write(stdout,3) 'dia_time', bry_file(1:lstr) 
    156 c     goto 99                                     !--> ERROR 
    157                   endif 
    158                elseif (itrc.eq.iMES_) then 
    159                   got_tbry(itrc)=.true. 
    160                   ierr=nf_inq_varid (bry_id, 'mes_time', bry_tid(itrc)) 
    161                   ierr_all=ierr_all+ierr 
    162                   if (ierr .ne. nf_noerr) then 
    163                      got_tbry(itrc)=.false. 
    164                      write(stdout,3) 'mes_time', bry_file(1:lstr) 
    165 c     goto 99                                     !--> ERROR 
    166                   endif 
    167                elseif (itrc.eq.iBSI_) then 
    168                   got_tbry(itrc)=.true. 
    169                   ierr=nf_inq_varid (bry_id, 'bsi_time', bry_tid(itrc)) 
    170                   ierr_all=ierr_all+ierr 
    171                   if (ierr .ne. nf_noerr) then 
    172                      got_tbry(itrc)=.false. 
    173                      write(stdout,3) 'bsi_time', bry_file(1:lstr) 
    174 c     goto 99                                     !--> ERROR 
    175                   endif 
    176                elseif (itrc.eq.iFER_) then 
    177                   got_tbry(itrc)=.true. 
    178                   ierr=nf_inq_varid (bry_id, 'fer_time', bry_tid(itrc)) 
    179                   ierr_all=ierr_all+ierr 
    180                   if (ierr .ne. nf_noerr) then 
    181                      got_tbry(itrc)=.false. 
    182                      write(stdout,3) 'fer_time', bry_file(1:lstr) 
    183 c     goto 99                                     !--> ERROR 
    184                   endif 
    185                elseif (itrc.eq.iBFE_) then 
    186                   got_tbry(itrc)=.true. 
    187                   ierr=nf_inq_varid (bry_id, 'bfe_time', bry_tid(itrc)) 
    188                   ierr_all=ierr_all+ierr 
    189                   if (ierr .ne. nf_noerr) then 
    190                      got_tbry(itrc)=.false. 
    191                      write(stdout,3) 'bfe_time', bry_file(1:lstr) 
    192 c     goto 99                                     !--> ERROR 
    193                   endif 
    194                elseif (itrc.eq.iGOC_) then 
    195                   got_tbry(itrc)=.true. 
    196                   ierr=nf_inq_varid (bry_id, 'goc_time', bry_tid(itrc)) 
    197                   ierr_all=ierr_all+ierr 
    198                   if (ierr .ne. nf_noerr) then 
    199                      got_tbry(itrc)=.false. 
    200                      write(stdout,3) 'goc_time', bry_file(1:lstr) 
    201 c     goto 99                                     !--> ERROR 
    202                   endif 
    203                elseif (itrc.eq.iSFE_) then 
    204                   got_tbry(itrc)=.true. 
    205                   ierr=nf_inq_varid (bry_id, 'sfe_time', bry_tid(itrc)) 
    206                   ierr_all=ierr_all+ierr 
    207                   if (ierr .ne. nf_noerr) then 
    208                      got_tbry(itrc)=.false. 
    209                      write(stdout,3) 'sfe_time', bry_file(1:lstr) 
    210 c     goto 99                                     !--> ERROR 
    211                   endif 
    212                elseif (itrc.eq.iDFE_) then 
    213                   got_tbry(itrc)=.true. 
    214                   ierr=nf_inq_varid (bry_id, 'dfe_time', bry_tid(itrc)) 
    215                   ierr_all=ierr_all+ierr 
    216                   if (ierr .ne. nf_noerr) then 
    217                      got_tbry(itrc)=.false. 
    218                      write(stdout,3) 'dfe_time', bry_file(1:lstr) 
    219 c     goto 99                                     !--> ERROR 
    220                   endif 
    221                   ierr_all=ierr_all+ierr 
    222                elseif (itrc.eq.iDSI_) then 
    223                   got_tbry(itrc)=.true. 
    224                   ierr=nf_inq_varid (bry_id, 'dsi_time', bry_tid(itrc)) 
    225                   ierr_all=ierr_all+ierr 
    226                   if (ierr .ne. nf_noerr) then 
    227                      got_tbry(itrc)=.false. 
    228                      write(stdout,3) 'dsi_time', bry_file(1:lstr) 
    229 c     goto 99                                     !--> ERROR 
    230                   endif 
    231                elseif (itrc.eq.iNFE_) then 
    232                   got_tbry(itrc)=.true. 
    233                   ierr=nf_inq_varid (bry_id, 'nfe_time', bry_tid(itrc)) 
    234                   ierr_all=ierr_all+ierr 
    235                   if (ierr .ne. nf_noerr) then 
    236                      got_tbry(itrc)=.false. 
    237                      write(stdout,3) 'nfe_time', bry_file(1:lstr) 
    238 c     goto 99                                     !--> ERROR 
    239                   endif 
    240                elseif (itrc.eq.iNCH_) then 
    241                   got_tbry(itrc)=.true. 
    242                   ierr=nf_inq_varid (bry_id, 'nch_time', bry_tid(itrc)) 
    243                   ierr_all=ierr_all+ierr 
    244                   if (ierr .ne. nf_noerr) then 
    245                      got_tbry(itrc)=.false. 
    246                      write(stdout,3) 'nch_time', bry_file(1:lstr) 
    247 c     goto 99                                     !--> ERROR 
    248                   endif 
    249                elseif (itrc.eq.iDCH_) then 
    250                   got_tbry(itrc)=.true. 
    251                   ierr=nf_inq_varid (bry_id, 'dch_time', bry_tid(itrc)) 
    252                   ierr_all=ierr_all+ierr 
    253                   if (ierr .ne. nf_noerr) then 
    254                      got_tbry(itrc)=.false. 
    255                      write(stdout,3) 'dch_time', bry_file(1:lstr) 
    256 c     goto 99                                     !--> ERROR 
    257                   endif 
    258                elseif (itrc.eq.iNO3_) then 
    259                   got_tbry(itrc)=.true. 
    260                   ierr=nf_inq_varid (bry_id, 'no3_time', bry_tid(itrc)) 
    261                   ierr_all=ierr_all+ierr 
    262                   if (ierr .ne. nf_noerr) then 
    263                      got_tbry(itrc)=.false. 
    264                      write(stdout,3) 'no3_time', bry_file(1:lstr) 
    265 c     goto 99                                     !--> ERROR 
    266                   endif 
    267                elseif (itrc.eq.iNH4_) then 
    268                   got_tbry(itrc)=.true. 
    269                   ierr=nf_inq_varid (bry_id, 'nh4_time', bry_tid(itrc)) 
    270                   ierr_all=ierr_all+ierr 
    271                   if (ierr .ne. nf_noerr) then 
    272                      got_tbry(itrc)=.false. 
    273                      write(stdout,3) 'nh4_time', bry_file(1:lstr) 
    274 c     goto 99                                     !--> ERROR 
    275                   endif 
    276                endif   ! condition on itrc value 
    277 c$$$               write(*,*) 'LOGICAL:',got_tbry(itrc),itrc 
    278             enddo      ! loop on itrc 
    279 # endif                           
    280 !            if (ierr_all.ne.nf_noerr) write(stdout,'(/1x,4A/)') 'ERROR ', 
    281 !     &           'in get_all_bry TIME ''',bry_file(1:lstr),   '''.' 
    282              
    283             ierr_all=0 
    284              
    285 # ifdef PISCES 
     68            elseif (itrc.eq.iDIC_) then 
     69              got_tbry(itrc)=.true. 
     70              ierr=nf_inq_varid (bry_id, 'dic_time', bry_tid(itrc)) 
     71              ierr_all=ierr_all+ierr 
     72              if (ierr .ne. nf_noerr) then 
     73                got_tbry(itrc)=.false. 
     74                write(stdout,3) 'dic_time', bry_file(1:lstr) 
     75c     goto 99                                     !--> ERROR 
     76              endif 
     77            elseif (itrc.eq.iTAL_) then 
     78              got_tbry(itrc)=.true. 
     79              ierr=nf_inq_varid (bry_id, 'talk_time', bry_tid(itrc) 
     80     &          ) 
     81              ierr_all=ierr_all+ierr 
     82              if (ierr .ne. nf_noerr) then 
     83                got_tbry(itrc)=.false. 
     84                write(stdout,3) 'talk_time', bry_file(1:lstr) 
     85c     goto 99                                     !--> ERROR 
     86              endif 
     87            elseif (itrc.eq.iOXY_) then 
     88              got_tbry(itrc)=.true. 
     89              ierr=nf_inq_varid (bry_id, 'o2_time', bry_tid(itrc)) 
     90              ierr_all=ierr_all+ierr 
     91              if (ierr .ne. nf_noerr) then 
     92                got_tbry(itrc)=.false. 
     93                write(stdout,3) 'o2_time', bry_file(1:lstr) 
     94c     goto 99                                     !--> ERROR 
     95              endif 
     96            elseif (itrc.eq.iCAL_) then 
     97              got_tbry(itrc)=.true. 
     98              ierr=nf_inq_varid (bry_id, 'cal_time', bry_tid(itrc)) 
     99              ierr_all=ierr_all+ierr 
     100              if (ierr .ne. nf_noerr) then 
     101                got_tbry(itrc)=.false. 
     102                write(stdout,3) 'cal_time', bry_file(1:lstr) 
     103c     goto 99                                     !--> ERROR 
     104              endif 
     105            elseif (itrc.eq.iPO4_) then 
     106              got_tbry(itrc)=.true. 
     107              ierr=nf_inq_varid (bry_id, 'po4_time', bry_tid(itrc)) 
     108              ierr_all=ierr_all+ierr 
     109              if (ierr .ne. nf_noerr) then 
     110                got_tbry(itrc)=.false. 
     111                write(stdout,3) 'po4_time', bry_file(1:lstr) 
     112c     goto 99                                     !--> ERROR 
     113              endif 
     114            elseif (itrc.eq.iPOC_) then 
     115              got_tbry(itrc)=.true. 
     116              ierr=nf_inq_varid (bry_id, 'poc_time', bry_tid(itrc)) 
     117              ierr_all=ierr_all+ierr 
     118              if (ierr .ne. nf_noerr) then 
     119                got_tbry(itrc)=.false. 
     120                write(stdout,3) 'poc_time', bry_file(1:lstr) 
     121c     goto 99                                     !--> ERROR 
     122              endif 
     123            elseif (itrc.eq.iSIL_) then 
     124              got_tbry(itrc)=.true. 
     125              ierr=nf_inq_varid (bry_id, 'si_time', bry_tid(itrc)) 
     126              ierr_all=ierr_all+ierr 
     127              if (ierr .ne. nf_noerr) then 
     128                got_tbry(itrc)=.false. 
     129                write(stdout,3) 'si_time', bry_file(1:lstr) 
     130c     goto 99                                     !--> ERROR 
     131              endif 
     132            elseif (itrc.eq.iPHY_) then 
     133              got_tbry(itrc)=.true. 
     134              ierr=nf_inq_varid (bry_id, 'phy_time', bry_tid(itrc)) 
     135              ierr_all=ierr_all+ierr 
     136              if (ierr .ne. nf_noerr) then 
     137                got_tbry(itrc)=.false. 
     138                write(stdout,3) 'phy_time', bry_file(1:lstr) 
     139c     goto 99                                     !--> ERROR 
     140              endif 
     141            elseif (itrc.eq.iZOO_) then 
     142              got_tbry(itrc)=.true. 
     143              ierr=nf_inq_varid (bry_id, 'zoo_time', bry_tid(itrc)) 
     144              ierr_all=ierr_all+ierr 
     145              if (ierr .ne. nf_noerr) then 
     146                got_tbry(itrc)=.false. 
     147                write(stdout,3) 'zoo_time', bry_file(1:lstr) 
     148c     goto 99                                     !--> ERROR 
     149              endif 
     150            elseif (itrc.eq.iDOC_) then 
     151              got_tbry(itrc)=.true. 
     152              ierr=nf_inq_varid (bry_id, 'doc_time', bry_tid(itrc)) 
     153              ierr_all=ierr_all+ierr 
     154              if (ierr .ne. nf_noerr) then 
     155                got_tbry(itrc)=.false. 
     156                write(stdout,3) 'doc_time', bry_file(1:lstr) 
     157c     goto 99                                     !--> ERROR 
     158              endif 
     159            elseif (itrc.eq.iDIA_) then 
     160              got_tbry(itrc)=.true. 
     161              ierr=nf_inq_varid (bry_id, 'dia_time', bry_tid(itrc)) 
     162              ierr_all=ierr_all+ierr 
     163              if (ierr .ne. nf_noerr) then 
     164                got_tbry(itrc)=.false. 
     165                write(stdout,3) 'dia_time', bry_file(1:lstr) 
     166c     goto 99                                     !--> ERROR 
     167              endif 
     168            elseif (itrc.eq.iMES_) then 
     169              got_tbry(itrc)=.true. 
     170              ierr=nf_inq_varid (bry_id, 'mes_time', bry_tid(itrc)) 
     171              ierr_all=ierr_all+ierr 
     172              if (ierr .ne. nf_noerr) then 
     173                got_tbry(itrc)=.false. 
     174                write(stdout,3) 'mes_time', bry_file(1:lstr) 
     175c     goto 99                                     !--> ERROR 
     176              endif 
     177            elseif (itrc.eq.iBSI_) then 
     178              got_tbry(itrc)=.true. 
     179              ierr=nf_inq_varid (bry_id, 'bsi_time', bry_tid(itrc)) 
     180              ierr_all=ierr_all+ierr 
     181              if (ierr .ne. nf_noerr) then 
     182                got_tbry(itrc)=.false. 
     183                write(stdout,3) 'bsi_time', bry_file(1:lstr) 
     184c     goto 99                                     !--> ERROR 
     185              endif 
     186            elseif (itrc.eq.iFER_) then 
     187              got_tbry(itrc)=.true. 
     188              ierr=nf_inq_varid (bry_id, 'fer_time', bry_tid(itrc)) 
     189              ierr_all=ierr_all+ierr 
     190              if (ierr .ne. nf_noerr) then 
     191                got_tbry(itrc)=.false. 
     192                write(stdout,3) 'fer_time', bry_file(1:lstr) 
     193c     goto 99                                     !--> ERROR 
     194              endif 
     195            elseif (itrc.eq.iBFE_) then 
     196              got_tbry(itrc)=.true. 
     197              ierr=nf_inq_varid (bry_id, 'bfe_time', bry_tid(itrc)) 
     198              ierr_all=ierr_all+ierr 
     199              if (ierr .ne. nf_noerr) then 
     200                got_tbry(itrc)=.false. 
     201                write(stdout,3) 'bfe_time', bry_file(1:lstr) 
     202c     goto 99                                     !--> ERROR 
     203              endif 
     204            elseif (itrc.eq.iGOC_) then 
     205              got_tbry(itrc)=.true. 
     206              ierr=nf_inq_varid (bry_id, 'goc_time', bry_tid(itrc)) 
     207              ierr_all=ierr_all+ierr 
     208              if (ierr .ne. nf_noerr) then 
     209                got_tbry(itrc)=.false. 
     210                write(stdout,3) 'goc_time', bry_file(1:lstr) 
     211c     goto 99                                     !--> ERROR 
     212              endif 
     213            elseif (itrc.eq.iSFE_) then 
     214              got_tbry(itrc)=.true. 
     215              ierr=nf_inq_varid (bry_id, 'sfe_time', bry_tid(itrc)) 
     216              ierr_all=ierr_all+ierr 
     217              if (ierr .ne. nf_noerr) then 
     218                got_tbry(itrc)=.false. 
     219                write(stdout,3) 'sfe_time', bry_file(1:lstr) 
     220c     goto 99                                     !--> ERROR 
     221              endif 
     222            elseif (itrc.eq.iDFE_) then 
     223              got_tbry(itrc)=.true. 
     224              ierr=nf_inq_varid (bry_id, 'dfe_time', bry_tid(itrc)) 
     225              ierr_all=ierr_all+ierr 
     226              if (ierr .ne. nf_noerr) then 
     227                got_tbry(itrc)=.false. 
     228                write(stdout,3) 'dfe_time', bry_file(1:lstr) 
     229c     goto 99                                     !--> ERROR 
     230              endif 
     231              ierr_all=ierr_all+ierr 
     232            elseif (itrc.eq.iDSI_) then 
     233              got_tbry(itrc)=.true. 
     234              ierr=nf_inq_varid (bry_id, 'dsi_time', bry_tid(itrc)) 
     235              ierr_all=ierr_all+ierr 
     236              if (ierr .ne. nf_noerr) then 
     237                got_tbry(itrc)=.false. 
     238                write(stdout,3) 'dsi_time', bry_file(1:lstr) 
     239c     goto 99                                     !--> ERROR 
     240              endif 
     241            elseif (itrc.eq.iNFE_) then 
     242              got_tbry(itrc)=.true. 
     243              ierr=nf_inq_varid (bry_id, 'nfe_time', bry_tid(itrc)) 
     244              ierr_all=ierr_all+ierr 
     245              if (ierr .ne. nf_noerr) then 
     246                got_tbry(itrc)=.false. 
     247                write(stdout,3) 'nfe_time', bry_file(1:lstr) 
     248c     goto 99                                     !--> ERROR 
     249              endif 
     250            elseif (itrc.eq.iNCH_) then 
     251              got_tbry(itrc)=.true. 
     252              ierr=nf_inq_varid (bry_id, 'nch_time', bry_tid(itrc)) 
     253              ierr_all=ierr_all+ierr 
     254              if (ierr .ne. nf_noerr) then 
     255                got_tbry(itrc)=.false. 
     256                write(stdout,3) 'nch_time', bry_file(1:lstr) 
     257c     goto 99                                     !--> ERROR 
     258              endif 
     259            elseif (itrc.eq.iDCH_) then 
     260              got_tbry(itrc)=.true. 
     261              ierr=nf_inq_varid (bry_id, 'dch_time', bry_tid(itrc)) 
     262              ierr_all=ierr_all+ierr 
     263              if (ierr .ne. nf_noerr) then 
     264                got_tbry(itrc)=.false. 
     265                write(stdout,3) 'dch_time', bry_file(1:lstr) 
     266c     goto 99                                     !--> ERROR 
     267              endif 
     268            elseif (itrc.eq.iNO3_) then 
     269              got_tbry(itrc)=.true. 
     270              ierr=nf_inq_varid (bry_id, 'no3_time', bry_tid(itrc)) 
     271              ierr_all=ierr_all+ierr 
     272              if (ierr .ne. nf_noerr) then 
     273                got_tbry(itrc)=.false. 
     274                write(stdout,3) 'no3_time', bry_file(1:lstr) 
     275c     goto 99                                     !--> ERROR 
     276              endif 
     277            elseif (itrc.eq.iNH4_) then 
     278              got_tbry(itrc)=.true. 
     279              ierr=nf_inq_varid (bry_id, 'nh4_time', bry_tid(itrc)) 
     280              ierr_all=ierr_all+ierr 
     281              if (ierr .ne. nf_noerr) then 
     282                got_tbry(itrc)=.false. 
     283                write(stdout,3) 'nh4_time', bry_file(1:lstr) 
     284c     goto 99                                     !--> ERROR 
     285              endif 
     286 
     287# elif defined BIO_NChlPZD 
     288            elseif (itrc.eq.iNO3_) then 
     289              got_tbry(itrc)=.true. 
     290              ierr=nf_inq_varid (bry_id, 'no3_time', bry_tid(itrc)) 
     291              if (ierr .ne. nf_noerr) then 
     292                got_tbry(itrc)=.false. 
     293                write(stdout,3) 'no3_time', bry_file(1:lstr) 
     294c              goto 99                                     !--> ERROR 
     295              endif 
     296            elseif (itrc.eq.iPhy1) then 
     297              got_tbry(itrc)=.true. 
     298              ierr=nf_inq_varid (bry_id, 'phyto_time', bry_tid(itrc 
     299     &          )) 
     300              if (ierr .ne. nf_noerr) then 
     301                got_tbry(itrc)=.false. 
     302                write(stdout,3) 'phyto_time', bry_file(1:lstr) 
     303c              goto 99                                     !--> ERROR 
     304              endif 
     305            elseif (itrc.eq.iZoo1) then 
     306              got_tbry(itrc)=.true. 
     307              ierr=nf_inq_varid (bry_id, 'zoo_time', bry_tid(itrc)) 
     308              if (ierr .ne. nf_noerr) then 
     309                got_tbry(itrc)=.false. 
     310                write(stdout,3) 'zoo_time', bry_file(1:lstr) 
     311c              goto 99                                     !--> ERROR 
     312              endif 
     313            elseif (itrc.eq.iChla) then 
     314              got_tbry(itrc)=.true. 
     315              ierr=nf_inq_varid (bry_id, 'chla_time', bry_tid(itrc) 
     316     &          ) 
     317              if (ierr .ne. nf_noerr) then 
     318                got_tbry(itrc)=.false. 
     319                write(stdout,3) 'chla_time', bry_file(1:lstr) 
     320c              goto 99                                     !--> ERROR 
     321              endif 
     322            elseif (itrc.eq.iDet1) then 
     323              got_tbry(itrc)=.true. 
     324              ierr=nf_inq_varid (bry_id, 'det_time', bry_tid(itrc)) 
     325              if (ierr .ne. nf_noerr) then 
     326                got_tbry(itrc)=.false. 
     327                write(stdout,3) 'det_time', bry_file(1:lstr) 
     328c              goto 99                                     !--> ERROR 
     329              endif 
     330#   ifdef OXYGEN 
     331            elseif (itrc.eq.iO2) then 
     332              got_tbry(itrc)=.true. 
     333              ierr=nf_inq_varid (bry_id, 'o2_time', bry_tid(itrc)) 
     334              if (ierr .ne. nf_noerr) then 
     335                got_tbry(itrc)=.false. 
     336                write(stdout,3) 'o2_time', bry_file(1:lstr) 
     337c              goto 99                                     !--> ERROR 
     338              endif 
     339#   endif    
     340#endif     /* PISCES or BIO_NChlPZD */            
     341            endif               !condition on itrc value 
     342c$$$            write(*,*) 'LOGICAL:',got_tbry(itrc),itrc 
     343          enddo                 ! loop on itrc 
     344!              if (ierr_all.ne.nf_noerr) write(stdout,'(/1x,4A/)') 'ERROR ', 
     345!     &                   'in get_all_bry TIME ''',bry_file(1:lstr),   '''.' 
     346           
     347          ierr_all=0       
     348! 
    286349#  ifdef OBC_WEST 
    287             if (got_tbry(iNO3_)) then 
    288                ierr=nf_inq_varid (bry_id, 'NO3_west',  
    289      &              tbry_west_id(iNO3_)) 
    290                if (ierr.ne.nf_noerr) write(stdout,1) 'NO3_west' 
    291                ierr_all=ierr_all+ierr 
    292             endif 
    293              
    294             if (got_tbry(iPO4_)) then 
    295                ierr=nf_inq_varid (bry_id, 'PO4_west',  
    296      &              tbry_west_id(iPO4_)) 
    297                if (ierr.ne.nf_noerr) write(stdout,1) 'PO4_west' 
    298                ierr_all=ierr_all+ierr 
    299             endif 
    300              
    301             if (got_tbry(iSIL_)) then 
    302                ierr=nf_inq_varid (bry_id, 'Si_west',  
    303      &              tbry_west_id(iSIL_)) 
    304                if (ierr.ne.nf_noerr) write(stdout,1) 'Si_west' 
    305                ierr_all=ierr_all+ierr 
    306             endif 
    307              
    308             if (got_tbry(iOXY_)) then 
    309                ierr=nf_inq_varid (bry_id, 'O2_west',  
    310      &              tbry_west_id(iOXY_)) 
    311                if (ierr.ne.nf_noerr) write(stdout,1) 'O2_west' 
    312                ierr_all=ierr_all+ierr 
    313             endif 
    314  
    315             if (got_tbry(iDIC_)) then 
    316                ierr=nf_inq_varid (bry_id, 'DIC_west',  
    317      &              tbry_west_id(iDIC_)) 
    318                if (ierr.ne.nf_noerr) write(stdout,1) 'DIC_west' 
    319                ierr_all=ierr_all+ierr 
    320             endif 
    321              
    322             if (got_tbry(iDOC_)) then 
    323                ierr=nf_inq_varid (bry_id, 'DOC_west',  
    324      &              tbry_west_id(iDOC_)) 
    325                if (ierr.ne.nf_noerr) write(stdout,1) 'DOC_west' 
    326                ierr_all=ierr_all+ierr 
    327             endif 
    328              
    329             if (got_tbry(iTAL_)) then 
    330                ierr=nf_inq_varid (bry_id, 'TALK_west',  
    331      &              tbry_west_id(iTAL_)) 
    332                if (ierr.ne.nf_noerr) write(stdout,1) 'TALK_west' 
    333                ierr_all=ierr_all+ierr 
    334             endif 
    335              
    336             if (got_tbry(iFER_)) then 
    337                ierr=nf_inq_varid (bry_id, 'FER_west',  
    338      &              tbry_west_id(iFER_)) 
    339                if (ierr.ne.nf_noerr) write(stdout,1) 'FER_west' 
    340                ierr_all=ierr_all+ierr 
    341             endif 
     350          do itrc=3,NT 
     351            if (got_tbry(itrc)) then 
     352              lvar=lenstr(vname(1,indxT+itrc-1)) 
     353              text=vname(1,indxT+itrc-1)(1:lvar) / /'_west' 
     354              lvar2=lenstr(text) 
     355!              write(*,*)'lvar=',lvar 
     356!              write(*,*)'lvar2=',lvar2 
     357!              write(*,*)'text=',text 
     358              ierr=nf_inq_varid(bry_id,text(1:lvar2),tbry_west_id(itrc)) 
     359              if (ierr .ne. nf_noerr) then 
     360                write(stdout,3) text(1:lvar2), 
     361     &            bry_file(1:lstr) 
     362c                goto 99         !--> ERROR 
     363              endif 
     364            endif 
     365          enddo 
    342366#  endif /* OBC_WEST */ 
    343              
     367           
    344368#  ifdef OBC_EAST 
    345             if (got_tbry(iNO3_)) then 
    346                ierr=nf_inq_varid (bry_id, 'NO3_east',  
    347      &              tbry_east_id(iNO3_)) 
    348                if (ierr.ne.nf_noerr) write(stdout,1) 'NO3_east' 
    349                ierr_all=ierr_all+ierr 
    350             endif 
    351              
    352             if (got_tbry(iPO4_)) then 
    353                ierr=nf_inq_varid (bry_id, 'PO4_east',  
    354      &              tbry_east_id(iPO4_)) 
    355                if (ierr.ne.nf_noerr) write(stdout,1) 'PO4_east' 
    356                ierr_all=ierr_all+ierr 
    357             endif 
    358              
    359             if (got_tbry(iSIL_)) then 
    360                ierr=nf_inq_varid (bry_id, 'Si_east',  
    361      &              tbry_east_id(iSIL_)) 
    362                if (ierr.ne.nf_noerr) write(stdout,1) 'Si_east' 
    363                ierr_all=ierr_all+ierr 
    364             endif 
    365              
    366             if (got_tbry(iOXY_)) then 
    367                ierr=nf_inq_varid (bry_id, 'O2_east',  
    368      &              tbry_east_id(iOXY_)) 
    369                if (ierr.ne.nf_noerr) write(stdout,1) 'O2_east' 
    370                ierr_all=ierr_all+ierr 
    371             endif 
    372              
    373             if (got_tbry(iDIC_)) then 
    374                ierr=nf_inq_varid (bry_id, 'DIC_east',  
    375      &              tbry_east_id(iDIC_)) 
    376                if (ierr.ne.nf_noerr) write(stdout,1) 'DIC_east' 
    377                ierr_all=ierr_all+ierr 
    378             endif 
    379              
    380             if (got_tbry(iDOC_)) then 
    381                ierr=nf_inq_varid (bry_id, 'DOC_east',  
    382      &            tbry_east_id(iDOC_)) 
    383                if (ierr.ne.nf_noerr) write(stdout,1) 'DOC_east' 
    384                ierr_all=ierr_all+ierr 
    385             endif 
    386              
    387             if (got_tbry(iTAL_)) then 
    388                ierr=nf_inq_varid (bry_id, 'TALK_east',  
    389      &              tbry_east_id(iTAL_)) 
    390                if (ierr.ne.nf_noerr) write(stdout,1) 'TALK_east' 
    391                ierr_all=ierr_all+ierr 
    392             endif 
    393              
    394             if (got_tbry(iFER_)) then 
    395                ierr=nf_inq_varid (bry_id, 'FER_east',  
    396      &              tbry_east_id(iFER_)) 
    397                if (ierr.ne.nf_noerr) write(stdout,1) 'FER_east' 
    398                ierr_all=ierr_all+ierr 
    399             endif 
     369          do itrc=3,NT 
     370            if (got_tbry(itrc)) then 
     371              lvar=lenstr(vname(1,indxT+itrc-1)) 
     372              text=vname(1,indxT+itrc-1)(1:lvar) / /'_east' 
     373              lvar2=lenstr(text) 
     374              ierr=nf_inq_varid(bry_id,text(1:lvar2),tbry_east_id(itrc)) 
     375              if (ierr .ne. nf_noerr) then 
     376                write(stdout,3) text(1:lvar2), 
     377     &            bry_file(1:lstr) 
     378c                goto 99         !--> ERROR 
     379              endif 
     380            endif 
     381          enddo 
    400382#  endif /* OBC_EAST */ 
    401383 
    402384#  ifdef OBC_SOUTH 
    403             if (got_tbry(iNO3_)) then 
    404                ierr=nf_inq_varid (bry_id, 'NO3_south',  
    405      &              tbry_south_id(iNO3_)) 
    406                if (ierr.ne.nf_noerr) write(stdout,1) 'NO3_south' 
    407                ierr_all=ierr_all+ierr 
    408             endif 
    409              
    410             if (got_tbry(iPO4_)) then 
    411                ierr=nf_inq_varid (bry_id, 'PO4_south',  
    412      &              tbry_south_id(iPO4_)) 
    413                if (ierr.ne.nf_noerr) write(stdout,1) 'PO4_south' 
    414                ierr_all=ierr_all+ierr 
    415             endif 
    416              
    417             if (got_tbry(iSIL_)) then 
    418                ierr=nf_inq_varid (bry_id, 'Si_south',  
    419      &              tbry_south_id(iSIL_)) 
    420                if (ierr.ne.nf_noerr) write(stdout,1) 'Si_south' 
    421                ierr_all=ierr_all+ierr 
    422             endif 
    423              
    424             if (got_tbry(iOXY_)) then 
    425                ierr=nf_inq_varid (bry_id, 'O2_south',  
    426      &              tbry_south_id(iOXY_)) 
    427                if (ierr.ne.nf_noerr) write(stdout,1) 'O2_south' 
    428                ierr_all=ierr_all+ierr 
    429             endif 
    430              
    431             if (got_tbry(iDIC_)) then 
    432                ierr=nf_inq_varid (bry_id, 'DIC_south',  
    433      &              tbry_south_id(iDIC_)) 
    434                if (ierr.ne.nf_noerr) write(stdout,1) 'DIC_south' 
    435                ierr_all=ierr_all+ierr 
    436             endif 
    437              
    438             if (got_tbry(iDOC_)) then 
    439                ierr=nf_inq_varid (bry_id, 'DOC_south',  
    440      &              tbry_south_id(iDOC_)) 
    441                if (ierr.ne.nf_noerr) write(stdout,1) 'DOC_south' 
    442                ierr_all=ierr_all+ierr 
    443             endif 
    444              
    445             if (got_tbry(iTAL_)) then 
    446                ierr=nf_inq_varid (bry_id, 'TALK_south',  
    447      &              tbry_south_id(iTAL_)) 
    448                if (ierr.ne.nf_noerr) write(stdout,1) 'TALK_south' 
    449                ierr_all=ierr_all+ierr 
    450             endif 
    451              
    452             if (got_tbry(iFER_)) then 
    453                ierr=nf_inq_varid (bry_id, 'FER_south',  
    454      &              tbry_south_id(iFER_)) 
    455                if (ierr.ne.nf_noerr) write(stdout,1) 'FER_south' 
    456                ierr_all=ierr_all+ierr 
    457             endif 
     385          do itrc=3,NT 
     386            if (got_tbry(itrc)) then 
     387              lvar=lenstr(vname(1,indxT+itrc-1)) 
     388              text=vname(1,indxT+itrc-1)(1:lvar) / /'_south' 
     389              lvar2=lenstr(text) 
     390              ierr=nf_inq_varid(bry_id,text(1:lvar2), 
     391     &                                 tbry_south_id(itrc)) 
     392              if (ierr .ne. nf_noerr) then 
     393                write(stdout,3) text(1:lvar2), 
     394     &            bry_file(1:lstr) 
     395c                goto 99         !--> ERROR 
     396              endif 
     397            endif 
     398          enddo 
    458399#  endif /* OBC_SOUTH */ 
    459400 
    460401#  ifdef OBC_NORTH 
    461             if (got_tbry(iNO3_)) then 
    462                ierr=nf_inq_varid (bry_id, 'NO3_north',  
    463      &              tbry_north_id(iNO3_)) 
    464                if (ierr.ne.nf_noerr) write(stdout,1) 'NO3_north' 
    465                ierr_all=ierr_all+ierr 
    466             endif 
    467              
    468             if (got_tbry(iPO4_)) then 
    469                ierr=nf_inq_varid (bry_id, 'PO4_north',  
    470      &              tbry_north_id(iPO4_)) 
    471                if (ierr.ne.nf_noerr) write(stdout,1) 'PO4_north' 
    472                ierr_all=ierr_all+ierr 
    473             endif 
    474              
    475             if (got_tbry(iSIL_)) then 
    476                ierr=nf_inq_varid (bry_id, 'Si_north',  
    477      &              tbry_north_id(iSIL_)) 
    478                if (ierr.ne.nf_noerr) write(stdout,1) 'Si_north' 
    479                ierr_all=ierr_all+ierr 
    480             endif 
    481              
    482             if (got_tbry(iOXY_)) then 
    483                ierr=nf_inq_varid (bry_id, 'O2_north',  
    484      &              tbry_north_id(iOXY_)) 
    485                if (ierr.ne.nf_noerr) write(stdout,1) 'O2_north' 
    486                ierr_all=ierr_all+ierr 
    487             endif 
    488  
    489             if (got_tbry(iDIC_)) then 
    490                ierr=nf_inq_varid (bry_id, 'DIC_north',  
    491      &              tbry_north_id(iDIC_)) 
    492                if (ierr.ne.nf_noerr) write(stdout,1) 'DIC_north' 
    493                ierr_all=ierr_all+ierr 
    494             endif 
    495              
    496             if (got_tbry(iDOC_)) then 
    497                ierr=nf_inq_varid (bry_id, 'DOC_north',  
    498      &              tbry_north_id(iDOC_)) 
    499                if (ierr.ne.nf_noerr) write(stdout,1) 'DOC_north' 
    500                ierr_all=ierr_all+ierr 
    501             endif 
    502              
    503             if (got_tbry(iTAL_)) then 
    504                ierr=nf_inq_varid (bry_id, 'TALK_north',  
    505      &              tbry_north_id(iTAL_)) 
    506                if (ierr.ne.nf_noerr) write(stdout,1) 'TALK_north' 
    507                ierr_all=ierr_all+ierr 
    508             endif 
    509              
    510             if (got_tbry(iFER_)) then 
    511                ierr=nf_inq_varid (bry_id, 'FER_north',  
    512      &              tbry_north_id(iFER_)) 
    513                if (ierr.ne.nf_noerr) write(stdout,1) 'FER_north' 
    514                ierr_all=ierr_all+ierr 
    515             endif 
     402          do itrc=3,NT 
     403            if (got_tbry(itrc)) then 
     404              lvar=lenstr(vname(1,indxT+itrc-1)) 
     405              text=vname(1,indxT+itrc-1)(1:lvar) / /'_north' 
     406              lvar2=lenstr(text) 
     407              ierr=nf_inq_varid(bry_id,text(1:lvar2), 
     408     &                                 tbry_north_id(itrc)) 
     409              if (ierr .ne. nf_noerr) then 
     410                write(stdout,3) text(1:lvar2), 
     411     &            bry_file(1:lstr) 
     412c                goto 99         !--> ERROR 
     413              endif 
     414            endif 
     415          enddo 
    516416#  endif /* OBC_NORTH */ 
    517 # else 
    518       ERROR ###  CPP-keys 'T_FRC_BRY' and 'BIOLOGY' are defined, 
    519       ERROR ###  but no code is provided to set up boundary arrays. 
    520 # endif /* PISCES */ 
    521              
    522             ierr=ierr_all 
    523             if (ierr.eq.nf_noerr) then 
    524               do itrc=3,NT 
    525                 if(got_tbry(itrc)) then 
    526                   call set_cycle (bry_id, bry_tid(itrc),  
    527      &            ntbry1(itrc),bry_cycle1(itrc), bry_ncycle1(itrc),  
    528      &                    bry_rec1(itrc)) 
    529                   bry_time1(1,itrc)=-1.E+20 
    530                   bry_time1(2,itrc)=-1.E+20 
    531                   itbry1(itrc)=1 
    532                 endif 
    533               enddo 
    534             else 
    535               write(stdout,'(8x,4A)') 'ERROR(s) occur while examining', 
    536      &           ' content of netCDF file ''', bry_file(1:lstr), '''.' 
    537             endif 
    538          endif      ! test on ierr.no_err  
    539       endif         ! test on iic 
    540  1    format(' ERROR in get_all_bry: cannot find variable ''',A,'''')! 
     417!             
     418          ierr=ierr_all 
     419          if (ierr.eq.nf_noerr) then 
     420            do itrc=3,NT 
     421              if(got_tbry(itrc)) then    
     422                call set_cycle (bry_id, bry_tid(itrc),  
     423     &            ntbry1(itrc),bry_cycle1(itrc), 
     424     $            bry_ncycle1(itrc),bry_rec1(itrc)) 
     425                bry_time1(1,itrc)=-1.E+20 
     426                bry_time1(2,itrc)=-1.E+20 
     427                itbry1(itrc)=1 
     428              endif            
     429            enddo 
     430          else 
     431            write(stdout,'(8x,4A)') 'ERROR(s) occur while examining', 
     432     &        ' content of netCDF file ''', bry_file(1:lstr), '''.' 
     433          endif 
     434        endif                   ! test on ierr.no_err  
     435      endif                     ! test on iic 
     436 1    format(' ERROR in get_all_bry: cannot find variable ''',A,'''') ! 
    541437 
    542438! Read data from the file:  Check if model time is bounded by past 
     
    547443      do itrc=3,NT              ! loop on biology 
    548444        if(got_tbry(itrc)) then 
    549           do while (bry_time1(itbry1(itrc),itrc).lt.time+dt .and.  
    550      &             ierr.eq.nf_noerr) 
     445          do while (bry_time1(itbry1(itrc),itrc).lt.time+0.5*dt .and.  
     446     &      ierr.eq.nf_noerr) 
     447!            write(*,*)'=============================================' 
     448!            write(*,*)'itrc=',itrc 
     449!            write(*,*)'bry_time1(itbry1(itrc),itrc)', 
     450!     &                                 bry_time1(itbry1(itrc),itrc) 
     451!            write(*,*)'time+0.5*dt',time+0.5*dt 
     452!            write(*,*)'=============================================' 
    551453            call advance_cycle (bry_cycle1(itrc),ntbry1(itrc), 
    552      &           bry_ncycle1(itrc),bry_rec1(itrc)) 
     454     &        bry_ncycle1(itrc),bry_rec1(itrc)) 
    553455            if (ierr.eq.nf_noerr) then 
    554             ierr=nf_get_var1_FTYPE  
    555      &           (bry_id, bry_tid(itrc), bry_rec1(itrc), cff) 
    556              if (ierr.eq.nf_noerr) then 
    557                itbry1(itrc)=min(3-itbry1(itrc),ntbry1(itrc)) 
    558                bry_time1(itbry1(itrc),itrc)=cff*day2sec +  
    559      &              bry_cycle1(itrc)*bry_ncycle1(itrc) 
    560                ierr_all=0 
     456              ierr=nf_get_var1_FTYPE  
     457     &          (bry_id, bry_tid(itrc), bry_rec1(itrc), cff) 
     458              if (ierr.eq.nf_noerr) then 
     459                itbry1(itrc)=min(3-itbry1(itrc),ntbry1(itrc)) 
     460                bry_time1(itbry1(itrc),itrc)=cff*day2sec +  
     461     &            bry_cycle1(itrc)*bry_ncycle1(itrc) 
     462                ierr_all=0 
    561463# ifdef OBC_WEST 
    562464 
    563                ierr=nf_read_bry_EW (tbry_west_dt(START_1D_ARRAYETA,1 
    564      &             ,itbry1(itrc),itrc),bry_id,tbry_west_id(itrc), 
    565      &             bry_rec1(itrc), r3dvar) 
    566                if (ierr.ne.nf_noerr)  write(stdout,2)  'trc_west' 
    567                ierr_all=ierr_all+ierr 
     465                ierr=nf_read_bry_EW (tbry_west_dt(START_1D_ARRAYETA,1 
     466     &            ,itbry1(itrc),itrc),bry_id,tbry_west_id(itrc), 
     467     &            bry_rec1(itrc), r3dvar) 
     468                if (ierr.ne.nf_noerr)  write(stdout,2)  'trc_west' 
     469                ierr_all=ierr_all+ierr 
    568470# endif 
    569471# ifdef OBC_EAST 
    570472 
    571                ierr=nf_read_bry_EW (tbry_east_dt(START_1D_ARRAYETA,1 
    572      &             ,itbry1(itrc),itrc),bry_id,tbry_east_id(itrc), 
    573      &             bry_rec1(itrc), r3dvar) 
    574                if (ierr.ne.nf_noerr)  write(stdout,2)  'trc_east' 
    575                ierr_all=ierr_all+ierr 
     473                ierr=nf_read_bry_EW (tbry_east_dt(START_1D_ARRAYETA,1 
     474     &            ,itbry1(itrc),itrc),bry_id,tbry_east_id(itrc), 
     475     &            bry_rec1(itrc), r3dvar) 
     476                if (ierr.ne.nf_noerr)  write(stdout,2)  'trc_east' 
     477                ierr_all=ierr_all+ierr 
    576478# endif 
    577479# ifdef OBC_SOUTH 
    578                ierr=nf_read_bry_NS (tbry_south_dt(START_1D_ARRAYXI,1 
    579      &             ,itbry1(itrc),itrc),bry_id,tbry_south_id(itrc), 
    580      &             bry_rec1(itrc), r3dvar) 
    581                if (ierr.ne.nf_noerr)  write(stdout,2)  'trc_south' 
    582                ierr_all=ierr_all+ierr 
     480                ierr=nf_read_bry_NS (tbry_south_dt(START_1D_ARRAYXI,1 
     481     &            ,itbry1(itrc),itrc),bry_id,tbry_south_id(itrc), 
     482     &            bry_rec1(itrc), r3dvar) 
     483                if (ierr.ne.nf_noerr)  write(stdout,2)  'trc_south' 
     484                ierr_all=ierr_all+ierr 
    583485# endif 
    584486# ifdef OBC_NORTH 
    585                ierr=nf_read_bry_NS (tbry_north_dt( START_1D_ARRAYXI,1 
    586      &             ,itbry1(itrc),itrc),bry_id,tbry_north_id(itrc), 
    587      &             bry_rec1(itrc), r3dvar) 
    588                if (ierr.ne.nf_noerr)  write(stdout,2)  'trc_north' 
    589                ierr_all=ierr_all+ierr 
    590 # endif 
    591                ierr=ierr_all 
    592                 
    593                if (ierr.eq.0) then 
     487                ierr=nf_read_bry_NS (tbry_north_dt( START_1D_ARRAYXI,1 
     488     &            ,itbry1(itrc),itrc),bry_id,tbry_north_id(itrc), 
     489     &            bry_rec1(itrc), r3dvar) 
     490                if (ierr.ne.nf_noerr)  write(stdout,2)  'trc_north' 
     491                ierr_all=ierr_all+ierr 
     492# endif 
     493                ierr=ierr_all 
     494                 
     495                if (ierr.eq.0) then 
    594496                  write(stdout,'(6x,A,9x,A,1x,G12.4,1x,I4)') 
    595      &                 'GET_BRY_BIO    -- Read all boundary data', 
    596      &                 'for time =', cff  
     497     &              'GET_BRY_BIO    -- Read all boundary data', 
     498     &              'for time =', cff  
    597499#ifdef MPI 
    598      &                 , mynode 
     500     &              , mynode 
    599501#endif 
    600                else 
     502                else 
    601503                  write(stdout,'(1x,2A,I4/8x,3A)') 
    602      &                 'ERROR(s) occur while trying to read record ', 
    603      &                 bry_rec,  'in file ''',bry_file(1:lstr),'''.' 
    604                endif  
    605              else 
    606                write(stdout,2) 'bry_time' 
    607              endif 
     504     &              'ERROR(s) occur while trying to read record ', 
     505     &              bry_rec,  'in file ''',bry_file(1:lstr),'''.' 
     506                endif  
     507              else 
     508                write(stdout,2) 'bry_time' 
     509              endif 
    608510            else 
    609511              write(stdout,'(/1x,A,I4,1x,A,I4/7x,4A/7x,2(A,G12.4)/)') 
    610      &        'ERROR in get_bry_bio: requested time record ',  bry_rec, 
    611      &         'exeeds the last record', ntbry,  'available in netCDF ', 
    612      &         'file ''',   bry_file(1:lstr),  '''',  'tdays = ', tdays, 
    613      &           '  but the last available  bry_time =', 
    614      &           bry_time(itbry1(itrc))*sec2day 
    615             endif 
    616  
    617           enddo  !do while 
    618         endif    !got_tbry(itrc) 
    619       enddo      ! itrc 
    620           
    621  
    622   2   format(' ERROR in get_bry_bio: cannot read variable ''',A,'''') 
    623   3   format(/,' GET_BRY_BIO - unable to find climatology variable: ', 
    624      &       a,/,15x,'in climatology NetCDF file: ',a) 
     512     &          'ERROR in get_bry_bio: requested time record ',  bry_rec 
     513     $          ,'exeeds the last record', ntbry, 
     514     $          'available in netCDF ' 
     515     $          ,'file ''',   bry_file(1:lstr),  '''',  'tdays = ', 
     516     $          tdays,'  but the last available  bry_time =' 
     517     $          ,bry_time(itbry1(itrc))*sec2day 
     518            endif 
     519 
     520          enddo                 !do while 
     521        endif                   !got_tbry(itrc) 
     522      enddo                     ! itrc 
     523       
     524 
     525 2    format(' ERROR in get_bry_bio: cannot read variable ''',A,'''') 
     526 3    format(/,' GET_BRY_BIO - unable to find climatology variable: ', 
     527     &  a,/,15x,'in climatology NetCDF file: ',a) 
    625528      if (ierr.ne.nf_noerr) may_day_flag=2 
    626529      return 
     
    653556 
    654557      do itrc=3,NT 
    655          if(got_tbry(itrc)) then 
    656          it1=3-itbry1(itrc) 
    657          it2=itbry1(itrc) 
    658          cff1=bry_time1(it2,itrc)-time 
    659          cff2=time-bry_time1(it1,itrc) 
    660          if (ZEROTH_TILE .and. cff1.lt.dt) synchro_flag=.true. 
    661           
    662          if (cff1.ge.0. .and. cff2.ge.0.) then 
     558        if(got_tbry(itrc)) then 
     559          it1=3-itbry1(itrc) 
     560          it2=itbry1(itrc) 
     561          cff=time+0.5*dt 
     562          cff1=bry_time1(it2,itrc)-cff 
     563          cff2=cff-bry_time1(it1,itrc) 
     564!            write(*,*)'=========' 
     565!            write(*,*)'it1=',it1 
     566!            write(*,*)'it2=',it2 
     567!            write(*,*)'cff=',time 
     568!            write(*,*)'cff+0.5*dt=',time+0.5*dt 
     569!            write(*,*)'bry_time1(it1,3)',bry_time1(it1,3) 
     570!            write(*,*)'bry_time1(it2,3)',bry_time1(it2,3) 
     571!            write(*,*)'cff1=',cff1 
     572!            write(*,*)'cff2=',cff2  
     573!            write(*,*)'=========' 
     574          if (ZEROTH_TILE .and. cff1.lt.dt) synchro_flag=.true. 
     575           
     576          if (cff1.ge.0. .and. cff2.ge.0.) then 
    663577            cff=1./(cff1+cff2)  ! interpolate 
    664578            cff1=cff1*cff       ! boundary values  
     
    667581# ifdef OBC_WEST 
    668582            if (WESTERN_EDGE) then 
    669                do k=1,N 
    670                   do j=JstrR,JendR 
     583              do k=1,N 
     584                do j=JstrR,JendR 
    671585                  tbry_west(j,k,itrc)=cff1*tbry_west_dt(j,k,it1,itrc) 
    672      &                    +cff2*tbry_west_dt(j,k,it2,itrc) 
    673                   enddo 
    674                enddo 
     586     &              +cff2*tbry_west_dt(j,k,it2,itrc) 
     587                enddo 
     588              enddo 
    675589            endif 
    676590# endif 
     
    678592# ifdef OBC_EAST 
    679593            if (EASTERN_EDGE) then 
    680                do k=1,N 
    681                   do j=JstrR,JendR 
     594              do k=1,N 
     595                do j=JstrR,JendR 
    682596                  tbry_east(j,k,itrc)=cff1*tbry_east_dt(j,k,it1,itrc) 
    683      &                    +cff2*tbry_east_dt(j,k,it2,itrc) 
    684                   enddo 
    685                enddo 
     597     &              +cff2*tbry_east_dt(j,k,it2,itrc) 
     598                enddo 
     599              enddo 
    686600            endif 
    687601# endif 
     
    690604# ifdef OBC_SOUTH 
    691605            if (SOUTHERN_EDGE) then 
    692                do k=1,N 
    693                   do j=IstrR,IendR 
     606              do k=1,N 
     607                do j=IstrR,IendR 
    694608                  tbry_south(j,k,itrc)=cff1*tbry_south_dt(j,k,it1,itrc) 
    695      &                    +cff2*tbry_south_dt(j,k,it2,itrc) 
    696                   enddo 
    697                enddo 
     609     &              +cff2*tbry_south_dt(j,k,it2,itrc) 
     610                enddo 
     611              enddo 
    698612            endif 
    699613# endif 
     
    702616# ifdef OBC_NORTH 
    703617            if (NORTHERN_EDGE) then 
    704                do k=1,N 
    705                   do j=IstrR,IendR 
     618              do k=1,N 
     619                do j=IstrR,IendR 
    706620                  tbry_north(j,k,itrc)=cff1*tbry_north_dt(j,k,it1,itrc) 
    707      &                    +cff2*tbry_north_dt(j,k,it2,itrc) 
    708                   enddo 
    709                enddo 
    710             endif 
    711 # endif 
    712  
    713  
    714          elseif (ZEROTH_TILE) then 
     621     &              +cff2*tbry_north_dt(j,k,it2,itrc) 
     622                enddo 
     623              enddo 
     624            endif 
     625# endif 
     626 
     627          elseif (ZEROTH_TILE) then 
    715628            write(stdout,'(/2(1x,A)/3(1x,A,F16.10)/)') 
    716629     &      'SET_BRY_ALL_TILE - current model time is out of bounds of', 
     
    718631     &      'TDAYS=',  tdays,    'BRY_TEND=',     bry_time(it2)*sec2day 
    719632            may_day_flag=2 
    720          endif 
    721          endif 
    722       enddo 
    723  
    724       return 
    725       end 
     633          endif 
     634        endif 
     635       enddo 
     636 
     637       return 
     638       end 
    726639#else 
    727640      subroutine get_bry_bio_empty 
    728641      end 
    729642#endif 
     643 
  • Roms_tools/Run_v2.1/roms_inter.in

    r3 r5  
    5757 
    5858sponge:          X_SPONGE [m],    V_SPONGE [m^2/sec] 
    59                    150.e3           100. 
     59                   150.e3           1000. 
    6060 
    6161nudg_cof:    TauT_in, TauT_out, TauM_in, TauM_out  [days for all] 
Note: See TracChangeset for help on using the changeset viewer.