- Timestamp:
- 2020-09-14T17:40:34+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@13382 sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/FLO/flo4rk.F90
r10068 r13463 4 4 !! Ocean floats : trajectory computation using a 4th order Runge-Kutta 5 5 !!====================================================================== 6 #if defined key_floats 7 !!---------------------------------------------------------------------- 8 !! 'key_floats' float trajectories 6 !! 9 7 !!---------------------------------------------------------------------- 10 8 !! flo_4rk : Compute the geographical position of floats … … 28 26 REAL(wp), DIMENSION (3) :: scoef1 = (/ 0.5 , 0.5 , 1.0 /) ! 29 27 28 # include "domzgr_substitute.h90" 30 29 !!---------------------------------------------------------------------- 31 30 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 35 34 CONTAINS 36 35 37 SUBROUTINE flo_4rk( kt )36 SUBROUTINE flo_4rk( kt, Kbb, Kmm ) 38 37 !!---------------------------------------------------------------------- 39 38 !! *** ROUTINE flo_4rk *** … … 47 46 !! floats and the grid defined on the domain. 48 47 !!---------------------------------------------------------------------- 49 INTEGER, INTENT(in) :: kt ! ocean time-step index 48 INTEGER, INTENT(in) :: kt ! ocean time-step index 49 INTEGER, INTENT(in) :: Kbb, Kmm ! ocean time level indices 50 50 !! 51 51 INTEGER :: jfl, jind ! dummy loop indices … … 127 127 128 128 ! for each step we compute the compute the velocity with Lagrange interpolation 129 CALL flo_interp( zgifl, zgjfl, zgkfl, zufl, zvfl, zwfl, jind )129 CALL flo_interp( Kbb, Kmm, zgifl, zgjfl, zgkfl, zufl, zvfl, zwfl, jind ) 130 130 131 131 ! computation of Runge-Kutta factor 132 132 DO jfl = 1, jpnfl 133 zrkxfl(jfl,jind) = r dt*zufl(jfl)134 zrkyfl(jfl,jind) = r dt*zvfl(jfl)135 zrkzfl(jfl,jind) = r dt*zwfl(jfl)133 zrkxfl(jfl,jind) = rn_Dt*zufl(jfl) 134 zrkyfl(jfl,jind) = rn_Dt*zvfl(jfl) 135 zrkzfl(jfl,jind) = rn_Dt*zwfl(jfl) 136 136 END DO 137 137 IF( jind /= 4 ) THEN … … 155 155 156 156 157 SUBROUTINE flo_interp( pxt , pyt , pzt , & 157 SUBROUTINE flo_interp( Kbb, Kmm, & 158 & pxt , pyt , pzt , & 158 159 & pufl, pvfl, pwfl, ki ) 159 160 !!---------------------------------------------------------------------- … … 167 168 !! integrated with RK method. 168 169 !!---------------------------------------------------------------------- 170 INTEGER , INTENT(in ) :: Kbb, Kmm ! ocean time level indices 169 171 REAL(wp) , DIMENSION(jpnfl), INTENT(in ) :: pxt , pyt , pzt ! position of the float 170 172 REAL(wp) , DIMENSION(jpnfl), INTENT( out) :: pufl, pvfl, pwfl ! velocity at this position … … 248 250 DO jind3 = 1, 4 249 251 ztufl(jfl,jind1,jind2,jind3) = & 250 & ( tcoef1(ki) * u b(iidu(jfl,jind1),ijdu(jfl,jind2),ikdu(jfl,jind3)) + &251 & tcoef2(ki) * u n(iidu(jfl,jind1),ijdu(jfl,jind2),ikdu(jfl,jind3)) ) &252 & ( tcoef1(ki) * uu(iidu(jfl,jind1),ijdu(jfl,jind2),ikdu(jfl,jind3),Kbb) + & 253 & tcoef2(ki) * uu(iidu(jfl,jind1),ijdu(jfl,jind2),ikdu(jfl,jind3),Kmm) ) & 252 254 & / e1u(iidu(jfl,jind1),ijdu(jfl,jind2)) 253 255 END DO … … 332 334 DO jind3 = 1 ,4 333 335 ztvfl(jfl,jind1,jind2,jind3)= & 334 & ( tcoef1(ki) * v b(iidv(jfl,jind1),ijdv(jfl,jind2),ikdv(jfl,jind3)) + &335 & tcoef2(ki) * v n(iidv(jfl,jind1),ijdv(jfl,jind2),ikdv(jfl,jind3)) ) &336 & ( tcoef1(ki) * vv(iidv(jfl,jind1),ijdv(jfl,jind2),ikdv(jfl,jind3),Kbb) + & 337 & tcoef2(ki) * vv(iidv(jfl,jind1),ijdv(jfl,jind2),ikdv(jfl,jind3),Kmm) ) & 336 338 & / e2v(iidv(jfl,jind1),ijdv(jfl,jind2)) 337 339 END DO … … 424 426 ztwfl(jfl,jind1,jind2,jind3)= & 425 427 & ( tcoef1(ki) * wb(iidw(jfl,jind1),ijdw(jfl,jind2),ikdw(jfl,jind3))+ & 426 & tcoef2(ki) * w n(iidw(jfl,jind1),ijdw(jfl,jind2),ikdw(jfl,jind3)) ) &427 & / e3w _n(iidw(jfl,jind1),ijdw(jfl,jind2),ikdw(jfl,jind3))428 & tcoef2(ki) * ww(iidw(jfl,jind1),ijdw(jfl,jind2),ikdw(jfl,jind3)) ) & 429 & / e3w(iidw(jfl,jind1),ijdw(jfl,jind2),ikdw(jfl,jind3),Kmm) 428 430 END DO 429 431 END DO … … 445 447 END SUBROUTINE flo_interp 446 448 447 # else448 !!----------------------------------------------------------------------449 !! No floats Dummy module450 !!----------------------------------------------------------------------451 #endif452 453 449 !!====================================================================== 454 450 END MODULE flo4rk
Note: See TracChangeset
for help on using the changeset viewer.