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 4147 for branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/SAS_SRC/sbcssm.F90 – NEMO

Ignore:
Timestamp:
2013-11-04T12:51:55+01:00 (11 years ago)
Author:
cetlod
Message:

merge in dev_LOCEAN_2013, the 1st development branch dev_r3853_CNRS9_Confsetting, from its starting point ( r3853 ) on the trunk: see ticket #1169

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/SAS_SRC/sbcssm.F90

    r3364 r4147  
    8181       
    8282      ! 
     83      IF (kt == nn_it000 ) CALL sbc_ssm_init() 
     84 
    8385      IF( nn_timing == 1 )  CALL timing_start( 'sbc_ssm') 
    8486 
     
    100102      tsn(:,:,1,jp_tem) = sst_m(:,:) 
    101103      tsn(:,:,1,jp_sal) = sss_m(:,:) 
     104      IF ( nn_ice == 1 ) THEN 
     105         tsb(:,:,1,jp_tem) = sst_m(:,:) 
     106         tsb(:,:,1,jp_sal) = sss_m(:,:) 
     107      ENDIF 
    102108      ub (:,:,1       ) = ssu_m(:,:) 
    103109      vb (:,:,1       ) = ssv_m(:,:) 
     
    128134      INTEGER  :: ifpr                               ! dummy loop indice 
    129135      INTEGER  :: inum, idv, idimv, jpm              ! local integer 
     136      INTEGER  ::   ios                              ! Local integer output status for namelist read 
    130137      !! 
    131138      CHARACTER(len=100)                     ::  cn_dir       ! Root directory for location of core files 
     
    135142      TYPE(FLD_N) :: sn_usp, sn_vsp, sn_ssh 
    136143      ! 
    137       NAMELIST/namsbc_ssm/cn_dir, ln_3d_uv, sn_tem, sn_sal, sn_usp, sn_vsp, sn_ssh 
    138  
    139       !!---------------------------------------------------------------------- 
    140       !                                   ! ============ 
    141       !                                   !   Namelist 
    142       !                                   ! ============ 
    143       ! (NB: frequency positive => hours, negative => months) 
    144       !                !   file      ! frequency !  variable  ! time intep !  clim  ! 'yearly' or ! weights  ! rotation   ! 
    145       !                !   name      !  (hours)  !   name     !   (T/F)    !  (T/F) !  'monthly'  ! filename ! pairs      ! 
    146       sn_usp  = FLD_N( 'ssm_grid_U' ,    120    , 'vozocrtx' ,  .true.    , .true. ,   'yearly'  , ''       , ''         ) 
    147       sn_vsp  = FLD_N( 'ssm_grid_V' ,    120    , 'vomecrty' ,  .true.    , .true. ,   'yearly'  , ''       , ''         ) 
    148       sn_tem  = FLD_N( 'ssm_grid_T' ,    120    , 'sosstsst' ,  .true.    , .true. ,   'yearly'  , ''       , ''         ) 
    149       sn_sal  = FLD_N( 'ssm_grid_T' ,    120    , 'sosaline' ,  .true.    , .true. ,   'yearly'  , ''       , ''         ) 
    150       sn_ssh  = FLD_N( 'ssm_grid_T' ,    120    , 'sossheig' ,  .true.    , .true. ,   'yearly'  , ''       , ''         ) 
    151       ! 
    152       REWIND( numnam )                          ! read in namlist namsbc_ssm 
    153       READ  ( numnam, namsbc_ssm ) 
     144      NAMELIST/namsbc_sas/cn_dir, ln_3d_uv, sn_tem, sn_sal, sn_usp, sn_vsp, sn_ssh 
     145       
     146      REWIND( numnam_ref )              ! Namelist namsbc_sas in reference namelist : Input fields 
     147      READ  ( numnam_ref, namsbc_sas, IOSTAT = ios, ERR = 901) 
     148901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_sas in reference namelist', lwp ) 
     149 
     150      REWIND( numnam_cfg )              ! Namelist namsbc_sas in configuration namelist : Input fields 
     151      READ  ( numnam_cfg, namsbc_sas, IOSTAT = ios, ERR = 902 ) 
     152902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_sas in configuration namelist', lwp ) 
     153      WRITE ( numond, namsbc_sas ) 
     154 
    154155      !                                         ! store namelist information in an array 
    155156      !                                         ! Control print 
    156157      IF(lwp) THEN 
    157158         WRITE(numout,*) 
    158          WRITE(numout,*) 'sbc_ssm : standalone surface scheme ' 
     159         WRITE(numout,*) 'sbc_sas : standalone surface scheme ' 
    159160         WRITE(numout,*) '~~~~~~~~~~~ ' 
    160          WRITE(numout,*) '   Namelist namsbc_ssm' 
     161         WRITE(numout,*) '   Namelist namsbc_sas' 
    161162         WRITE(numout,*) 
    162163      ENDIF 
     
    273274      ! so allocate enough of arrays to use 
    274275      ! 
     276      ierr3 = 0 
    275277      jpm = MAX(jp_tem, jp_sal) 
    276278      ALLOCATE( tsn(jpi,jpj,1,jpm), STAT=ierr0 ) 
    277279      ALLOCATE( ub(jpi,jpj,1)     , STAT=ierr1 ) 
    278280      ALLOCATE( vb(jpi,jpj,1)     , STAT=ierr2 ) 
    279       ierr = ierr0 + ierr1 + ierr2 
     281      IF ( nn_ice == 1 ) ALLOCATE( tsb(jpi,jpj,1,jpm), STAT=ierr3 ) 
     282      ierr = ierr0 + ierr1 + ierr2 + ierr3 
    280283      IF( ierr > 0 ) THEN 
    281284         CALL ctl_stop('sbc_ssm_init: unable to allocate surface arrays') 
Note: See TracChangeset for help on using the changeset viewer.