Changeset 2618 for branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/FLO
- Timestamp:
- 2011-02-26T13:31:38+01:00 (13 years ago)
- 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 12 12 !!---------------------------------------------------------------------- 13 13 USE par_oce ! ocean parameters 14 USE in_out_manager ! I/O manager 15 USE lib_mpp ! MPP library 14 16 15 17 IMPLICIT NONE 16 18 PUBLIC 17 19 18 PUBLIC flo_oce_alloc ! Routine called in nemogcm.F9020 PUBLIC flo_oce_alloc ! Routine called in floats.F90 19 21 20 22 LOGICAL, PUBLIC, PARAMETER :: lk_floats = .TRUE. !: float flag … … 44 46 45 47 !!---------------------------------------------------------------------- 48 !! NEMO/OPA 4.0 , NEMO Consortium (2011) 49 !! $Id$ 50 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 51 !!---------------------------------------------------------------------- 46 52 CONTAINS 47 53 48 FUNCTION flo_oce_alloc()54 INTEGER FUNCTION flo_oce_alloc() 49 55 !!---------------------------------------------------------------------- 50 INTEGER :: flo_oce_alloc56 !! *** FUNCTION flo_oce_alloc *** 51 57 !!---------------------------------------------------------------------- 58 ALLOCATE( wb(jpi,jpj,jpk), Stat=flo_oce_alloc ) 52 59 ! 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.') 55 62 END FUNCTION flo_oce_alloc 56 63 … … 62 69 #endif 63 70 64 !!----------------------------------------------------------------------65 !! NEMO/OPA 3.3 , NEMO Consortium (2010)66 !! $Id$67 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)68 71 !!====================================================================== 69 72 END MODULE flo_oce -
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/FLO/floats.F90
r2528 r2618 50 50 !!---------------------------------------------------------------------- 51 51 ! 52 IF( kt == nit000 ) THEN53 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 floats58 59 wb(:,:,:) = wn(:,:,:) ! set wb for computation of floats trajectories at the first time step60 ENDIF61 !62 52 IF( ln_flork4 ) THEN ; CALL flo_4rk( kt ) ! Trajectories using a 4th order Runge Kutta scheme 63 53 ELSE ; CALL flo_blk( kt ) ! Trajectories using Blanke' algorithme … … 83 73 !!--------------------------------------------------------------------- 84 74 ! 75 IF(lwp) WRITE(numout,*) 76 IF(lwp) WRITE(numout,*) 'flo_stp : call floats routine ' 77 IF(lwp) WRITE(numout,*) '~~~~~~~' 78 85 79 REWIND( numnam ) ! Namelist namflo : floats 86 80 READ ( numnam, namflo ) … … 95 89 WRITE(numout,*) ' Computation of T trajectories ln_flork4 = ', ln_flork4 96 90 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 97 101 ! 98 102 END SUBROUTINE flo_init -
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/FLO/floblk.F90
r2528 r2618 14 14 USE dom_oce ! ocean space and time domain 15 15 USE phycst ! physical constants 16 USE obc_par ! open boundary condition parameters 16 17 USE in_out_manager ! I/O manager 17 18 USE lib_mpp ! distribued memory computing library -
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/FLO/flowri.F90
r2613 r2618 23 23 PRIVATE 24 24 25 PUBLIC flo_wri 26 PUBLIC flo_wri_alloc ! routine called by nemogcm.F9025 PUBLIC flo_wri ! routine called by floats.F90 26 PUBLIC flo_wri_alloc ! routine called by floats.F90 27 27 28 28 INTEGER :: jfl ! number of floats … … 43 43 CONTAINS 44 44 45 FUNCTION flo_wri_alloc45 INTEGER FUNCTION flo_wri_alloc 46 46 !!------------------------------------------------------------------- 47 !! *** ROUTINEflo_wri_alloc ***47 !! *** FUNCTION flo_wri_alloc *** 48 48 !!------------------------------------------------------------------- 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) 53 50 ! 54 51 IF( lk_mpp ) CALL mpp_sum ( flo_wri_alloc ) 55 52 IF( flo_wri_alloc /= 0 ) CALL ctl_warn('flo_wri_alloc: failed to allocate arrays.') 56 !57 53 END FUNCTION flo_wri_alloc 58 54 … … 75 71 INTEGER :: ic, jc , jpn 76 72 INTEGER, DIMENSION ( jpnij ) :: iproc 77 REAL(wp) :: zafl, zbfl,zcfl,zdtj73 REAL(wp) :: zafl, zbfl, zcfl, zdtj 78 74 REAL(wp) :: zxxu, zxxu_01,zxxu_10, zxxu_11 79 75 !!--------------------------------------------------------------------- 80 76 81 IF( kt == nit000 .OR. MOD( kt,nn_writefl) == 0 ) THEN77 IF( kt == nit000 .OR. MOD( kt,nn_writefl) == 0 ) THEN 82 78 83 79 ! header of output floats file
Note: See TracChangeset
for help on using the changeset viewer.