Changeset 508 for trunk/NEMO/LIM_SRC/limistate.F90
- Timestamp:
- 2006-10-03T17:58:55+02:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC/limistate.F90
r474 r508 4 4 !! Initialisation of diagnostics ice variables 5 5 !!====================================================================== 6 !! History : 2.0 ! 01-04 (C. Ethe, G. Madec) Original code 7 !! ! 04-04 (S. Theetten) initialization from a file 8 !! ! 06-07 (S. Masson) IOM to read the restart 9 !!-------------------------------------------------------------------- 6 10 #if defined key_ice_lim 7 11 !!---------------------------------------------------------------------- 8 12 !! 'key_ice_lim' : LIM sea-ice model 13 !!---------------------------------------------------------------------- 9 14 !!---------------------------------------------------------------------- 10 15 !! lim_istate : Initialisation of diagnostics ice variables 11 16 !! lim_istate_init : initialization of ice state and namelist read 12 17 !!---------------------------------------------------------------------- 13 !! * Modules used14 18 USE phycst 15 19 USE ocfzpt 16 USE oce ! dynamics and tracers variables 17 USE dom_oce 20 USE oce ! dynamics and tracers variables !!gm used??? 21 USE dom_oce !!gm used??? 18 22 USE par_ice ! ice parameters 19 23 USE ice_oce ! ice variables 24 USE dom_ice 25 USE ice ! ??? 26 USE lbclnk 27 USE ice 28 USE iom 20 29 USE in_out_manager 21 USE dom_ice22 USE ice23 USE lbclnk24 30 25 31 IMPLICIT NONE 26 32 PRIVATE 27 33 28 !! * Accessibility29 34 PUBLIC lim_istate ! routine called by lim_init.F90 30 35 31 !! * Module variables 32 REAL(wp) :: & !!! ** init namelist (namiceini) ** 36 REAL(wp) :: & !!! ** init namelist (namiceini) ** 33 37 ttest = 2.0 , & ! threshold water temperature for initial sea ice 34 38 hninn = 0.5 , & ! initial snow thickness in the north … … 43 47 zone = 1.e0 44 48 !!---------------------------------------------------------------------- 45 !! LIM 2.0, UCL-LOCEAN-IPSL (200 5)49 !! LIM 2.0, UCL-LOCEAN-IPSL (2006) 46 50 !! $Header$ 47 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt51 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 48 52 !!---------------------------------------------------------------------- 49 53 … … 58 62 !! ** Method : restart from a state defined in a binary file 59 63 !! or from arbitrary sea-ice conditions 60 !!61 !! History :62 !! 2.0 ! 01-04 (C. Ethe, G. Madec) Original code63 !! ! 04-04 (S. Theetten) initialization from a file64 64 !!-------------------------------------------------------------------- 65 !! * Local variables 66 INTEGER :: ji, jj, jk ! dummy loop indices 67 REAL(wp) :: zidto, & ! temporary scalar 68 zs0, ztf, zbin 69 REAL(wp), DIMENSION(jpi,jpj) :: & 70 ztn 65 INTEGER :: ji, jj, jk ! dummy loop indices 66 REAL(wp) :: zidto, zs0, ztf, zbin ! temporary scalar 67 REAL(wp), DIMENSION(jpi,jpj) :: ztn ! workspace 71 68 !-------------------------------------------------------------------- 72 69 73 74 CALL lim_istate_init ! reading the initials parameters of the ice 70 CALL lim_istate_init ! reading the initials parameters of the ice 75 71 76 72 !-- Initialisation of sst,sss,u,v do i=1,jpi … … 203 199 CALL lbc_lnk( qstoif , 'T', 1. ) 204 200 CALL lbc_lnk( sss_io , 'T', 1. ) 205 201 ! 206 202 END SUBROUTINE lim_istate 207 203 … … 220 216 !! 221 217 !! ** input : Namelist namiceini 222 !! 223 !! history 224 !! 8.5 ! 03-08 (C. Ethe) original code 225 !! 9.0 ! 04-04 (S. Theetten) read a file 226 !!------------------------------------------------------------------- 227 !! * Modules used 228 USE ice 229 USE ioipsl 218 !!------------------------------------------------------------------- 219 INTEGER :: inum_ice 230 220 231 221 NAMELIST/namiceini/ ln_limini, ln_limdmp, ttest, hninn, hginn, alinn, & 232 222 & hnins, hgins, alins 233 223 !!------------------------------------------------------------------- 234 !! local declaration235 INTEGER, PARAMETER :: jpmois=1236 237 INTEGER :: &238 itime, ipi, ipj, ipk , & ! temporary integers239 inum_ice240 241 INTEGER :: istep(jpmois)242 243 REAL(wp) :: zdate0, zdt244 REAL(wp), DIMENSION(jpi,jpj) :: zlon, zlat245 REAL(wp), DIMENSION(3) :: zlev246 247 CHARACTER (len=32) :: cl_icedata248 249 LOGICAL :: llbon250 !!-------------------------------------------------------------------251 224 252 225 ! Read Namelist namiceini 253 254 226 REWIND ( numnam_ice ) 255 227 READ ( numnam_ice , namiceini ) … … 272 244 IF( ln_limini ) THEN ! Ice initialization using input file 273 245 274 cl_icedata = 'Ice_initialization.nc'275 INQUIRE( FILE=cl_icedata, EXIST=llbon ) 276 IF( llbon) THEN246 CALL iom_open( 'Ice_initialization.nc', inum_ice ) 247 248 IF( inum_ice > 0 ) THEN 277 249 IF(lwp) THEN 278 250 WRITE(numout,*) ' ' 279 WRITE(numout,*) 'lim_istate_init : ice state initialization with : ',cl_icedata251 WRITE(numout,*) 'lim_istate_init : ice state initialization with : Ice_initialization.nc' 280 252 WRITE(numout,*) '~~~~~~~~~~~~~~~' 281 253 WRITE(numout,*) ' Ice state initialization using input file ln_limini = ', ln_limini … … 284 256 ENDIF 285 257 286 itime = 1 287 ipi=jpiglo 288 ipj=jpjglo 289 ipk=1 290 zdt=rdt 258 CALL iom_get( inum_ice, jpdom_data, 'sst' , sst_ini(:,:) ) 259 CALL iom_get( inum_ice, jpdom_data, 'sss' , sss_ini(:,:) ) 260 CALL iom_get( inum_ice, jpdom_data, 'hicif', hicif (:,:) ) 261 CALL iom_get( inum_ice, jpdom_data, 'hsnif', hsnif (:,:) ) 262 CALL iom_get( inum_ice, jpdom_data, 'frld' , frld (:,:) ) 263 CALL iom_get( inum_ice, jpdom_data, 'ts' , sist (:,:) ) 264 CALL iom_get( inum_ice, jpdom_unknown, 'tbif', tbif(:,:,:), & 265 & kstart = (/ mig(1),mjg(1),1 /), kcount = (/ nlci,nlcj,jplayersp1 /) ) 266 267 CALL iom_close( inum_ice) 291 268 292 CALL flinopen( TRIM(cl_icedata), mig(1), nlci, mjg(1), nlcj, .FALSE., &293 & ipi, ipj, ipk, zlon, zlat, zlev, itime, istep, zdate0, zdt, inum_ice )294 295 CALL flinget( inum_ice, 'sst', jpidta, jpjdta, 1, &296 & jpmois, 1, 0, mig(1), nlci, mjg(1), nlcj, sst_ini(1:nlci,1:nlcj) )297 298 CALL flinget( inum_ice, 'sss', jpidta, jpjdta, 1, &299 & jpmois, 1, 0, mig(1), nlci, mjg(1), nlcj, sss_ini(1:nlci,1:nlcj) )300 301 CALL flinget( inum_ice, 'hicif', jpidta, jpjdta, 1, &302 & jpmois, 1, 0, mig(1), nlci, mjg(1), nlcj, hicif(1:nlci,1:nlcj) )303 304 CALL flinget( inum_ice, 'hsnif', jpidta, jpjdta, 1, &305 & jpmois, 1, 0, mig(1), nlci, mjg(1), nlcj, hsnif(1:nlci,1:nlcj) )306 307 CALL flinget( inum_ice, 'frld', jpidta, jpjdta, 1, &308 & jpmois, 1, 0, mig(1), nlci, mjg(1), nlcj, frld(1:nlci,1:nlcj) )309 310 CALL flinget( inum_ice, 'ts', jpidta, jpjdta, 1, &311 & jpmois, 1, 0, mig(1), nlci, mjg(1), nlcj, sist(1:nlci,1:nlcj) )312 313 CALL flinclo( inum_ice)314 315 itime = 1316 ipi=jpiglo317 ipj=jpjglo318 ipk=jplayersp1319 320 CALL flinopen( TRIM(cl_icedata), mig(1), nlci, mjg(1), nlcj, .FALSE., &321 & ipi, ipj, ipk, zlon, zlat, zlev, itime, istep, zdate0, zdt, inum_ice )322 323 CALL flinget( inum_ice, 'tbif', jpidta, jpjdta, ipk, &324 & jpmois, 1, 0, mig(1), nlci, mjg(1), nlcj, tbif(1:nlci,1:nlcj,1:ipk) )325 326 CALL flinclo( inum_ice)327 328 ELSE329 WRITE(ctmp1,*) ' ',cl_icedata, ' not found !'330 CALL ctl_stop( ctmp1 )331 269 ENDIF 332 270 ENDIF 333 271 ! 334 272 END SUBROUTINE lim_istate_init 335 273
Note: See TracChangeset
for help on using the changeset viewer.