Changeset 11822 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/FLO/floats.F90
- Timestamp:
- 2019-10-29T11:41:36+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/FLO/floats.F90
r10970 r11822 7 7 !! NEMO 1.0 ! 2002-06 (A. Bozec) F90, Free form and module 8 8 !!---------------------------------------------------------------------- 9 #if defined key_floats 10 !!---------------------------------------------------------------------- 11 !! 'key_floats' float trajectories 9 !! 12 10 !!---------------------------------------------------------------------- 13 11 !! flo_stp : float trajectories computation … … 30 28 31 29 PUBLIC flo_stp ! routine called by step.F90 32 PUBLIC flo_init ! routine called by opa.F9030 PUBLIC flo_init ! routine called by nemogcm.F90 33 31 34 32 !!---------------------------------------------------------------------- … … 84 82 INTEGER :: ios ! Local integer output status for namelist read 85 83 ! 86 NAMELIST/namflo/ jpnfl, jpnnewflo, ln_rstflo, nn_writefl, nn_stockfl, ln_argo, ln_flork4, ln_ariane, ln_flo_ascii84 NAMELIST/namflo/ ln_floats, jpnfl, jpnnewflo, ln_rstflo, nn_writefl, nn_stockfl, ln_argo, ln_flork4, ln_ariane, ln_flo_ascii 87 85 !!--------------------------------------------------------------------- 88 86 ! … … 93 91 REWIND( numnam_ref ) ! Namelist namflo in reference namelist : Floats 94 92 READ ( numnam_ref, namflo, IOSTAT = ios, ERR = 901) 95 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namflo in reference namelist' , lwp)93 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namflo in reference namelist' ) 96 94 97 95 REWIND( numnam_cfg ) ! Namelist namflo in configuration namelist : Floats 98 96 READ ( numnam_cfg, namflo, IOSTAT = ios, ERR = 902 ) 99 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namflo in configuration namelist' , lwp)97 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namflo in configuration namelist' ) 100 98 IF(lwm) WRITE ( numond, namflo ) 101 99 ! … … 103 101 WRITE(numout,*) 104 102 WRITE(numout,*) ' Namelist floats :' 105 WRITE(numout,*) ' number of floats jpnfl = ', jpnfl 106 WRITE(numout,*) ' number of new floats jpnflnewflo = ', jpnnewflo 107 WRITE(numout,*) ' restart ln_rstflo = ', ln_rstflo 108 WRITE(numout,*) ' frequency of float output file nn_writefl = ', nn_writefl 109 WRITE(numout,*) ' frequency of float restart file nn_stockfl = ', nn_stockfl 110 WRITE(numout,*) ' Argo type floats ln_argo = ', ln_argo 111 WRITE(numout,*) ' Computation of T trajectories ln_flork4 = ', ln_flork4 112 WRITE(numout,*) ' Use of ariane convention ln_ariane = ', ln_ariane 113 WRITE(numout,*) ' ascii output (T) or netcdf output (F) ln_flo_ascii = ', ln_flo_ascii 103 WRITE(numout,*) ' Activate floats or not ln_floats = ', ln_floats 104 WRITE(numout,*) ' number of floats jpnfl = ', jpnfl 105 WRITE(numout,*) ' number of new floats jpnflnewflo = ', jpnnewflo 106 WRITE(numout,*) ' restart ln_rstflo = ', ln_rstflo 107 WRITE(numout,*) ' frequency of float output file nn_writefl = ', nn_writefl 108 WRITE(numout,*) ' frequency of float restart file nn_stockfl = ', nn_stockfl 109 WRITE(numout,*) ' Argo type floats ln_argo = ', ln_argo 110 WRITE(numout,*) ' Computation of T trajectories ln_flork4 = ', ln_flork4 111 WRITE(numout,*) ' Use of ariane convention ln_ariane = ', ln_ariane 112 WRITE(numout,*) ' ascii output (T) or netcdf output (F) ln_flo_ascii = ', ln_flo_ascii 114 113 115 114 ENDIF 116 115 ! 117 ! ! allocate floats arrays 118 IF( flo_oce_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'flo_init : unable to allocate arrays' ) 119 ! 120 ! ! allocate flodom arrays 121 IF( flo_dom_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'flo_dom : unable to allocate arrays' ) 122 ! 123 ! ! allocate flowri arrays 124 IF( flo_wri_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'flo_wri : unable to allocate arrays' ) 125 ! 126 ! ! allocate florst arrays 127 IF( flo_rst_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'flo_rst : unable to allocate arrays' ) 128 ! 129 jpnrstflo = jpnfl-jpnnewflo ! memory allocation 130 ! 131 DO jfl = 1, jpnfl ! vertical axe for netcdf IOM ouput 132 nfloat(jfl) = jfl 133 END DO 134 ! 135 CALL flo_dom( Kmm ) ! compute/read initial position of floats 136 ! 137 wb(:,:,:) = ww(:,:,:) ! set wb for computation of floats trajectories at the first time step 138 ! 116 IF( ln_floats ) THEN 117 ! ! allocate floats arrays 118 IF( flo_oce_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'flo_init : unable to allocate arrays' ) 119 ! 120 ! ! allocate flodom arrays 121 IF( flo_dom_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'flo_dom : unable to allocate arrays' ) 122 ! 123 ! ! allocate flowri arrays 124 IF( flo_wri_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'flo_wri : unable to allocate arrays' ) 125 ! 126 ! ! allocate florst arrays 127 IF( flo_rst_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'flo_rst : unable to allocate arrays' ) 128 ! 129 jpnrstflo = jpnfl-jpnnewflo ! memory allocation 130 ! 131 DO jfl = 1, jpnfl ! vertical axe for netcdf IOM ouput 132 nfloat(jfl) = jfl 133 END DO 134 ! 135 CALL flo_dom( Kmm ) ! compute/read initial position of floats 136 ! 137 wb(:,:,:) = ww(:,:,:) ! set wb for computation of floats trajectories at the first time step 138 ! 139 ENDIF 139 140 END SUBROUTINE flo_init 140 141 # else142 !!----------------------------------------------------------------------143 !! Default option : Empty module144 !!----------------------------------------------------------------------145 CONTAINS146 SUBROUTINE flo_stp( kt, Kbb, Kmm ) ! Empty routine147 IMPLICIT NONE148 INTEGER, INTENT( in ) :: kt149 INTEGER, INTENT( in ) :: Kbb, Kmm150 WRITE(*,*) 'flo_stp: You should not have seen this print! error?', kt151 END SUBROUTINE flo_stp152 SUBROUTINE flo_init( Kmm ) ! Empty routine153 IMPLICIT NONE154 INTEGER, INTENT( in ) :: Kmm155 END SUBROUTINE flo_init156 #endif157 141 158 142 !!======================================================================
Note: See TracChangeset
for help on using the changeset viewer.