- Timestamp:
- 2010-10-11T18:51:54+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r2191_3partymerge2010/NEMO/OPA_SRC/DYN/dynldf.F90
r1152 r2207 32 32 PUBLIC dyn_ldf ! called by step module 33 33 34 INTEGER :: nldf = 0! type of lateral diffusion used defined from ln_dynldf_... namlist logicals)34 INTEGER :: nldf = -2 ! type of lateral diffusion used defined from ln_dynldf_... namlist logicals) 35 35 36 36 !! * Substitutions … … 69 69 CASE ( 2 ) ; CALL dyn_ldf_bilap ( kt ) ! iso-level bilaplacian 70 70 CASE ( 3 ) ; CALL dyn_ldf_bilapg ( kt ) ! s-coord. horizontal bilaplacian 71 CASE ( 4 ) ! iso-level laplacian + bilaplacian 72 CALL dyn_ldf_lap ( kt ) 73 CALL dyn_ldf_bilap ( kt ) 74 CASE ( 5 ) ! rotated laplacian + bilaplacian (s-coord) 75 CALL dyn_ldf_iso ( kt ) 76 CALL dyn_ldf_bilapg ( kt ) 71 77 ! 72 78 CASE ( -1 ) ! esopa: test all possibility with control print … … 83 89 CALL prt_ctl( tab3d_1=ua, clinfo1=' ldf3 - Ua: ', mask1=umask, & 84 90 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 91 ! 92 CASE ( -2 ) ! neither laplacian nor bilaplacian schemes used 93 IF( kt == nit000 ) THEN 94 IF(lwp) WRITE(numout,*) 95 IF(lwp) WRITE(numout,*) 'dyn_ldf : no lateral diffusion on momentum setup' 96 IF(lwp) WRITE(numout,*) '~~~~~~~ ' 97 ENDIF 85 98 END SELECT 86 99 … … 124 137 IF( ln_dynldf_lap ) ioptio = ioptio + 1 125 138 IF( ln_dynldf_bilap ) ioptio = ioptio + 1 126 IF( ioptio /= 1 ) CALL ctl_stop( ' use ONE of the 2 lap/bilap operator type ondynamics' )139 IF( ioptio < 1 ) CALL ctl_warn( ' neither laplacian nor bilaplacian operator set for dynamics' ) 127 140 ioptio = 0 128 141 IF( ln_dynldf_level ) ioptio = ioptio + 1 … … 144 157 IF ( ln_dynldf_iso ) nldf = 1 ! isoneutral ( rotation) 145 158 ENDIF 146 IF ( ln_sco ) THEN ! z-coordinate159 IF ( ln_sco ) THEN ! s-coordinate 147 160 IF ( ln_dynldf_level ) nldf = 0 ! iso-level (no rotation) 148 161 IF ( ln_dynldf_hor ) nldf = 1 ! horizontal ( rotation) … … 162 175 IF ( ln_dynldf_iso ) ierr = 2 ! isoneutral ( rotation) 163 176 ENDIF 164 IF ( ln_sco ) THEN ! z-coordinate177 IF ( ln_sco ) THEN ! s-coordinate 165 178 IF ( ln_dynldf_level ) nldf = 2 ! iso-level (no rotation) 166 179 IF ( ln_dynldf_hor ) nldf = 3 ! horizontal ( rotation) … … 169 182 ENDIF 170 183 184 IF( ln_dynldf_lap .AND. ln_dynldf_bilap ) THEN ! mixed laplacian and bilaplacian operators 185 IF ( ln_zco ) THEN ! z-coordinate 186 IF ( ln_dynldf_level ) nldf = 4 ! iso-level (no rotation) 187 IF ( ln_dynldf_hor ) nldf = 4 ! horizontal (no rotation) 188 IF ( ln_dynldf_iso ) ierr = 2 ! isoneutral ( rotation) 189 ENDIF 190 IF ( ln_zps ) THEN ! z-coordinate 191 IF ( ln_dynldf_level ) ierr = 1 ! iso-level not allowed 192 IF ( ln_dynldf_hor ) nldf = 4 ! horizontal (no rotation) 193 IF ( ln_dynldf_iso ) ierr = 2 ! isoneutral ( rotation) 194 ENDIF 195 IF ( ln_sco ) THEN ! s-coordinate 196 IF ( ln_dynldf_level ) nldf = 4 ! iso-level (no rotation) 197 IF ( ln_dynldf_hor ) nldf = 5 ! horizontal ( rotation) 198 IF ( ln_dynldf_iso ) ierr = 2 ! isoneutral ( rotation) 199 ENDIF 200 ENDIF 201 171 202 IF( lk_esopa ) nldf = -1 ! esopa test 172 203 … … 179 210 IF(lwp) THEN 180 211 WRITE(numout,*) 212 IF( nldf == -2 ) WRITE(numout,*) ' neither laplacian nor bilaplacian schemes used' 181 213 IF( nldf == -1 ) WRITE(numout,*) ' ESOPA test All scheme used' 182 214 IF( nldf == 0 ) WRITE(numout,*) ' laplacian operator' 183 IF( nldf == 1 ) WRITE(numout,*) ' Rotated laplacian operator'215 IF( nldf == 1 ) WRITE(numout,*) ' rotated laplacian operator' 184 216 IF( nldf == 2 ) WRITE(numout,*) ' bilaplacian operator' 185 IF( nldf == 3 ) WRITE(numout,*) ' Rotated bilaplacian' 217 IF( nldf == 3 ) WRITE(numout,*) ' rotated bilaplacian' 218 IF( nldf == 4 ) WRITE(numout,*) ' laplacian and bilaplacian operators' 219 IF( nldf == 5 ) WRITE(numout,*) ' rotated laplacian and bilaplacian operators' 186 220 ENDIF 187 221 !
Note: See TracChangeset
for help on using the changeset viewer.