Changeset 888 for trunk/NEMO/LIM_SRC_3/limrst.F90
- Timestamp:
- 2008-04-11T19:05:03+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC_3/limrst.F90
r838 r888 18 18 USE dom_oce 19 19 USE ice_oce ! ice variables 20 USE sbc_oce ! Surface boundary condition: ocean fields 21 USE sbc_ice ! Surface boundary condition: ice fields 20 22 USE daymod 21 23 USE iom … … 34 36 !!---------------------------------------------------------------------- 35 37 !! LIM 2.0, UCL-LOCEAN-IPSL (2005) 36 !! $ Id:$38 !! $ Id: $ 37 39 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 38 40 !!---------------------------------------------------------------------- … … 55 57 56 58 ! to get better performances with NetCDF format: 57 ! we open and define the ice restart file one ice time step before writing the data (-> at nitrst - 2*n fice+ 1)58 ! except if we write ice restart files every ice time step or if an ice restart file was writen at nitend - 2*n fice+ 159 IF( kt == nitrst - 2*n fice + 1 .OR. nstock == nfice .OR. ( kt == nitend - nfice+ 1 .AND. .NOT. lrst_ice ) ) THEN59 ! we open and define the ice restart file one ice time step before writing the data (-> at nitrst - 2*nn_fsbc + 1) 60 ! except if we write ice restart files every ice time step or if an ice restart file was writen at nitend - 2*nn_fsbc + 1 61 IF( kt == nitrst - 2*nn_fsbc + 1 .OR. nstock == nn_fsbc .OR. ( kt == nitend - nn_fsbc + 1 .AND. .NOT. lrst_ice ) ) THEN 60 62 ! beware of the format used to write kt (default is i8.8, that should be large enough...) 61 63 IF( nitrst > 99999999 ) THEN ; WRITE(clkt, * ) nitrst … … 70 72 CASE DEFAULT ; WRITE(numout,*) ' open ice restart NetCDF file: '//clname 71 73 END SELECT 72 IF( kt == nitrst - 2*n fice+ 1 ) THEN73 WRITE(numout,*) ' kt = nitrst - 2*n fice+ 1 = ', kt,' date= ', ndastp74 ELSE ; WRITE(numout,*) ' kt = ' , kt,' date= ', ndastp74 IF( kt == nitrst - 2*nn_fsbc + 1 ) THEN 75 WRITE(numout,*) ' kt = nitrst - 2*nn_fsbc + 1 = ', kt,' date= ', ndastp 76 ELSE ; WRITE(numout,*) ' kt = ' , kt,' date= ', ndastp 75 77 ENDIF 76 78 ENDIF … … 100 102 !!---------------------------------------------------------------------- 101 103 102 iter = kt + n fice - 1 ! ice restarts are written at kt == nitrst - nfice+ 1104 iter = kt + nn_fsbc - 1 ! ice restarts are written at kt == nitrst - nn_fsbc + 1 103 105 104 106 IF( iter == nitrst ) THEN … … 111 113 ! ------------------ 112 114 ! ! calendar control 113 CALL iom_rstput( iter, nitrst, numriw, 'n fice' , REAL( nfice, wp) ) ! time-step114 CALL iom_rstput( iter, nitrst, numriw, 'kt_ice' , REAL( iter , wp) )! date115 CALL iom_rstput( iter, nitrst, numriw, 'nn_fsbc', REAL( nn_fsbc, wp) ) ! time-step 116 CALL iom_rstput( iter, nitrst, numriw, 'kt_ice' , REAL( iter , wp) ) ! date 115 117 116 118 ! Prognostic variables … … 158 160 CALL iom_rstput( iter, nitrst, numriw, 'u_ice' , u_ice ) 159 161 CALL iom_rstput( iter, nitrst, numriw, 'v_ice' , v_ice ) 160 CALL iom_rstput( iter, nitrst, numriw, ' gtaux' , gtaux)161 CALL iom_rstput( iter, nitrst, numriw, ' gtauy' , gtauy)162 CALL iom_rstput( iter, nitrst, numriw, 'utaui_ice' , utaui_ice ) 163 CALL iom_rstput( iter, nitrst, numriw, 'vtaui_ice' , vtaui_ice ) 162 164 CALL iom_rstput( iter, nitrst, numriw, 'fsbbq' , fsbbq ) 163 165 CALL iom_rstput( iter, nitrst, numriw, 'stress1_i' , stress1_i ) … … 299 301 WRITE(numout,*) ' ~~~ Arctic' 300 302 301 ji = jiind ex302 jj = jjind ex303 ji = jiindx 304 jj = jjindx 303 305 304 306 WRITE(numout,*) ' ji, jj ', ji, jj … … 387 389 !!---------------------------------------------------------------------- 388 390 ! Local variables 389 INTEGER :: ji, jj, jk, jl, ind ex391 INTEGER :: ji, jj, jk, jl, indx 390 392 REAL(wp) :: zfice, ziter 391 393 REAL(wp) :: & !parameters for the salinity profile … … 405 407 CALL iom_open ( 'restart_ice_in', numrir, kiolib = jprstlib ) 406 408 407 CALL iom_get( numrir, 'n fice', zfice )408 CALL iom_get( numrir, 'kt_ice' , ziter )409 CALL iom_get( numrir, 'nn_fsbc', zfice ) 410 CALL iom_get( numrir, 'kt_ice' , ziter ) 409 411 IF(lwp) WRITE(numout,*) ' read ice restart file at time step : ', ziter 410 412 IF(lwp) WRITE(numout,*) ' in any case we force it to nit000 - 1 : ', nit000 - 1 … … 416 418 & ' verify the file or rerun with the value 0 for the', & 417 419 & ' control of time parameter nrstdt' ) 418 IF( INT(zfice) /= n fice.AND. ABS( nrstdt ) == 1 ) &419 & CALL ctl_stop( 'lim_rst_read ===>>>> : problem with n ficein ice restart', &420 & ' verify the file or rerun with the value 0 for the', &420 IF( INT(zfice) /= nn_fsbc .AND. ABS( nrstdt ) == 1 ) & 421 & CALL ctl_stop( 'lim_rst_read ===>>>> : problem with nn_fsbc in ice restart', & 422 & ' verify the file or rerun with the value 0 for the', & 421 423 & ' control of time parameter nrstdt' ) 422 424 … … 512 514 CALL iom_get( numrir, jpdom_autoglo, 'u_ice' , u_ice ) 513 515 CALL iom_get( numrir, jpdom_autoglo, 'v_ice' , v_ice ) 514 CALL iom_get( numrir, jpdom_autoglo, ' gtaux' , gtaux)515 CALL iom_get( numrir, jpdom_autoglo, ' gtauy' , gtauy)516 CALL iom_get( numrir, jpdom_autoglo, 'utaui_ice' , utaui_ice ) 517 CALL iom_get( numrir, jpdom_autoglo, 'vtaui_ice' , vtaui_ice ) 516 518 CALL iom_get( numrir, jpdom_autoglo, 'fsbbq' , fsbbq ) 517 519 CALL iom_get( numrir, jpdom_autoglo, 'stress1_i' , stress1_i ) … … 650 652 WRITE(numout,*) ' ~~~ Arctic' 651 653 652 ind ex = 1654 indx = 1 653 655 ji = 24 654 656 jj = 24
Note: See TracChangeset
for help on using the changeset viewer.