- Timestamp:
- 2020-05-14T21:46:00+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
- Property svn:externals
-
old new 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@HEAD sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/FLO/floblk.F90
r12178 r12928 27 27 CONTAINS 28 28 29 SUBROUTINE flo_blk( kt )29 SUBROUTINE flo_blk( kt, Kbb, Kmm ) 30 30 !!--------------------------------------------------------------------- 31 31 !! *** ROUTINE flo_blk *** … … 38 38 !! of the floats and the grid defined on the domain. 39 39 !!---------------------------------------------------------------------- 40 INTEGER, INTENT( in ) :: kt ! ocean time step 40 INTEGER, INTENT( in ) :: kt ! ocean time step 41 INTEGER, INTENT( in ) :: Kbb, Kmm ! ocean time level indices 41 42 !! 42 43 INTEGER :: jfl ! dummy loop arguments … … 110 111 ! compute the transport across the mesh where the float is. 111 112 !!bug (gm) change e3t into e3. but never checked 112 zsurfx(1) = e2u(iiloc(jfl)-1,ijloc(jfl) ) * e3u _n(iiloc(jfl)-1,ijloc(jfl) ,-ikl(jfl))113 zsurfx(2) = e2u(iiloc(jfl) ,ijloc(jfl) ) * e3u _n(iiloc(jfl) ,ijloc(jfl) ,-ikl(jfl))114 zsurfy(1) = e1v(iiloc(jfl) ,ijloc(jfl)-1) * e3v _n(iiloc(jfl) ,ijloc(jfl)-1,-ikl(jfl))115 zsurfy(2) = e1v(iiloc(jfl) ,ijloc(jfl) ) * e3v _n(iiloc(jfl) ,ijloc(jfl) ,-ikl(jfl))113 zsurfx(1) = e2u(iiloc(jfl)-1,ijloc(jfl) ) * e3u(iiloc(jfl)-1,ijloc(jfl) ,-ikl(jfl),Kmm) 114 zsurfx(2) = e2u(iiloc(jfl) ,ijloc(jfl) ) * e3u(iiloc(jfl) ,ijloc(jfl) ,-ikl(jfl),Kmm) 115 zsurfy(1) = e1v(iiloc(jfl) ,ijloc(jfl)-1) * e3v(iiloc(jfl) ,ijloc(jfl)-1,-ikl(jfl),Kmm) 116 zsurfy(2) = e1v(iiloc(jfl) ,ijloc(jfl) ) * e3v(iiloc(jfl) ,ijloc(jfl) ,-ikl(jfl),Kmm) 116 117 117 118 ! for a isobar float zsurfz is put to zero. The vertical velocity will be zero too. 118 119 zsurfz = e1e2t(iiloc(jfl),ijloc(jfl)) 119 zvol = zsurfz * e3t _n(iiloc(jfl),ijloc(jfl),-ikl(jfl))120 zvol = zsurfz * e3t(iiloc(jfl),ijloc(jfl),-ikl(jfl),Kmm) 120 121 121 122 ! 122 zuinfl =( u b(iiloc(jfl)-1,ijloc(jfl),-ikl(jfl)) + un(iiloc(jfl)-1,ijloc(jfl),-ikl(jfl)) )/2.*zsurfx(1)123 zuoutfl=( u b(iiloc(jfl) ,ijloc(jfl),-ikl(jfl)) + un(iiloc(jfl) ,ijloc(jfl),-ikl(jfl)) )/2.*zsurfx(2)124 zvinfl =( v b(iiloc(jfl),ijloc(jfl)-1,-ikl(jfl)) + vn(iiloc(jfl),ijloc(jfl)-1,-ikl(jfl)) )/2.*zsurfy(1)125 zvoutfl=( v b(iiloc(jfl),ijloc(jfl) ,-ikl(jfl)) + vn(iiloc(jfl),ijloc(jfl) ,-ikl(jfl)) )/2.*zsurfy(2)123 zuinfl =( uu(iiloc(jfl)-1,ijloc(jfl),-ikl(jfl),Kbb) + uu(iiloc(jfl)-1,ijloc(jfl),-ikl(jfl),Kmm) )/2.*zsurfx(1) 124 zuoutfl=( uu(iiloc(jfl) ,ijloc(jfl),-ikl(jfl),Kbb) + uu(iiloc(jfl) ,ijloc(jfl),-ikl(jfl),Kmm) )/2.*zsurfx(2) 125 zvinfl =( vv(iiloc(jfl),ijloc(jfl)-1,-ikl(jfl),Kbb) + vv(iiloc(jfl),ijloc(jfl)-1,-ikl(jfl),Kmm) )/2.*zsurfy(1) 126 zvoutfl=( vv(iiloc(jfl),ijloc(jfl) ,-ikl(jfl),Kbb) + vv(iiloc(jfl),ijloc(jfl) ,-ikl(jfl),Kmm) )/2.*zsurfy(2) 126 127 zwinfl =-(wb(iiloc(jfl),ijloc(jfl),-(ikl(jfl)-1)) & 127 & + w n(iiloc(jfl),ijloc(jfl),-(ikl(jfl)-1)) )/2. * zsurfz*nisobfl(jfl)128 & + ww(iiloc(jfl),ijloc(jfl),-(ikl(jfl)-1)) )/2. * zsurfz*nisobfl(jfl) 128 129 zwoutfl=-(wb(iiloc(jfl),ijloc(jfl),- ikl(jfl) ) & 129 & + w n(iiloc(jfl),ijloc(jfl),- ikl(jfl) ) )/2. * zsurfz*nisobfl(jfl)130 & + ww(iiloc(jfl),ijloc(jfl),- ikl(jfl) ) )/2. * zsurfz*nisobfl(jfl) 130 131 131 132 ! interpolation of velocity field on the float initial position … … 174 175 zgidfl(jfl) = float(iioutfl(jfl) - iiinfl(jfl)) 175 176 IF( zufl(jfl)*zuoutfl <= 0. ) THEN 176 ztxfl(jfl) = 1.E99177 ztxfl(jfl) = HUGE(1._wp) 177 178 ELSE 178 179 IF( ABS(zudfl(jfl)) >= 1.E-5 ) THEN … … 190 191 zgjdfl(jfl) = float(ijoutfl(jfl)-ijinfl(jfl)) 191 192 IF( zvfl(jfl)*zvoutfl <= 0. ) THEN 192 ztyfl(jfl) = 1.E99193 ztyfl(jfl) = HUGE(1._wp) 193 194 ELSE 194 195 IF( ABS(zvdfl(jfl)) >= 1.E-5 ) THEN … … 207 208 zgkdfl(jfl) = float(ikoutfl(jfl) - ikinfl(jfl)) 208 209 IF( zwfl(jfl)*zwoutfl <= 0. ) THEN 209 ztzfl(jfl) = 1.E99210 ztzfl(jfl) = HUGE(1._wp) 210 211 ELSE 211 212 IF( ABS(zwdfl(jfl)) >= 1.E-5 ) THEN … … 232 233 ! test to know if the "age" of the float is not bigger than the 233 234 ! time step 234 IF( zagenewfl(jfl) > r dt ) THEN235 zttfl(jfl) = (r dt-zagefl(jfl)) / zvol236 zagenewfl(jfl) = r dt235 IF( zagenewfl(jfl) > rn_Dt ) THEN 236 zttfl(jfl) = (rn_Dt-zagefl(jfl)) / zvol 237 zagenewfl(jfl) = rn_Dt 237 238 ENDIF 238 239 … … 339 340 ifin = 1 340 341 DO jfl = 1, jpnfl 341 IF( zagefl(jfl) < r dt ) ifin = 0342 IF( zagefl(jfl) < rn_Dt ) ifin = 0 342 343 tpifl(jfl) = zgifl(jfl) + 0.5 343 344 tpjfl(jfl) = zgjfl(jfl) + 0.5 … … 346 347 ifin = 1 347 348 DO jfl = 1, jpnfl 348 IF( zagefl(jfl) < r dt ) ifin = 0349 IF( zagefl(jfl) < rn_Dt ) ifin = 0 349 350 tpifl(jfl) = zgifl(jfl) + 0.5 350 351 tpjfl(jfl) = zgjfl(jfl) + 0.5
Note: See TracChangeset
for help on using the changeset viewer.