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 2618 for branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/FLO – NEMO

Ignore:
Timestamp:
2011-02-26T13:31:38+01:00 (13 years ago)
Author:
gm
Message:

dynamic mem: #785 ; move dyn allocation from nemogcm to module when possible (continuation)

Location:
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/FLO
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/FLO/flo_oce.F90

    r2613 r2618  
    1212   !!---------------------------------------------------------------------- 
    1313   USE par_oce         ! ocean parameters 
     14   USE in_out_manager  ! I/O manager 
     15   USE lib_mpp         ! MPP library 
    1416 
    1517   IMPLICIT NONE 
    1618   PUBLIC 
    1719 
    18    PUBLIC   flo_oce_alloc   ! Routine called in nemogcm.F90 
     20   PUBLIC   flo_oce_alloc   ! Routine called in floats.F90 
    1921 
    2022   LOGICAL, PUBLIC, PARAMETER ::   lk_floats = .TRUE.    !: float flag 
     
    4446 
    4547   !!---------------------------------------------------------------------- 
     48   !! NEMO/OPA 4.0 , NEMO Consortium (2011) 
     49   !! $Id$  
     50   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     51   !!---------------------------------------------------------------------- 
    4652CONTAINS 
    4753 
    48    FUNCTION flo_oce_alloc() 
     54   INTEGER FUNCTION flo_oce_alloc() 
    4955      !!---------------------------------------------------------------------- 
    50       INTEGER :: flo_oce_alloc 
     56      !!                 ***  FUNCTION flo_oce_alloc  *** 
    5157      !!---------------------------------------------------------------------- 
     58      ALLOCATE( wb(jpi,jpj,jpk), Stat=flo_oce_alloc ) 
    5259      ! 
    53       ALLOCATE(wb(jpi,jpj,jpk), Stat=flo_oce_alloc) 
    54       ! 
     60      IF( lk_mpp             )   CALL mpp_sum ( flo_oce_alloc ) 
     61      IF( flo_oce_alloc /= 0 )   CALL ctl_warn('flo_oce_alloc: failed to allocate arrays.') 
    5562   END FUNCTION flo_oce_alloc 
    5663 
     
    6269#endif 
    6370 
    64    !!---------------------------------------------------------------------- 
    65    !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
    66    !! $Id$  
    67    !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
    6871   !!====================================================================== 
    6972END MODULE flo_oce 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/FLO/floats.F90

    r2528 r2618  
    5050      !!---------------------------------------------------------------------- 
    5151      ! 
    52       IF( kt == nit000 ) THEN 
    53          IF(lwp) WRITE(numout,*) 
    54          IF(lwp) WRITE(numout,*) 'flo_stp : call floats routine ' 
    55          IF(lwp) WRITE(numout,*) '~~~~~~~' 
    56  
    57          CALL flo_dom            ! compute/read initial position of floats 
    58  
    59          wb(:,:,:) = wn(:,:,:)   ! set wb for computation of floats trajectories at the first time step 
    60       ENDIF 
    61       ! 
    6252      IF( ln_flork4 ) THEN   ;   CALL flo_4rk( kt )        ! Trajectories using a 4th order Runge Kutta scheme 
    6353      ELSE                   ;   CALL flo_blk( kt )        ! Trajectories using Blanke' algorithme 
     
    8373      !!--------------------------------------------------------------------- 
    8474      ! 
     75      IF(lwp) WRITE(numout,*) 
     76      IF(lwp) WRITE(numout,*) 'flo_stp : call floats routine ' 
     77      IF(lwp) WRITE(numout,*) '~~~~~~~' 
     78 
    8579      REWIND( numnam )              ! Namelist namflo : floats 
    8680      READ  ( numnam, namflo ) 
     
    9589         WRITE(numout,*) '            Computation of T trajectories    ln_flork4  = ', ln_flork4 
    9690      ENDIF 
     91      ! 
     92      !                             ! allocate floats arrays 
     93      IF( flo_oce_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'flo_init : unable to allocate arrays' ) 
     94      ! 
     95      !                             ! allocate flowri arrays 
     96      IF( flo_wri_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'flo_wri : unable to allocate arrays' ) 
     97      ! 
     98      CALL flo_dom                  ! compute/read initial position of floats 
     99 
     100      wb(:,:,:) = wn(:,:,:)         ! set wb for computation of floats trajectories at the first time step 
    97101      ! 
    98102   END SUBROUTINE flo_init 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/FLO/floblk.F90

    r2528 r2618  
    1414   USE dom_oce         ! ocean space and time domain 
    1515   USE phycst          ! physical constants 
     16   USE obc_par         ! open boundary condition parameters 
    1617   USE in_out_manager  ! I/O manager 
    1718   USE lib_mpp         ! distribued memory computing library 
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/FLO/flowri.F90

    r2613 r2618  
    2323   PRIVATE 
    2424 
    25    PUBLIC   flo_wri          ! routine called by floats.F90 
    26    PUBLIC   flo_wri_alloc   ! routine called by nemogcm.F90 
     25   PUBLIC   flo_wri         ! routine called by floats.F90 
     26   PUBLIC   flo_wri_alloc   ! routine called by floats.F90 
    2727 
    2828   INTEGER ::   jfl      ! number of floats 
     
    4343CONTAINS 
    4444 
    45    FUNCTION flo_wri_alloc 
     45   INTEGER FUNCTION flo_wri_alloc 
    4646      !!------------------------------------------------------------------- 
    47       !!                ***  ROUTINE flo_wri_alloc  *** 
     47      !!                ***  FUNCTION flo_wri_alloc  *** 
    4848      !!------------------------------------------------------------------- 
    49       INTEGER :: flo_wri_alloc 
    50       !!------------------------------------------------------------------- 
    51       ! 
    52       ALLOCATE(ztemp(jpk,jpnfl), zsal(jpk,jpnfl), Stat=flo_wri_alloc) 
     49      ALLOCATE( ztemp(jpk,jpnfl) , zsal(jpk,jpnfl) , STAT=flo_wri_alloc) 
    5350      ! 
    5451      IF( lk_mpp             )   CALL mpp_sum ( flo_wri_alloc ) 
    5552      IF( flo_wri_alloc /= 0 )   CALL ctl_warn('flo_wri_alloc: failed to allocate arrays.') 
    56       ! 
    5753   END FUNCTION flo_wri_alloc 
    5854 
     
    7571      INTEGER  ::    ic, jc , jpn 
    7672      INTEGER, DIMENSION ( jpnij )  ::   iproc 
    77       REAL(wp) ::   zafl,zbfl,zcfl,zdtj 
     73      REAL(wp) ::   zafl, zbfl, zcfl, zdtj 
    7874      REAL(wp) ::   zxxu, zxxu_01,zxxu_10, zxxu_11 
    7975      !!--------------------------------------------------------------------- 
    8076       
    81       IF( kt == nit000 .OR. MOD( kt,nn_writefl)== 0 ) THEN  
     77      IF( kt == nit000 .OR. MOD( kt,nn_writefl) == 0 ) THEN  
    8278 
    8379         ! header of output floats file 
Note: See TracChangeset for help on using the changeset viewer.