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 13463 for NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/FLO/flodom.F90 – NEMO

Ignore:
Timestamp:
2020-09-14T17:40:34+02:00 (4 years ago)
Author:
andmirek
Message:

Ticket #2195:update to trunk 13461

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  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@13382        sette 
  • NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/FLO/flodom.F90

    r10425 r13463  
    66   !! History :  OPA  ! 1998-07 (Y.Drillet, CLIPPER)  Original code 
    77   !!  NEMO      3.3  ! 2011-09 (C.Bricaud,S.Law-Chune Mercator-Ocean): add ARIANE convention + comsecitc changes 
    8    !!---------------------------------------------------------------------- 
    9 #if   defined key_floats 
    10    !!---------------------------------------------------------------------- 
    11    !!   'key_floats'                                     float trajectories 
    128   !!---------------------------------------------------------------------- 
    139   !!   flo_dom               : initialization of floats 
     
    4440CONTAINS 
    4541 
    46    SUBROUTINE flo_dom 
     42   SUBROUTINE flo_dom( Kmm ) 
    4743      !! --------------------------------------------------------------------- 
    4844      !!                  ***  ROUTINE flo_dom  *** 
     
    5349      !!               the longitude (degree) and the depth (m). 
    5450      !!----------------------------------------------------------------------       
     51      INTEGER, INTENT(in) ::  Kmm    ! ocean time level index 
     52      ! 
    5553      INTEGER            ::   jfl    ! dummy loop   
    5654      INTEGER            ::   inum   ! logical unit for file read 
     
    9492                CALL flo_add_new_ariane_floats(jpnrstflo+1,jpnfl)  
    9593            ELSE                 !Add new floats with long/lat convention 
    96                 CALL flo_add_new_floats(jpnrstflo+1,jpnfl) 
     94                CALL flo_add_new_floats(Kmm,jpnrstflo+1,jpnfl) 
    9795            ENDIF 
    9896         ENDIF 
     
    106104            CALL flo_add_new_ariane_floats(1,jpnfl) 
    107105         ELSE                      !Add new floats with long/lat convention 
    108             CALL flo_add_new_floats(1,jpnfl) 
     106            CALL flo_add_new_floats(Kmm,1,jpnfl) 
    109107         ENDIF 
    110108 
     
    113111   END SUBROUTINE flo_dom 
    114112 
    115    SUBROUTINE flo_add_new_floats(kfl_start, kfl_end) 
     113   SUBROUTINE flo_add_new_floats(Kmm, kfl_start, kfl_end) 
    116114      !! ------------------------------------------------------------- 
    117115      !!                 ***  SUBROUTINE add_new_arianefloats  *** 
     
    128126      !! ** Method  :  
    129127      !!---------------------------------------------------------------------- 
     128      INTEGER, INTENT(in) :: Kmm 
    130129      INTEGER, INTENT(in) :: kfl_start, kfl_end 
    131130      !! 
     
    156155         ikmfl(jfl) = 0 
    157156# if   defined key_mpp_mpi 
    158          DO ji = MAX(nldi,2), nlei 
    159             DO jj = MAX(nldj,2), nlej   ! NO vector opt. 
     157         DO ji = MAX(Nis0,2), Nie0 
     158            DO jj = MAX(Njs0,2), Nje0   ! NO vector opt. 
    160159# else          
    161160         DO ji = 2, jpi 
     
    174173                  ihtest(jfl) = ihtest(jfl)+1 
    175174                  DO jk = 1, jpk-1 
    176                      IF( (gdepw_n(ji,jj,jk) <= flzz(jfl)) .AND. (gdepw_n(ji,jj,jk+1) > flzz(jfl)) ) THEN 
     175                     IF( (gdepw(ji,jj,jk,Kmm) <= flzz(jfl)) .AND. (gdepw(ji,jj,jk+1,Kmm) > flzz(jfl)) ) THEN 
    177176                        ikmfl(jfl) = jk 
    178177                        ivtest(jfl) = ivtest(jfl) + 1 
     
    236235            zgifl(jfl)= (iimfl(jfl)-0.5) + zdxab/e1u(iimfl(jfl)-1,ijmfl(jfl)) + (mig(1)-1) 
    237236            zgjfl(jfl)= (ijmfl(jfl)-0.5) + zdyad/e2v(iimfl(jfl),ijmfl(jfl)-1) + (mjg(1)-1) 
    238             zgkfl(jfl) = (( gdepw_n(iimfl(jfl),ijmfl(jfl),ikmfl(jfl)+1) - flzz(jfl) )* ikmfl(jfl))   & 
    239                &                 / (  gdepw_n(iimfl(jfl),ijmfl(jfl),ikmfl(jfl)+1)                              & 
    240                &                    - gdepw_n(iimfl(jfl),ijmfl(jfl),ikmfl(jfl) ) )                             & 
    241                &                 + (( flzz(jfl)-gdepw_n(iimfl(jfl),ijmfl(jfl),ikmfl(jfl)) ) *(ikmfl(jfl)+1))   & 
    242                &                 / (  gdepw_n(iimfl(jfl),ijmfl(jfl),ikmfl(jfl)+1)                              & 
    243                &                    - gdepw_n(iimfl(jfl),ijmfl(jfl),ikmfl(jfl)) ) 
     237            zgkfl(jfl) = (( gdepw(iimfl(jfl),ijmfl(jfl),ikmfl(jfl)+1,Kmm) - flzz(jfl) )* ikmfl(jfl))   & 
     238               &                 / (  gdepw(iimfl(jfl),ijmfl(jfl),ikmfl(jfl)+1,Kmm)                              & 
     239               &                    - gdepw(iimfl(jfl),ijmfl(jfl),ikmfl(jfl) ,Kmm) )                             & 
     240               &                 + (( flzz(jfl)-gdepw(iimfl(jfl),ijmfl(jfl),ikmfl(jfl),Kmm) ) *(ikmfl(jfl)+1))   & 
     241               &                 / (  gdepw(iimfl(jfl),ijmfl(jfl),ikmfl(jfl)+1,Kmm)                              & 
     242               &                    - gdepw(iimfl(jfl),ijmfl(jfl),ikmfl(jfl),Kmm) ) 
    244243         ELSE 
    245244            zgifl(jfl) = 0.e0 
     
    437436      IF( ABS(dlx) > 1.0_wp ) dlx = 1.0_wp 
    438437      ! 
    439       dld = ATAN(DSQRT( 1._wp * ( 1._wp-dlx )/( 1._wp+dlx ) )) * 222.24_wp / dls 
     438      dld = ATAN(SQRT( 1._wp * ( 1._wp-dlx )/( 1._wp+dlx ) )) * 222.24_wp / dls 
    440439      flo_dstnce = dld * 1000._wp 
    441440      ! 
     
    455454   END FUNCTION flo_dom_alloc 
    456455 
    457  
    458 #else 
    459    !!---------------------------------------------------------------------- 
    460    !!   Default option                                         Empty module 
    461    !!---------------------------------------------------------------------- 
    462 CONTAINS 
    463    SUBROUTINE flo_dom                 ! Empty routine 
    464          WRITE(*,*) 'flo_dom: : You should not have seen this print! error?' 
    465    END SUBROUTINE flo_dom 
    466 #endif 
    467  
    468456   !!====================================================================== 
    469457END MODULE flodom 
Note: See TracChangeset for help on using the changeset viewer.