Changeset 5
- Timestamp:
- 05/04/11 16:30:27 (13 years ago)
- 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 $ 1 2 ! 2 3 !====================================================================== … … 1807 1808 endif 1808 1809 # endif /* OBC_SOUTH */ 1809 # else1810 ERROR ### CPP-keys 'T_FRC_BRY' and 'BIOLOGY' are defined,1811 ERROR ### but no code is provided to set up boundary arrays.1812 1810 # endif /* PISCES */ 1813 1811 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 !====================================================================== 3 11 ! 4 12 #include "cppdefs.h" 5 13 #if defined SOLVE3D && defined T_FRC_BRY && defined BIOLOGY 6 14 7 subroutine get_bry_bio 8 implicit none 15 subroutine get_bry_bio ! Read side boundary forcing 16 implicit none ! fields from boundary file 9 17 # include "param.h" 10 18 # include "scalars.h" … … 13 21 # include "boundary.h" 14 22 real cff 15 integer lstr,lvar,l enstr, ierr, ierr_all, itrc23 integer lstr,lvar,lvar2,lenstr, ierr, ierr_all, itrc 16 24 integer nf_read_bry_EW, nf_read_bry_NS 25 character*60 text 17 26 ! 18 27 ! Initialization: Check, whether boundary forcing file is already … … 28 37 lstr=lenstr(bry_file) 29 38 if (iic.eq.0 ) then 30 31 32 33 34 35 36 & 37 & 38 39 40 41 42 43 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. 44 53 # ifdef SALINITY 45 46 # endif 47 48 49 50 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 51 60 # ifdef SALINITY 52 53 # endif 54 61 got_tbry(isalt)=.false. 62 # endif 63 write(stdout,3) 'bry_time', bry_file(1:lstr) 55 64 C goto 99 !--> ERROR 56 57 65 endif 66 58 67 # 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) 75 c 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) 85 c 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) 94 c 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) 103 c 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) 112 c 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) 121 c 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) 130 c 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) 139 c 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) 148 c 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) 157 c 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) 166 c 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) 175 c 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) 184 c 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) 193 c 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) 202 c 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) 211 c 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) 220 c 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) 229 c 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) 239 c 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) 248 c 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) 257 c 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) 266 c 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) 275 c 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) 284 c 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) 294 c 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) 303 c 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) 311 c 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) 320 c 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) 328 c 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) 337 c goto 99 !--> ERROR 338 endif 339 # endif 340 #endif /* PISCES or BIO_NChlPZD */ 341 endif !condition on itrc value 342 c$$$ 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 ! 286 349 # 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) 362 c goto 99 !--> ERROR 363 endif 364 endif 365 enddo 342 366 # endif /* OBC_WEST */ 343 367 344 368 # 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) 378 c goto 99 !--> ERROR 379 endif 380 endif 381 enddo 400 382 # endif /* OBC_EAST */ 401 383 402 384 # 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) 395 c goto 99 !--> ERROR 396 endif 397 endif 398 enddo 458 399 # endif /* OBC_SOUTH */ 459 400 460 401 # 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) 412 c goto 99 !--> ERROR 413 endif 414 endif 415 enddo 516 416 # 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,'''') ! 541 437 542 438 ! Read data from the file: Check if model time is bounded by past … … 547 443 do itrc=3,NT ! loop on biology 548 444 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(*,*)'=============================================' 551 453 call advance_cycle (bry_cycle1(itrc),ntbry1(itrc), 552 & 454 & bry_ncycle1(itrc),bry_rec1(itrc)) 553 455 if (ierr.eq.nf_noerr) then 554 ierr=nf_get_var1_FTYPE555 & 556 if (ierr.eq.nf_noerr) then557 itbry1(itrc)=min(3-itbry1(itrc),ntbry1(itrc))558 bry_time1(itbry1(itrc),itrc)=cff*day2sec +559 & 560 ierr_all=0456 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 561 463 # ifdef OBC_WEST 562 464 563 ierr=nf_read_bry_EW (tbry_west_dt(START_1D_ARRAYETA,1564 & 565 & 566 if (ierr.ne.nf_noerr) write(stdout,2) 'trc_west'567 ierr_all=ierr_all+ierr465 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 568 470 # endif 569 471 # ifdef OBC_EAST 570 472 571 ierr=nf_read_bry_EW (tbry_east_dt(START_1D_ARRAYETA,1572 & 573 & 574 if (ierr.ne.nf_noerr) write(stdout,2) 'trc_east'575 ierr_all=ierr_all+ierr473 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 576 478 # endif 577 479 # ifdef OBC_SOUTH 578 ierr=nf_read_bry_NS (tbry_south_dt(START_1D_ARRAYXI,1579 & 580 & 581 if (ierr.ne.nf_noerr) write(stdout,2) 'trc_south'582 ierr_all=ierr_all+ierr480 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 583 485 # endif 584 486 # ifdef OBC_NORTH 585 ierr=nf_read_bry_NS (tbry_north_dt( START_1D_ARRAYXI,1586 & 587 & 588 if (ierr.ne.nf_noerr) write(stdout,2) 'trc_north'589 ierr_all=ierr_all+ierr590 # endif 591 ierr=ierr_all592 593 if (ierr.eq.0) then487 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 594 496 write(stdout,'(6x,A,9x,A,1x,G12.4,1x,I4)') 595 & 596 & 497 & 'GET_BRY_BIO -- Read all boundary data', 498 & 'for time =', cff 597 499 #ifdef MPI 598 & 500 & , mynode 599 501 #endif 600 else502 else 601 503 write(stdout,'(1x,2A,I4/8x,3A)') 602 & 603 & 604 endif605 else606 write(stdout,2) 'bry_time'607 endif504 & '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 608 510 else 609 511 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) 625 528 if (ierr.ne.nf_noerr) may_day_flag=2 626 529 return … … 653 556 654 557 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 663 577 cff=1./(cff1+cff2) ! interpolate 664 578 cff1=cff1*cff ! boundary values … … 667 581 # ifdef OBC_WEST 668 582 if (WESTERN_EDGE) then 669 670 583 do k=1,N 584 do j=JstrR,JendR 671 585 tbry_west(j,k,itrc)=cff1*tbry_west_dt(j,k,it1,itrc) 672 & 673 674 586 & +cff2*tbry_west_dt(j,k,it2,itrc) 587 enddo 588 enddo 675 589 endif 676 590 # endif … … 678 592 # ifdef OBC_EAST 679 593 if (EASTERN_EDGE) then 680 681 594 do k=1,N 595 do j=JstrR,JendR 682 596 tbry_east(j,k,itrc)=cff1*tbry_east_dt(j,k,it1,itrc) 683 & 684 685 597 & +cff2*tbry_east_dt(j,k,it2,itrc) 598 enddo 599 enddo 686 600 endif 687 601 # endif … … 690 604 # ifdef OBC_SOUTH 691 605 if (SOUTHERN_EDGE) then 692 693 606 do k=1,N 607 do j=IstrR,IendR 694 608 tbry_south(j,k,itrc)=cff1*tbry_south_dt(j,k,it1,itrc) 695 & 696 697 609 & +cff2*tbry_south_dt(j,k,it2,itrc) 610 enddo 611 enddo 698 612 endif 699 613 # endif … … 702 616 # ifdef OBC_NORTH 703 617 if (NORTHERN_EDGE) then 704 705 618 do k=1,N 619 do j=IstrR,IendR 706 620 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 715 628 write(stdout,'(/2(1x,A)/3(1x,A,F16.10)/)') 716 629 & 'SET_BRY_ALL_TILE - current model time is out of bounds of', … … 718 631 & 'TDAYS=', tdays, 'BRY_TEND=', bry_time(it2)*sec2day 719 632 may_day_flag=2 720 endif721 722 enddo723 724 return725 end633 endif 634 endif 635 enddo 636 637 return 638 end 726 639 #else 727 640 subroutine get_bry_bio_empty 728 641 end 729 642 #endif 643 -
Roms_tools/Run_v2.1/roms_inter.in
r3 r5 57 57 58 58 sponge: X_SPONGE [m], V_SPONGE [m^2/sec] 59 150.e3 100 .59 150.e3 1000. 60 60 61 61 nudg_cof: TauT_in, TauT_out, TauM_in, TauM_out [days for all]
Note: See TracChangeset
for help on using the changeset viewer.