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 11390 for NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src – NEMO

Ignore:
Timestamp:
2019-08-02T10:43:44+02:00 (5 years ago)
Author:
girrmann
Message:

dev_r10984_HPC-13 : merge DYN with BDY @11389, see #2308

Location:
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/ICE/icecor.F90

    r11381 r11390  
    7878      !                             !----------------------------------------------------- 
    7979      at_i(:,:) = SUM( a_i(:,:,:), dim=3 ) 
    80       DO jl  = 1, jpl 
     80      DO jl = 1, jpl 
    8181         WHERE( at_i(:,:) > rn_amax_2d(:,:) )   a_i(:,:,jl) = a_i(:,:,jl) * rn_amax_2d(:,:) / at_i(:,:) 
    8282      END DO 
     
    125125      CASE( 1 )                        !--- dyn trend diagnostics 
    126126         ! 
    127 !!gm   here I think the number of ice cat is too small to use a SUM instruction... 
    128          DO jj = 1, jpj 
    129             DO ji = 1, jpi             
    130                !                 ! heat content variation (W.m-2) 
    131                diag_heat(ji,jj) = - (  SUM( e_i(ji,jj,1:nlay_i,:) - e_i_b(ji,jj,1:nlay_i,:) )    &  
    132                   &                  + SUM( e_s(ji,jj,1:nlay_s,:) - e_s_b(ji,jj,1:nlay_s,:) )  ) * r1_rdtice 
    133                !                 ! salt, volume 
    134                diag_sice(ji,jj) = SUM( sv_i(ji,jj,:) - sv_i_b(ji,jj,:) ) * rhoi * r1_rdtice 
    135                diag_vice(ji,jj) = SUM( v_i (ji,jj,:) - v_i_b (ji,jj,:) ) * rhoi * r1_rdtice 
    136                diag_vsnw(ji,jj) = SUM( v_s (ji,jj,:) - v_s_b (ji,jj,:) ) * rhos * r1_rdtice 
    137             END DO 
    138          END DO 
     127         IF( ln_icediachk .OR. iom_use('hfxdhc') ) THEN 
     128            diag_heat(:,:) = - SUM(SUM( e_i (:,:,1:nlay_i,:) - e_i_b (:,:,1:nlay_i,:), dim=4 ), dim=3 ) * r1_rdtice &      ! W.m-2 
     129               &             - SUM(SUM( e_s (:,:,1:nlay_s,:) - e_s_b (:,:,1:nlay_s,:), dim=4 ), dim=3 ) * r1_rdtice 
     130            diag_sice(:,:) =   SUM(     sv_i(:,:,:)          - sv_i_b(:,:,:)                  , dim=3 ) * r1_rdtice * rhoi 
     131            diag_vice(:,:) =   SUM(     v_i (:,:,:)          - v_i_b (:,:,:)                  , dim=3 ) * r1_rdtice * rhoi 
     132            diag_vsnw(:,:) =   SUM(     v_s (:,:,:)          - v_s_b (:,:,:)                  , dim=3 ) * r1_rdtice * rhos 
     133         ENDIF 
    139134         !                       ! concentration tendency (dynamics) 
    140135         IF( iom_use('afxdyn') .OR. iom_use('afxthd') .OR. iom_use('afxtot') ) THEN  
     
    147142         oa_i(:,:,:) = oa_i(:,:,:) + a_i(:,:,:) * rdt_ice   ! ice natural aging incrementation 
    148143         ! 
    149 !!gm   here I think the number of ice cat is too small to use a SUM instruction... 
    150          DO jj = 1, jpj 
    151             DO ji = 1, jpi             
    152                !                 ! heat content variation (W.m-2) 
    153                diag_heat(ji,jj) = diag_heat(ji,jj) - (  SUM( e_i(ji,jj,1:nlay_i,:) - e_i_b(ji,jj,1:nlay_i,:) )    &  
    154                   &                                   + SUM( e_s(ji,jj,1:nlay_s,:) - e_s_b(ji,jj,1:nlay_s,:) )  ) * r1_rdtice 
    155                !                 ! salt, volume 
    156                diag_sice(ji,jj) = diag_sice(ji,jj) + SUM( sv_i(ji,jj,:) - sv_i_b(ji,jj,:) ) * rhoi * r1_rdtice 
    157                diag_vice(ji,jj) = diag_vice(ji,jj) + SUM( v_i (ji,jj,:) - v_i_b (ji,jj,:) ) * rhoi * r1_rdtice 
    158                diag_vsnw(ji,jj) = diag_vsnw(ji,jj) + SUM( v_s (ji,jj,:) - v_s_b (ji,jj,:) ) * rhos * r1_rdtice 
    159             END DO 
    160          END DO 
     144         IF( ln_icediachk .OR. iom_use('hfxdhc') ) THEN 
     145            diag_heat(:,:) = diag_heat(:,:) & 
     146               &             - SUM(SUM( e_i (:,:,1:nlay_i,:) - e_i_b (:,:,1:nlay_i,:), dim=4 ), dim=3 ) * r1_rdtice & 
     147               &             - SUM(SUM( e_s (:,:,1:nlay_s,:) - e_s_b (:,:,1:nlay_s,:), dim=4 ), dim=3 ) * r1_rdtice 
     148            diag_sice(:,:) = diag_sice(:,:) & 
     149               &             + SUM(     sv_i(:,:,:)          - sv_i_b(:,:,:)                  , dim=3 ) * r1_rdtice * rhoi 
     150            diag_vice(:,:) = diag_vice(:,:) & 
     151               &             + SUM(     v_i (:,:,:)          - v_i_b (:,:,:)                  , dim=3 ) * r1_rdtice * rhoi 
     152            diag_vsnw(:,:) = diag_vsnw(:,:) & 
     153               &             + SUM(     v_s (:,:,:)          - v_s_b (:,:,:)                  , dim=3 ) * r1_rdtice * rhos 
     154            CALL iom_put ( 'hfxdhc' , diag_heat )  
     155         ENDIF 
    161156         !                       ! concentration tendency (total + thermo) 
    162157         IF( iom_use('afxdyn') .OR. iom_use('afxthd') .OR. iom_use('afxtot') ) THEN  
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/ICE/icectl.F90

    r10994 r11390  
    157157            ! check conservation issues 
    158158            IF ( ABS( zv ) > zv_sill )   WRITE(numout,*) 'violation volume [Mt/day]     (',cd_routine,') = ',zv 
    159             IF ( ABS( zs ) > zs_sill )   WRITE(numout,*) 'violation saline [psu*Mt/day] (',cd_routine,') = ',zs 
     159            IF ( ABS( zs ) > zs_sill )   WRITE(numout,*) 'violation saline [Mkg/day]    (',cd_routine,') = ',zs 
    160160            IF ( ABS( zt ) > zt_sill )   WRITE(numout,*) 'violation enthalpy [GW]       (',cd_routine,') = ',zt 
    161161            ! check maximum ice concentration 
     
    218218      IF(lwp) THEN 
    219219         IF( ABS( zvfx ) > zv_sill )   WRITE(numout,*) 'violation vfx  [Mt/day]       (',cd_routine,') = ',zvfx 
    220          IF( ABS( zsfx ) > zs_sill )   WRITE(numout,*) 'violation sfx  [psu*Mt/day]   (',cd_routine,') = ',zsfx 
     220         IF( ABS( zsfx ) > zs_sill )   WRITE(numout,*) 'violation sfx  [Mkg/day]      (',cd_routine,') = ',zsfx 
    221221         !!IF( ABS( zhfx ) > zt_sill )   WRITE(numout,*) 'violation hfx  [GW]           (',cd_routine,') = ',zhfx 
    222222      ENDIF 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/ICE/icerst.F90

    r11358 r11390  
    123123      CALL iom_rstput( iter, nitrst, numriw, 'v_s' , v_s  ) 
    124124      CALL iom_rstput( iter, nitrst, numriw, 'sv_i', sv_i ) 
    125       CALL iom_rstput( iter, nitrst, numriw, 'oa_i', oa_i ) 
    126125      CALL iom_rstput( iter, nitrst, numriw, 'a_i' , a_i  ) 
    127126      CALL iom_rstput( iter, nitrst, numriw, 't_su', t_su ) 
     127      ! ice age 
     128      CALL iom_rstput( iter, nitrst, numriw, 'oa_i', oa_i ) 
    128129      ! Melt ponds 
    129130      CALL iom_rstput( iter, nitrst, numriw, 'a_ip', a_ip ) 
     
    144145      END DO 
    145146      ! ice velocity 
    146       CALL iom_rstput( iter, nitrst, numriw, 'u_ice', u_ice ) ! u_ice 
    147       CALL iom_rstput( iter, nitrst, numriw, 'v_ice', v_ice ) ! v_ice 
     147      CALL iom_rstput( iter, nitrst, numriw, 'u_ice', u_ice ) 
     148      CALL iom_rstput( iter, nitrst, numriw, 'v_ice', v_ice ) 
    148149      ! fields needed for Met Office (Jules) coupling 
    149150      IF( ln_cpl ) THEN 
     
    171172      INTEGER           ::   jk 
    172173      LOGICAL           ::   llok 
    173       INTEGER           ::   id1            ! local integer 
     174      INTEGER           ::   id1, id2            ! local integer 
    174175      CHARACTER(len=25) ::   znam 
    175176      CHARACTER(len=2)  ::   zchar, zchar1 
     
    205206      CALL iom_get( numrir, jpdom_autoglo, 'v_s' , v_s  ) 
    206207      CALL iom_get( numrir, jpdom_autoglo, 'sv_i', sv_i ) 
    207       CALL iom_get( numrir, jpdom_autoglo, 'oa_i', oa_i ) 
    208208      CALL iom_get( numrir, jpdom_autoglo, 'a_i' , a_i  ) 
    209209      CALL iom_get( numrir, jpdom_autoglo, 't_su', t_su ) 
     210      ! ice age 
     211      id1 = iom_varid( numrir, 'oa_i' , ldstop = .FALSE. ) 
     212      IF( id1 > 0 ) THEN                       ! fields exist 
     213         CALL iom_get( numrir, jpdom_autoglo, 'oa_i', oa_i ) 
     214      ELSE                                     ! start from rest 
     215         IF(lwp) WRITE(numout,*) '   ==>>   previous run without ice age output then set it to zero' 
     216         oa_i(:,:,:) = 0._wp 
     217      ENDIF 
    210218      ! Melt ponds 
    211       id1 = iom_varid( numrir, 'a_ip' , ldstop = .FALSE. ) 
    212       IF( id1 > 0 ) THEN                       ! fields exist (melt ponds) 
     219      id2 = iom_varid( numrir, 'a_ip' , ldstop = .FALSE. ) 
     220      IF( id2 > 0 ) THEN                       ! fields exist 
    213221         CALL iom_get( numrir, jpdom_autoglo, 'a_ip' , a_ip ) 
    214222         CALL iom_get( numrir, jpdom_autoglo, 'v_ip' , v_ip ) 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/ICE/iceupdate.F90

    r11381 r11390  
    280280      IF( iom_use('hfxcndtop'  ) )   CALL iom_put( 'hfxcndtop'  , SUM( qcn_ice_top * a_i_b, dim=3 ) )   ! Surface conduction flux 
    281281 
    282       ! diags 
    283       CALL iom_put ('hfxdhc'     , diag_heat   )   ! Heat content variation in snow and ice  
    284       ! 
    285282      ! controls 
    286283      !--------- 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/DIA/diadct.F90

    r11381 r11390  
    1111   !!            3.4  ! 09/2011 (C Bricaud) 
    1212   !!---------------------------------------------------------------------- 
    13    !! 
     13   !! does not work with agrif 
     14#if ! defined key_agrif 
    1415   !!---------------------------------------------------------------------- 
    1516   !!   dia_dct      :  Compute the transport through a sec. 
     
    4243 
    4344   !                         !!** namelist variables ** 
    44    LOGICAL, PUBLIC ::   ln_diadct     ! Calculate transport thru a section or not 
    45    INTEGER         ::   nn_dct        ! Frequency of computation 
    46    INTEGER         ::   nn_dctwri     ! Frequency of output 
    47    INTEGER         ::   nn_secdebug   ! Number of the section to debug 
     45   LOGICAL, PUBLIC ::   ln_diadct     !: Calculate transport thru a section or not 
     46   INTEGER         ::   nn_dct        !  Frequency of computation 
     47   INTEGER         ::   nn_dctwri     !  Frequency of output 
     48   INTEGER         ::   nn_secdebug   !  Number of the section to debug 
    4849    
    4950   INTEGER, PARAMETER :: nb_class_max  = 10 
     
    12351236   END FUNCTION interp 
    12361237 
     1238#else 
     1239   !!---------------------------------------------------------------------- 
     1240   !!   Dummy module                                              
     1241   !!---------------------------------------------------------------------- 
     1242   LOGICAL, PUBLIC ::   ln_diadct = .FALSE. 
     1243CONTAINS 
     1244   SUBROUTINE dia_dct_init 
     1245      IMPLICIT NONE 
     1246   END SUBROUTINE dia_dct_init 
     1247   SUBROUTINE dia_dct( kt ) 
     1248      IMPLICIT NONE 
     1249      INTEGER, INTENT(in) ::   kt 
     1250   END SUBROUTINE dia_dct 
     1251   ! 
     1252#endif 
     1253 
    12371254   !!====================================================================== 
    12381255END MODULE diadct 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/FLO/flo4rk.F90

    r10068 r11390  
    44   !! Ocean floats :   trajectory computation using a 4th order Runge-Kutta 
    55   !!====================================================================== 
    6 #if   defined key_floats 
    7    !!---------------------------------------------------------------------- 
    8    !!   'key_floats'                                     float trajectories 
     6   !! 
    97   !!---------------------------------------------------------------------- 
    108   !!   flo_4rk        : Compute the geographical position of floats 
     
    445443   END SUBROUTINE flo_interp 
    446444 
    447 #  else 
    448    !!---------------------------------------------------------------------- 
    449    !!   No floats                                              Dummy module 
    450    !!---------------------------------------------------------------------- 
    451 #endif 
    452     
    453445   !!====================================================================== 
    454446END MODULE flo4rk 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/FLO/flo_oce.F90

    r10425 r11390  
    66   !! History :   OPA  ! 1999-10  (CLIPPER projet) 
    77   !!   NEMO      1.0  ! 2002-11  (G. Madec, A. Bozec)  F90: Free form and module 
    8    !!---------------------------------------------------------------------- 
    9 #if   defined   key_floats 
    10    !!---------------------------------------------------------------------- 
    11    !!   'key_floats'                                        drifting floats 
    128   !!---------------------------------------------------------------------- 
    139   USE par_oce         ! ocean parameters 
     
    2016   PUBLIC   flo_oce_alloc   ! Routine called in floats.F90 
    2117 
    22    LOGICAL, PUBLIC, PARAMETER ::   lk_floats = .TRUE.    !: float flag 
    23  
    2418   !! float parameters 
    2519   !! ---------------- 
     20   LOGICAL, PUBLIC ::   ln_floats   !: Activate floats or not 
    2621   INTEGER, PUBLIC ::   jpnfl       !: total number of floats during the run 
    2722   INTEGER, PUBLIC ::   jpnnewflo   !: number of floats added in a new run 
     
    6863   END FUNCTION flo_oce_alloc 
    6964 
    70 #else 
    71    !!---------------------------------------------------------------------- 
    72    !!   Default option :                                 NO drifting floats 
    73    !!---------------------------------------------------------------------- 
    74    LOGICAL, PUBLIC, PARAMETER ::   lk_floats = .FALSE.   !: float flag 
    75 #endif 
    76  
    7765   !!====================================================================== 
    7866END MODULE flo_oce 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/FLO/floats.F90

    r11317 r11390  
    77   !!   NEMO     1.0  ! 2002-06  (A. Bozec)  F90, Free form and module 
    88   !!---------------------------------------------------------------------- 
    9 #if   defined   key_floats 
    10    !!---------------------------------------------------------------------- 
    11    !!   'key_floats'                                     float trajectories 
     9   !! 
    1210   !!---------------------------------------------------------------------- 
    1311   !!   flo_stp   : float trajectories computation 
     
    3028 
    3129   PUBLIC   flo_stp    ! routine called by step.F90 
    32    PUBLIC   flo_init   ! routine called by opa.F90 
     30   PUBLIC   flo_init   ! routine called by nemogcm.F90 
    3331 
    3432   !!---------------------------------------------------------------------- 
     
    8179      INTEGER ::   ios                 ! Local integer output status for namelist read 
    8280      ! 
    83       NAMELIST/namflo/ jpnfl, jpnnewflo, ln_rstflo, nn_writefl, nn_stockfl, ln_argo, ln_flork4, ln_ariane, ln_flo_ascii 
     81      NAMELIST/namflo/ ln_floats, jpnfl, jpnnewflo, ln_rstflo, nn_writefl, nn_stockfl, ln_argo, ln_flork4, ln_ariane, ln_flo_ascii 
    8482      !!--------------------------------------------------------------------- 
    8583      ! 
     
    10098         WRITE(numout,*) 
    10199         WRITE(numout,*) '         Namelist floats :' 
    102          WRITE(numout,*) '            number of floats                      jpnfl        = ', jpnfl 
    103          WRITE(numout,*) '            number of new floats                  jpnflnewflo  = ', jpnnewflo 
    104          WRITE(numout,*) '            restart                               ln_rstflo    = ', ln_rstflo 
    105          WRITE(numout,*) '            frequency of float output file        nn_writefl   = ', nn_writefl 
    106          WRITE(numout,*) '            frequency of float restart file       nn_stockfl   = ', nn_stockfl 
    107          WRITE(numout,*) '            Argo type floats                      ln_argo      = ', ln_argo 
    108          WRITE(numout,*) '            Computation of T trajectories         ln_flork4    = ', ln_flork4 
    109          WRITE(numout,*) '            Use of ariane convention              ln_ariane    = ', ln_ariane 
    110          WRITE(numout,*) '            ascii output (T) or netcdf output (F) ln_flo_ascii = ', ln_flo_ascii 
     100         WRITE(numout,*) '            Activate floats or not                   ln_floats    = ', ln_floats 
     101         WRITE(numout,*) '               number of floats                      jpnfl        = ', jpnfl 
     102         WRITE(numout,*) '               number of new floats                  jpnflnewflo  = ', jpnnewflo 
     103         WRITE(numout,*) '               restart                               ln_rstflo    = ', ln_rstflo 
     104         WRITE(numout,*) '               frequency of float output file        nn_writefl   = ', nn_writefl 
     105         WRITE(numout,*) '               frequency of float restart file       nn_stockfl   = ', nn_stockfl 
     106         WRITE(numout,*) '               Argo type floats                      ln_argo      = ', ln_argo 
     107         WRITE(numout,*) '               Computation of T trajectories         ln_flork4    = ', ln_flork4 
     108         WRITE(numout,*) '               Use of ariane convention              ln_ariane    = ', ln_ariane 
     109         WRITE(numout,*) '               ascii output (T) or netcdf output (F) ln_flo_ascii = ', ln_flo_ascii 
    111110 
    112111      ENDIF 
    113112      ! 
    114       !                             ! allocate floats arrays 
    115       IF( flo_oce_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'flo_init : unable to allocate arrays' ) 
    116       ! 
    117       !                             ! allocate flodom arrays 
    118       IF( flo_dom_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'flo_dom : unable to allocate arrays' ) 
    119       ! 
    120       !                             ! allocate flowri arrays 
    121       IF( flo_wri_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'flo_wri : unable to allocate arrays' ) 
    122       ! 
    123       !                             ! allocate florst arrays 
    124       IF( flo_rst_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'flo_rst : unable to allocate arrays' ) 
    125       ! 
    126       jpnrstflo = jpnfl-jpnnewflo   ! memory allocation  
    127       ! 
    128       DO jfl = 1, jpnfl             ! vertical axe for netcdf IOM ouput 
    129          nfloat(jfl) = jfl  
    130       END DO 
    131       ! 
    132       CALL flo_dom                  ! compute/read initial position of floats 
    133       ! 
    134       wb(:,:,:) = wn(:,:,:)         ! set wb for computation of floats trajectories at the first time step 
     113      IF( ln_floats ) THEN 
     114         !                             ! allocate floats arrays 
     115         IF( flo_oce_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'flo_init : unable to allocate arrays' ) 
     116         ! 
     117         !                             ! allocate flodom arrays 
     118         IF( flo_dom_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'flo_dom : unable to allocate arrays' ) 
     119         ! 
     120         !                             ! allocate flowri arrays 
     121         IF( flo_wri_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'flo_wri : unable to allocate arrays' ) 
     122         ! 
     123         !                             ! allocate florst arrays 
     124         IF( flo_rst_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'flo_rst : unable to allocate arrays' ) 
     125         ! 
     126         jpnrstflo = jpnfl-jpnnewflo   ! memory allocation  
     127         ! 
     128         DO jfl = 1, jpnfl             ! vertical axe for netcdf IOM ouput 
     129            nfloat(jfl) = jfl  
     130         END DO 
     131         ! 
     132         CALL flo_dom                  ! compute/read initial position of floats 
     133         ! 
     134         wb(:,:,:) = wn(:,:,:)         ! set wb for computation of floats trajectories at the first time step 
     135         ! 
     136      ENDIF 
    135137      ! 
    136138   END SUBROUTINE flo_init 
    137139 
    138 #  else 
    139    !!---------------------------------------------------------------------- 
    140    !!   Default option :                                       Empty module 
    141    !!---------------------------------------------------------------------- 
    142 CONTAINS 
    143    SUBROUTINE flo_stp( kt )          ! Empty routine 
    144       IMPLICIT NONE 
    145       INTEGER, INTENT( in ) :: kt 
    146       WRITE(*,*) 'flo_stp: You should not have seen this print! error?', kt 
    147    END SUBROUTINE flo_stp 
    148    SUBROUTINE flo_init          ! Empty routine 
    149       IMPLICIT NONE 
    150    END SUBROUTINE flo_init 
    151 #endif 
    152  
    153140   !!====================================================================== 
    154141 END MODULE floats 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/FLO/floblk.F90

    r10425 r11390  
    44   !! Ocean floats :   trajectory computation 
    55   !!====================================================================== 
    6 #if   defined key_floats 
    7    !!---------------------------------------------------------------------- 
    8    !!   'key_floats'                                     float trajectories 
     6   !! 
    97   !!---------------------------------------------------------------------- 
    108   !!    flotblk     : compute float trajectories with Blanke algorithme 
     
    369367   END SUBROUTINE flo_blk 
    370368 
    371 #  else 
    372    !!---------------------------------------------------------------------- 
    373    !!   Default option                                         Empty module 
    374    !!---------------------------------------------------------------------- 
    375 CONTAINS 
    376    SUBROUTINE flo_blk                  ! Empty routine 
    377    END SUBROUTINE flo_blk  
    378 #endif 
    379     
    380369   !!====================================================================== 
    381370END MODULE floblk  
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/FLO/flodom.F90

    r10425 r11390  
    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 
     
    455451   END FUNCTION flo_dom_alloc 
    456452 
    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  
    468453   !!====================================================================== 
    469454END MODULE flodom 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/FLO/florst.F90

    r10425 r11390  
    88   !!   NEMO      1.0  !  2002-10  (A. Bozec)  F90 : Free form and module 
    99   !!             3.2  !  2010-08  (slaw, cbricaud): netcdf outputs and others  
    10    !!---------------------------------------------------------------------- 
    11 #if   defined key_floats 
    12    !!---------------------------------------------------------------------- 
    13    !!   'key_floats'                                     float trajectories 
    1410   !!---------------------------------------------------------------------- 
    1511   USE flo_oce         ! ocean drifting floats 
     
    125121   END SUBROUTINE flo_rst 
    126122 
    127 #  else 
    128    !!---------------------------------------------------------------------- 
    129    !!   Default option                                         Empty module 
    130    !!---------------------------------------------------------------------- 
    131 CONTAINS 
    132    SUBROUTINE flo_rst                 ! Empty routine 
    133    END SUBROUTINE flo_rst 
    134 #endif 
    135  
    136123   !!======================================================================= 
    137124END MODULE florst 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/FLO/flowri.F90

    r10425 r11390  
    1010   !!   NEMO      1.0  !  2002-10  (A. Bozec)  F90 : Free form and module 
    1111   !!             3.2  !  2010-08  (slaw, cbricaud): netcdf outputs and others  
    12    !!---------------------------------------------------------------------- 
    13 #if   defined key_floats 
    14    !!---------------------------------------------------------------------- 
    15    !!   'key_floats'                                     float trajectories 
    1612   !!---------------------------------------------------------------------- 
    1713   USE flo_oce         ! ocean drifting floats 
     
    179175               CALL ctl_opn( numflo, 'trajec_float', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 
    180176               irecflo = NINT( (nitend-nn_it000) / FLOAT(nn_writefl) ) 
    181                WRITE(numflo,*)cexper,no,irecflo,jpnfl,nn_writefl 
     177               WRITE(numflo,*) cexper, irecflo, jpnfl, nn_writefl 
    182178            ENDIF 
    183179 
     
    277273   END SUBROUTINE flo_wri 
    278274 
    279  
    280 #  else 
    281    !!---------------------------------------------------------------------- 
    282    !!   Default option                                         Empty module 
    283    !!---------------------------------------------------------------------- 
    284 CONTAINS 
    285    SUBROUTINE flo_wri                 ! Empty routine 
    286    END SUBROUTINE flo_wri 
    287 #endif 
    288  
    289275   !!======================================================================= 
    290276END MODULE flowri 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/IOM/iom.F90

    r11381 r11390  
    212212          CALL iom_set_axis_attr( "depthv", bounds=zw_bnds ) 
    213213          CALL iom_set_axis_attr( "depthw", bounds=zt_bnds ) 
    214           ! 
    215 # if defined key_floats 
    216214          CALL iom_set_axis_attr( "nfloat", (/ (REAL(ji,wp), ji=1,jpnfl) /) ) 
    217 # endif 
    218215# if defined key_si3 
    219216          CALL iom_set_axis_attr( "ncatice", (/ (REAL(ji,wp), ji=1,jpl) /) ) 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/LBC/lib_mpp.F90

    r11317 r11390  
    6767   PUBLIC   mpp_report 
    6868   PUBLIC   tic_tac 
     69#if ! defined key_mpp_mpi 
     70   PUBLIC MPI_Wtime 
     71#endif 
    6972    
    7073   !! * Interfaces 
     
    10591062      INTEGER                            , INTENT(  out) ::   ierror 
    10601063   END SUBROUTINE mpi_wait 
     1064 
     1065    
     1066   FUNCTION MPI_Wtime() 
     1067      REAL(wp) ::  MPI_Wtime 
     1068      MPI_Wtime = -1. 
     1069   END FUNCTION MPI_Wtime 
    10611070#endif 
    10621071 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/nemogcm.F90

    r11381 r11390  
    130130      !!---------------------------------------------------------------------- 
    131131      INTEGER ::   istp   ! time step index 
     132      REAL(wp)::   zstptiming   ! elapsed time for 1 time step 
    132133      !!---------------------------------------------------------------------- 
    133134      ! 
     
    190191         ! 
    191192         DO WHILE( istp <= nitend .AND. nstop == 0 ) 
    192 #if defined key_mpp_mpi 
     193 
    193194            ncom_stp = istp 
    194             IF ( istp == ( nit000 + 1 ) ) elapsed_time = MPI_Wtime() 
    195             IF ( istp ==         nitend ) elapsed_time = MPI_Wtime() - elapsed_time 
    196 #endif 
     195            IF( ln_timing ) THEN 
     196               zstptiming = MPI_Wtime() 
     197               IF ( istp == ( nit000 + 1 ) ) elapsed_time = zstptiming 
     198               IF ( istp ==         nitend ) elapsed_time = zstptiming - elapsed_time 
     199            ENDIF 
     200             
    197201            CALL stp        ( istp )  
    198202            istp = istp + 1 
     203 
     204            IF( lwp .AND. ln_timing )   WRITE(numtime,*) 'timing step ', istp-1, ' : ', MPI_Wtime() - zstptiming 
     205 
    199206         END DO 
    200207         ! 
     
    470477      
    471478      !                                      ! Diagnostics 
    472       IF( lk_floats    )   CALL     flo_init    ! drifting Floats 
     479                           CALL     flo_init    ! drifting Floats 
    473480      IF( ln_diacfl    )   CALL dia_cfl_init    ! Initialise CFL diagnostics 
    474481                           CALL dia_ptr_init    ! Poleward TRansports initialization 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/step.F90

    r11381 r11390  
    214214      ! diagnostics and outputs 
    215215      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    216       IF( lk_floats  )   CALL flo_stp ( kstp )        ! drifting Floats 
     216      IF( ln_floats  )   CALL flo_stp ( kstp )        ! drifting Floats 
    217217      IF( ln_diacfl  )   CALL dia_cfl ( kstp )        ! Courant number diagnostics 
    218218      IF( lk_diahth  )   CALL dia_hth ( kstp )        ! Thermocline depth (20 degres isotherm depth) 
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/OCE/timing.F90

    r11381 r11390  
    347347 
    348348      ! write output file 
     349      IF( lwriter ) WRITE(numtime,*)  
     350      IF( lwriter ) WRITE(numtime,*)  
    349351      IF( lwriter ) WRITE(numtime,*) 'Total timing (sum) :' 
    350352      IF( lwriter ) WRITE(numtime,*) '--------------------' 
Note: See TracChangeset for help on using the changeset viewer.