New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 719 for trunk/NEMO/OPA_SRC/restart.F90 – NEMO

Ignore:
Timestamp:
2007-10-16T16:59:56+02:00 (17 years ago)
Author:
ctlod
Message:

get back to the nemo_v2_3 version for trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/restart.F90

    • Property svn:keywords changed from Id to Author Date Id Revision
    r717 r719  
    1919   USE phycst          ! physical constants 
    2020   USE daymod          ! calendar 
     21   USE ice_oce         ! ice variables 
     22   USE blk_oce         ! bulk variables 
    2123   USE cpl_oce, ONLY : lk_cpl              ! 
    2224   USE in_out_manager  ! I/O manager 
     
    4143   !!---------------------------------------------------------------------- 
    4244   !!  OPA 9.0 , LOCEAN-IPSL (2006)  
    43    !! $Id$ 
     45   !! $Header: /home/opalod/NEMOCVSROOT/NEMO/OPA_SRC/restart.F90,v 1.27 2007/06/05 10:35:19 opalod Exp $  
    4446   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    4547   !!---------------------------------------------------------------------- 
     
    137139      CALL iom_rstput( kt, nitrst, numrow, 'rotn'   , rotn    ) 
    138140      CALL iom_rstput( kt, nitrst, numrow, 'hdivn'  , hdivn   ) 
     141 
     142#if defined key_ice_lim         
     143      CALL iom_rstput( kt, nitrst, numrow, 'nfice'  , REAL( nfice, wp) )   !  ice computation frequency 
     144      CALL iom_rstput( kt, nitrst, numrow, 'sst_io' , sst_io  ) 
     145      CALL iom_rstput( kt, nitrst, numrow, 'sss_io' , sss_io  ) 
     146      CALL iom_rstput( kt, nitrst, numrow, 'u_io'   , u_io    ) 
     147      CALL iom_rstput( kt, nitrst, numrow, 'v_io'   , v_io    ) 
     148# if defined key_coupled 
     149      CALL iom_rstput( kt, nitrst, numrow, 'alb_ice', alb_ice ) 
     150# endif 
     151#endif 
     152#if defined key_flx_bulk_monthly || defined key_flx_bulk_daily || defined key_flx_core  
     153      CALL iom_rstput( kt, nitrst, numrow, 'nfbulk' , REAL( nfbulk, wp) )   !  bulk computation frequency 
     154      CALL iom_rstput( kt, nitrst, numrow, 'gsst'   , gsst    ) 
     155#endif 
    139156 
    140157      IF( nn_dynhpg_rst == 1 .OR. lk_vvl ) THEN 
     
    188205      !!                    has been stored in the restart file. 
    189206      !!---------------------------------------------------------------------- 
    190       REAL(wp) ::   zcoef, zkt, zrdt, zrdttra1, zndastp 
     207      REAL(wp) ::   zcoef, zkt, zrdt, zrdttra1, zndastp, znfice, znfbulk 
    191208#if defined key_ice_lim 
    192209      INTEGER  ::   ji, jj 
     
    283300      ENDIF 
    284301 
     302      !!sm: TO BE MOVED IN NEW SURFACE MODULE... 
     303 
     304#if defined key_ice_lim 
     305      ! Louvain La Neuve Sea Ice Model 
     306      IF( iom_varid( numror, 'nfice' ) > 0 ) then  
     307         CALL iom_get( numror             , 'nfice'  , znfice  )   ! ice computation frequency 
     308         CALL iom_get( numror, jpdom_autoglo, 'sst_io' , sst_io  ) 
     309         CALL iom_get( numror, jpdom_autoglo, 'sss_io' , sss_io  ) 
     310         CALL iom_get( numror, jpdom_autoglo, 'u_io'   , u_io    ) 
     311         CALL iom_get( numror, jpdom_autoglo, 'v_io'   , v_io    ) 
     312# if defined key_coupled 
     313         CALL iom_get( numror, jpdom_autoglo, 'alb_ice', alb_ice ) 
     314# endif 
     315         IF( znfice /= REAL( nfice, wp ) ) THEN      ! if nfice changed between 2 runs 
     316            zcoef = REAL( nfice-1, wp ) / znfice 
     317            sst_io(:,:) = zcoef * sst_io(:,:) 
     318            sss_io(:,:) = zcoef * sss_io(:,:) 
     319            u_io  (:,:) = zcoef * u_io  (:,:) 
     320            v_io  (:,:) = zcoef * v_io  (:,:) 
     321         ENDIF 
     322      ELSE 
     323         IF(lwp) WRITE(numout,*) 
     324         IF(lwp) WRITE(numout,*) 'rst_read :  LLN sea Ice Model => Ice initialization' 
     325         IF(lwp) WRITE(numout,*) 
     326         zcoef = REAL( nfice-1, wp ) 
     327         sst_io(:,:) = zcoef *( tn(:,:,1) + rt0 )          !!bug a explanation is needed here! 
     328         sss_io(:,:) = zcoef *  sn(:,:,1) 
     329         zcoef = 0.5 * REAL( nfice-1, wp ) 
     330         DO jj = 2, jpj 
     331            DO ji = fs_2, jpi   ! vector opt. 
     332               u_io(ji,jj) = zcoef * ( un(ji-1,jj  ,1) + un(ji-1,jj-1,1) ) 
     333               v_io(ji,jj) = zcoef * ( vn(ji  ,jj-1,1) + vn(ji-1,jj-1,1) ) 
     334            END DO 
     335         END DO 
     336# if defined key_coupled 
     337         alb_ice(:,:) = 0.8 * tmask(:,:,1) 
     338# endif 
     339      ENDIF 
     340#endif 
     341#if defined key_flx_bulk_monthly || defined key_flx_bulk_daily || defined key_flx_core  
     342      ! Louvain La Neuve Sea Ice Model 
     343      IF( iom_varid( numror, 'nfbulk' ) > 0 ) THEN  
     344         CALL iom_get( numror             , 'nfbulk', znfbulk )   ! bulk computation frequency 
     345         CALL iom_get( numror, jpdom_autoglo, 'gsst'  , gsst    ) 
     346         IF( znfbulk /= REAL(nfbulk, wp) ) THEN      ! if you change nfbulk between 2 runs 
     347            zcoef = REAL( nfbulk-1, wp ) / znfbulk 
     348            gsst(:,:) = zcoef * gsst(:,:) 
     349         ENDIF 
     350      ELSE 
     351         IF(lwp) WRITE(numout,*) 
     352         IF(lwp) WRITE(numout,*) 'rst_read :  LLN sea Ice Model => Ice initialization' 
     353         IF(lwp) WRITE(numout,*) 
     354         gsst(:,:) = REAL( nfbulk - 1, wp )*( tn(:,:,1) + rt0 ) 
     355      ENDIF 
     356#endif 
     357 
     358      !!sm: end of TO BE MOVED IN NEW SURFACE MODULE... 
     359 
    285360      IF( iom_varid( numror, 'rhd' ) > 0 ) THEN 
    286361         CALL iom_get( numror, jpdom_autoglo, 'rhd' , rhd  ) 
Note: See TracChangeset for help on using the changeset viewer.