New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12928 for NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/FLO/floblk.F90 – NEMO

Ignore:
Timestamp:
2020-05-14T21:46:00+02:00 (4 years ago)
Author:
smueller
Message:

Synchronizing with /NEMO/trunk@12925 (ticket #2170)

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  
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@HEAD         sette 
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/FLO/floblk.F90

    r12178 r12928  
    2727CONTAINS 
    2828 
    29    SUBROUTINE flo_blk( kt ) 
     29   SUBROUTINE flo_blk( kt, Kbb, Kmm ) 
    3030      !!--------------------------------------------------------------------- 
    3131      !!                  ***  ROUTINE flo_blk  *** 
     
    3838      !!      of the floats and the grid defined on the domain. 
    3939      !!---------------------------------------------------------------------- 
    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 
    4142      !! 
    4243      INTEGER :: jfl              ! dummy loop arguments 
     
    110111            ! compute the transport across the mesh where the float is.             
    111112!!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) 
    116117 
    117118            ! for a isobar float zsurfz is put to zero. The vertical velocity will be zero too. 
    118119            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) 
    120121 
    121122            ! 
    122             zuinfl =( ub(iiloc(jfl)-1,ijloc(jfl),-ikl(jfl)) + un(iiloc(jfl)-1,ijloc(jfl),-ikl(jfl)) )/2.*zsurfx(1) 
    123             zuoutfl=( ub(iiloc(jfl)  ,ijloc(jfl),-ikl(jfl)) + un(iiloc(jfl)  ,ijloc(jfl),-ikl(jfl)) )/2.*zsurfx(2) 
    124             zvinfl =( vb(iiloc(jfl),ijloc(jfl)-1,-ikl(jfl)) + vn(iiloc(jfl),ijloc(jfl)-1,-ikl(jfl)) )/2.*zsurfy(1) 
    125             zvoutfl=( vb(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) 
    126127            zwinfl =-(wb(iiloc(jfl),ijloc(jfl),-(ikl(jfl)-1))    & 
    127                &   +  wn(iiloc(jfl),ijloc(jfl),-(ikl(jfl)-1)) )/2. *  zsurfz*nisobfl(jfl) 
     128               &   +  ww(iiloc(jfl),ijloc(jfl),-(ikl(jfl)-1)) )/2. *  zsurfz*nisobfl(jfl) 
    128129            zwoutfl=-(wb(iiloc(jfl),ijloc(jfl),- ikl(jfl)   )   & 
    129                &   +  wn(iiloc(jfl),ijloc(jfl),- ikl(jfl)   ) )/2. *  zsurfz*nisobfl(jfl) 
     130               &   +  ww(iiloc(jfl),ijloc(jfl),- ikl(jfl)   ) )/2. *  zsurfz*nisobfl(jfl) 
    130131             
    131132            ! interpolation of velocity field on the float initial position             
     
    174175            zgidfl(jfl) = float(iioutfl(jfl) - iiinfl(jfl)) 
    175176            IF( zufl(jfl)*zuoutfl <= 0. ) THEN 
    176                ztxfl(jfl) = 1.E99 
     177               ztxfl(jfl) = HUGE(1._wp) 
    177178            ELSE 
    178179               IF( ABS(zudfl(jfl)) >= 1.E-5 ) THEN 
     
    190191            zgjdfl(jfl) = float(ijoutfl(jfl)-ijinfl(jfl)) 
    191192            IF( zvfl(jfl)*zvoutfl <= 0. ) THEN 
    192                ztyfl(jfl) = 1.E99 
     193               ztyfl(jfl) = HUGE(1._wp) 
    193194            ELSE 
    194195               IF( ABS(zvdfl(jfl)) >= 1.E-5 ) THEN 
     
    207208               zgkdfl(jfl) = float(ikoutfl(jfl) - ikinfl(jfl)) 
    208209               IF( zwfl(jfl)*zwoutfl <= 0. ) THEN 
    209                   ztzfl(jfl) = 1.E99 
     210                  ztzfl(jfl) = HUGE(1._wp) 
    210211               ELSE 
    211212                  IF( ABS(zwdfl(jfl)) >= 1.E-5 ) THEN 
     
    232233            ! test to know if the "age" of the float is not bigger than the  
    233234            ! time step 
    234             IF( zagenewfl(jfl) > rdt ) THEN 
    235                zttfl(jfl) = (rdt-zagefl(jfl)) / zvol 
    236                zagenewfl(jfl) = rdt 
     235            IF( zagenewfl(jfl) > rn_Dt ) THEN 
     236               zttfl(jfl) = (rn_Dt-zagefl(jfl)) / zvol 
     237               zagenewfl(jfl) = rn_Dt 
    237238            ENDIF 
    238239             
     
    339340         ifin = 1 
    340341         DO jfl = 1, jpnfl 
    341             IF( zagefl(jfl) < rdt )   ifin = 0 
     342            IF( zagefl(jfl) < rn_Dt )   ifin = 0 
    342343            tpifl(jfl) = zgifl(jfl) + 0.5 
    343344            tpjfl(jfl) = zgjfl(jfl) + 0.5 
     
    346347         ifin = 1 
    347348         DO jfl = 1, jpnfl 
    348             IF( zagefl(jfl) < rdt )   ifin = 0 
     349            IF( zagefl(jfl) < rn_Dt )   ifin = 0 
    349350            tpifl(jfl) = zgifl(jfl) + 0.5 
    350351            tpjfl(jfl) = zgjfl(jfl) + 0.5 
Note: See TracChangeset for help on using the changeset viewer.