Changeset 1133


Ignore:
Timestamp:
2008-06-24T17:41:07+02:00 (12 years ago)
Author:
smasson
Message:

new sbc namelist format, see ticket:1

Location:
trunk/NEMO/OPA_SRC/SBC
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/SBC/sbcblk_clio.F90

    r1051 r1133  
    121121      INTEGER, INTENT( in  ) ::   kt   ! ocean time step 
    122122      !! 
    123       INTEGER  ::   jf, ifpr, jfpr     ! dummy indices 
     123      INTEGER  ::   ifpr, jfpr         ! dummy indices 
    124124      INTEGER  ::   ierror             ! return error code 
    125125      !! 
     
    140140 
    141141         ! (NB: frequency positive => hours, negative => months) 
    142          !            !    file     ! frequency !  variable  ! time intep !  clim  ! starting ! 
    143          !            !    name     !  (hours)  !   name     !   (T/F)    !  (0/1) !  record  ! 
    144          sn_utau = FLD_N( 'utau'    ,    24.    ,  'utau'    ,  .true.    ,    0   ,     0    )  
    145          sn_vtau = FLD_N( 'vtau'    ,    24.    ,  'vtau'    ,  .true.    ,    0   ,     0    )  
    146          sn_wndm = FLD_N( 'mwnd10m' ,    24.    ,  'm_10'    ,  .true.    ,    0   ,     0    )  
    147          sn_tair = FLD_N( 'tair10m' ,    24.    ,  't_10'    ,  .FALSE.   ,    0   ,     0    )  
    148          sn_humi = FLD_N( 'humi10m' ,    24.    ,  'q_10'    ,  .FALSE.   ,    0   ,     0    )  
    149          sn_ccov = FLD_N( 'ccover'  ,   -12.    ,  'cloud'   ,  .TRUE.    ,    0   ,     0    )  
    150          sn_prec = FLD_N( 'precip'  ,   -12.    ,  'precip'  ,  .TRUE.    ,    0   ,     0    )  
     142         !            !    file     ! frequency !  variable  ! time intep !  clim   ! 'yearly' or ! 
     143         !            !    name     !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  ! 
     144         sn_utau = FLD_N( 'utau'    ,    24.    ,  'utau'    ,  .true.    , .false. ,   'yearly'  )  
     145         sn_vtau = FLD_N( 'vtau'    ,    24.    ,  'vtau'    ,  .true.    , .false. ,   'yearly'  )  
     146         sn_wndm = FLD_N( 'mwnd10m' ,    24.    ,  'm_10'    ,  .true.    , .false. ,   'yearly'  )  
     147         sn_tair = FLD_N( 'tair10m' ,    24.    ,  't_10'    ,  .false.   , .false. ,   'yearly'  )  
     148         sn_humi = FLD_N( 'humi10m' ,    24.    ,  'q_10'    ,  .false.   , .false. ,   'yearly'  )  
     149         sn_ccov = FLD_N( 'ccover'  ,    -1.    ,  'cloud'   ,  .true.    , .false. ,   'yearly'  )  
     150         sn_prec = FLD_N( 'precip'  ,    -1.    ,  'precip'  ,  .true.    , .false. ,  ' yearly'  )  
    151151 
    152152         REWIND( numnam )                    ! ... read in namlist namsbc_clio 
     
    163163            CALL ctl_stop( 'sbc_blk_clio: unable to allocate sf structure' )   ;   RETURN 
    164164         ENDIF 
    165          ! 
    166          DO jf = 1, jpfld 
    167             WRITE(sf(jf)%clrootname,'(a,a)' )   TRIM( cn_dir ), TRIM( slf_i(jf)%clname ) 
    168             sf(jf)%freqh   = slf_i(jf)%freqh 
    169             sf(jf)%clvar   = slf_i(jf)%clvar 
    170             sf(jf)%ln_tint = slf_i(jf)%ln_tint 
    171             sf(jf)%nclim   = slf_i(jf)%nclim 
    172             sf(jf)%nstrec  = slf_i(jf)%nstrec 
    173          END DO 
    174  
    175          IF(lwp) THEN      ! control print 
    176             WRITE(numout,*)             
    177             WRITE(numout,*) 'sbc_blk_clio : flux formulattion for ocean surface boundary condition' 
    178             WRITE(numout,*) '~~~~~~~~~~~~ ' 
    179             WRITE(numout,*) '          namsbc_clio Namelist' 
    180             WRITE(numout,*) '          list of files and frequency (>0: in hours ; <0 in months)' 
    181             DO jf = 1, jpfld 
    182                 WRITE(numout,*) '               file root name: ' , TRIM( sf(jf)%clrootname ),   & 
    183                    &                          ' variable name: '  , TRIM( sf(jf)%clvar      ) 
    184                 WRITE(numout,*) '               frequency: '      ,       sf(jf)%freqh       ,   & 
    185                    &                          ' time interp: '    ,       sf(jf)%ln_tint     ,   & 
    186                    &                          ' climatology: '    ,       sf(jf)%nclim       ,   & 
    187                    &                          ' starting record: ',       sf(jf)%nstrec 
    188             END DO 
    189          ENDIF 
     165 
     166         ! fill sf with slf_i and control print 
     167         CALL fld_fill( sf, slf_i, cn_dir, 'sbc_blk_clio', 'flux formulation for ocean surface boundary condition', 'namsbc_clio' ) 
    190168         ! 
    191169      ENDIF 
  • trunk/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r1037 r1133  
    107107      INTEGER, INTENT( in  ) ::   kt   ! ocean time step 
    108108      !! 
    109       INTEGER  ::   jf       ! dummy indices 
    110109      INTEGER  ::   ierror   ! return error code 
    111110      !! 
     
    125124 
    126125         ! (NB: frequency positive => hours, negative => months) 
    127          !            !    file     ! frequency !  variable  ! time intep !  clim  ! starting ! 
    128          !            !    name     !  (hours)  !   name     !   (T/F)    !  (0/1) !  record  ! 
    129          sn_wndi = FLD_N( 'uwnd10m' ,    24.    ,  'u_10'    ,  .FALSE.   ,    0   ,     0    )  
    130          sn_wndj = FLD_N( 'vwnd10m' ,    24.    ,  'v_10'    ,  .FALSE.   ,    0   ,     0    )  
    131          sn_qsr  = FLD_N( 'qsw'     ,    24.    ,  'qsw'     ,  .FALSE.   ,    0   ,     0    )  
    132          sn_qlw  = FLD_N( 'qlw'     ,    24.    ,  'qlw'     ,  .FALSE.   ,    0   ,     0    )  
    133          sn_tair = FLD_N( 'tair10m' ,    24.    ,  't_10'    ,  .FALSE.   ,    0   ,     0    )  
    134          sn_humi = FLD_N( 'humi10m' ,    24.    ,  'q_10'    ,  .FALSE.   ,    0   ,     0    )  
    135          sn_prec = FLD_N( 'precip'  ,   -12.    ,  'precip'  ,  .TRUE.    ,    0   ,     0    )  
    136          sn_snow = FLD_N( 'snow'    ,   -12.    ,  'snow'    ,  .TRUE.    ,    0   ,     0    )  
     126         !            !    file     ! frequency !  variable  ! time intep !  clim   ! 'yearly' or ! 
     127         !            !    name     !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  ! 
     128         sn_wndi = FLD_N( 'uwnd10m' ,    24.    ,  'u_10'    ,  .false.   , .false. ,   'yearly'  )  
     129         sn_wndj = FLD_N( 'vwnd10m' ,    24.    ,  'v_10'    ,  .false.   , .false. ,   'yearly'  )  
     130         sn_qsr  = FLD_N( 'qsw'     ,    24.    ,  'qsw'     ,  .false.   , .false. ,   'yearly'  )  
     131         sn_qlw  = FLD_N( 'qlw'     ,    24.    ,  'qlw'     ,  .false.   , .false. ,   'yearly'  )  
     132         sn_tair = FLD_N( 'tair10m' ,    24.    ,  't_10'    ,  .false.   , .false. ,   'yearly'  )  
     133         sn_humi = FLD_N( 'humi10m' ,    24.    ,  'q_10'    ,  .false.   , .false. ,   'yearly'  )  
     134         sn_prec = FLD_N( 'precip'  ,    -1.    ,  'precip'  ,  .true.    , .false. ,   'yearly'  )  
     135         sn_snow = FLD_N( 'snow'    ,    -1.    ,  'snow'    ,  .true.    , .false. ,   'yearly'  )  
    137136 
    138137         REWIND( numnam )                    ! ... read in namlist namsbc_core 
     
    151150         ENDIF 
    152151 
    153          DO jf = 1, jpfld 
    154             WRITE(sf(jf)%clrootname,'(a,a)' )   TRIM( cn_dir ), TRIM( slf_i(jf)%clname ) 
    155             sf(jf)%freqh   = slf_i(jf)%freqh 
    156             sf(jf)%clvar   = slf_i(jf)%clvar 
    157             sf(jf)%ln_tint = slf_i(jf)%ln_tint 
    158             sf(jf)%nclim   = slf_i(jf)%nclim 
    159             sf(jf)%nstrec  = slf_i(jf)%nstrec 
    160          END DO 
    161  
    162          IF(lwp) THEN      ! control print 
    163             WRITE(numout,*)             
    164             WRITE(numout,*) 'sbc_blk_core : flux formulattion for ocean surface boundary condition' 
    165             WRITE(numout,*) '~~~~~~~~~~~~ ' 
    166             WRITE(numout,*) '          namsbc_core Namelist' 
    167             WRITE(numout,*) '          ln_2m        = ', ln_2m 
    168             WRITE(numout,*) '          alpha_precip = ', alpha_precip 
    169             WRITE(numout,*) '          list of files and frequency (>0: in hours ; <0 in months)' 
    170             DO jf = 1, jpfld 
    171                 WRITE(numout,*) '               file root name: ' , TRIM( sf(jf)%clrootname ),   & 
    172                    &                          ' variable name: '  , TRIM( sf(jf)%clvar      ) 
    173                 WRITE(numout,*) '               frequency: '      ,       sf(jf)%freqh       ,   & 
    174                    &                          ' time interp: '    ,       sf(jf)%ln_tint     ,   & 
    175                    &                          ' climatology: '    ,       sf(jf)%nclim       ,   & 
    176                    &                          ' starting record: ',       sf(jf)%nstrec 
    177             END DO 
    178             IF( ln_2m )   THEN 
    179                WRITE(numout,*) '          Calling TURB_CORE_2Z for bulk transfert coefficients' 
    180             ELSE 
    181                WRITE(numout,*) '          Calling TURB_CORE_1Z for bulk transfert coefficients' 
    182             ENDIF 
    183             WRITE(numout,*)             
    184             ! 
    185          ENDIF 
     152         ! fill sf with slf_i and control print 
     153         CALL fld_fill( sf, slf_i, cn_dir, 'sbc_blk_core', 'flux formulattion for ocean surface boundary condition', 'namsbc_core' ) 
    186154         ! 
    187155      ENDIF 
  • trunk/NEMO/OPA_SRC/SBC/sbcflx.F90

    r1037 r1133  
    106106      NAMELIST/namsbc_flx/ cn_dir, sn_utau, sn_vtau, sn_qtot, sn_qsr, sn_emp 
    107107      !!--------------------------------------------------------------------- 
    108    INTEGER , PARAMETER ::   jp_utau = 1   ! index of wind stress (i-component) file 
    109    INTEGER , PARAMETER ::   jp_vtau = 2   ! index of wind stress (j-component) file 
    110    INTEGER , PARAMETER ::   jp_qtot = 3   ! index of total (non solar+solar) heat file 
    111    INTEGER , PARAMETER ::   jp_qsr  = 4   ! index of solar heat file 
    112    INTEGER , PARAMETER ::   jp_emp  = 5   ! index of evaporation-precipation file 
    113  
    114  
    115108      !                                         ! ====================== ! 
    116109      IF( kt == nit000 ) THEN                   !  First call kt=nit000  ! 
     
    119112         cn_dir = './'        ! directory in which the model is executed 
    120113         ! ... default values (NB: frequency positive => hours, negative => months) 
    121          !            !   file    ! frequency !  variable  ! time intep !  clim  ! starting ! 
    122          !            !   name    !  (hours)  !   name     !   (T/F)    !  (0/1) !  record  ! 
    123          sn_utau = FLD_N( 'utau.nc' ,    24.    ,  'utau'    ,  .FALSE.   ,    0   ,     0    ) 
    124          sn_vtau = FLD_N( 'vtau.nc' ,    24.    ,  'vtau'    ,  .FALSE.   ,    0   ,     0    ) 
    125          sn_qtot = FLD_N( 'qtot.nc' ,    24.    ,  'qtot'    ,  .FALSE.   ,    0   ,     0    ) 
    126          sn_qsr  = FLD_N( 'qsr.nc'  ,    24.    ,  'qsr'     ,  .FALSE.   ,    0   ,     0    ) 
    127          sn_emp  = FLD_N( 'emp.nc'  ,    24.    ,  'emp'     ,  .FALSE.   ,    0   ,     0    ) 
     114         !              !   file    ! frequency !  variable  ! time intep !  clim   ! 'yearly' or ! 
     115         !              !   name    !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  ! 
     116         sn_utau = FLD_N(   'utau'  ,    24.    ,  'utau'    ,  .false.   , .false. ,   'yearly'  ) 
     117         sn_vtau = FLD_N(   'vtau'  ,    24.    ,  'vtau'    ,  .false.   , .false. ,   'yearly'  ) 
     118         sn_qtot = FLD_N(   'qtot'  ,    24.    ,  'qtot'    ,  .false.   , .false. ,   'yearly'  ) 
     119         sn_qsr  = FLD_N(   'qsr'   ,    24.    ,  'qsr'     ,  .false.   , .false. ,   'yearly'  ) 
     120         sn_emp  = FLD_N(   'emp'   ,    24.    ,  'emp'     ,  .false.   , .false. ,   'yearly'  ) 
    128121 
    129122         REWIND ( numnam )               ! ... read in namlist namflx 
     
    137130         ! set sf structure 
    138131         ALLOCATE( sf(jpfld), STAT=ierror ) 
    139          IF( ierror > 0 ) THEN 
    140             CALL ctl_stop( 'sbc_flx: unable to allocate sf structure' )   ;   RETURN 
     132         IF( ierror > 0 ) THEN    
     133            CALL ctl_stop( 'sbc_flx: unable to allocate sf structure' )   ;   RETURN   
    141134         ENDIF 
    142135 
    143          DO jf = 1, jpfld 
    144             WRITE(sf(jf)%clrootname,'(a,a)' )   TRIM( cn_dir ), TRIM( slf_i(jf)%clname ) 
    145             sf(jf)%freqh   = slf_i(jf)%freqh 
    146             sf(jf)%clvar   = slf_i(jf)%clvar 
    147             sf(jf)%ln_tint = slf_i(jf)%ln_tint 
    148             sf(jf)%nclim   = slf_i(jf)%nclim 
    149             sf(jf)%nstrec  = slf_i(jf)%nstrec 
    150          END DO 
    151  
    152          IF(lwp) THEN      ! control print 
    153             WRITE(numout,*) 
    154             WRITE(numout,*) 'sbc_flx : flux formulation for ocean surface boundary condition' 
    155             WRITE(numout,*) '~~~~~~~ ' 
    156             WRITE(numout,*) '          namsbc_flx Namelist' 
    157             WRITE(numout,*) '          list of files and frequency (>0: in hours ; <0 in months)' 
    158             DO jf = 1, jpfld 
    159                 WRITE(numout,*) '               root filename: '  , trim( sf(jf)%clrootname ),   & 
    160                    &                          ' variable name: '  , trim( sf(jf)%clvar      ) 
    161                 WRITE(numout,*) '               frequency: '      ,       sf(jf)%freqh       ,   & 
    162                    &                          ' time interp: '    ,       sf(jf)%ln_tint     ,   & 
    163                    &                          ' climatology: '    ,       sf(jf)%nclim       ,   & 
    164                    &                          ' starting record: ',       sf(jf)%nstrec 
    165             END DO 
    166          ENDIF 
     136         ! fill sf with slf_i and control print 
     137         CALL fld_fill( sf, slf_i, cn_dir, 'sbc_flx', 'flux formulation for ocean surface boundary condition', 'namsbc_flx' ) 
    167138         ! 
    168139      ENDIF 
  • trunk/NEMO/OPA_SRC/SBC/sbcice_if.F90

    r1037 r1133  
    6969         cn_dir = './'        ! directory in which the model is executed 
    7070         ! ... default values (NB: frequency positive => hours, negative => months) 
    71          !            !   file    ! frequency !  variable  ! time intep !  clim  ! starting ! 
    72          !            !   name    !  (hours)  !   name     !   (T/F)    !  (0/1) !  record  ! 
    73          sn_ice = FLD_N('ice_cover',   -12.   ,  'ice_cov'  ,  .TRUE.    ,    1   ,     0    ) 
     71         !             !   file    ! frequency !  variable  ! time intep !  clim  ! 'yearly' or ! 
     72         !             !   name    !  (hours)  !   name     !   (T/F)    !  (T/F) !  'monthly'  !  
     73         sn_ice = FLD_N('ice_cover',    -1.    ,  'ice_cov' ,  .true.    , .true. ,   'yearly'  ) 
    7474 
    7575         REWIND ( numnam )               ! ... read in namlist namiif 
     
    8181         ENDIF 
    8282 
    83          ! store namelist information in sf_ice structure 
    84          WRITE(sf_ice(1)%clrootname,'(a,a)')   TRIM( cn_dir ), TRIM( sn_ice%clname ) 
    85          sf_ice(1)%freqh   = sn_ice%freqh 
    86          sf_ice(1)%clvar   = sn_ice%clvar 
    87          sf_ice(1)%ln_tint = sn_ice%ln_tint 
    88          sf_ice(1)%nclim   = sn_ice%nclim 
    89          sf_ice(1)%nstrec  = sn_ice%nstrec 
    90  
    91          IF(lwp) THEN      ! control print 
    92             WRITE(numout,*) 
    93             WRITE(numout,*) 'sbc_ice_if : ice-if sea-ice model' 
    94             WRITE(numout,*) '~~~~~~~~~~ ' 
    95             WRITE(numout,*) '   ice-cover data in the following file: ' 
    96             WRITE(numout,*) '          list of files and frequency (>0: in hours ; <0 in months)' 
    97             WRITE(numout,*) '               root filename: '  , trim( sf_ice(1)%clrootname ),   & 
    98                &                          ' variable name: '  , trim( sf_ice(1)%clvar      ) 
    99             WRITE(numout,*) '               frequency: '      ,       sf_ice(1)%freqh       ,   & 
    100                &                          ' time interp: '    ,       sf_ice(1)%ln_tint     ,   & 
    101                &                          ' climatology: '    ,       sf_ice(1)%nclim       ,   & 
    102                &                          ' starting record: ',       sf_ice(1)%nstrec 
    103          ENDIF 
     83         ! fill sf_ice with sn_ice and control print 
     84         CALL fld_fill( sf_ice, (/ sn_ice /), cn_dir, 'sbc_ice_if', 'ice-if sea-ice model', 'namsbc_iif' ) 
    10485         ! 
    10586      ENDIF 
  • trunk/NEMO/OPA_SRC/SBC/sbcrnf.F90

    r1116 r1133  
    116116      !                                   !   Namelist 
    117117      !                                   ! ============ 
    118       !                                         ! Default values NB: frequency>0 hours, <0 months) 
    119       !            !   file    ! frequency !  variable  ! time intep !  clim  ! starting ! 
    120       !            !   name    !  (hours)  !   name     !   (T/F)    !  (0/1) !  record  ! 
    121       sn_rnf = FLD_N( 'runoffs',   -12.    , 'sorunoff' ,  .TRUE.    ,    1   ,     0    ) 
    122       sn_cnf = FLD_N( 'runoffs',     0.    , 'sorunoff' ,  .FALSE.   ,    1   ,     0    ) 
     118      ! (NB: frequency positive => hours, negative => months) 
     119      !            !   file    ! frequency !  variable  ! time intep !  clim  ! 'yearly' or ! 
     120      !            !   name    !  (hours)  !   name     !   (T/F)    !  (T/F) !  'monthly'  ! 
     121      sn_rnf = FLD_N( 'runoffs',    -1.    , 'sorunoff' ,  .TRUE.    , .true. ,   'yearly'  ) 
     122      sn_cnf = FLD_N( 'runoffs',     0.    , 'sorunoff' ,  .FALSE.   , .true. ,   'yearly'  ) 
    123123 
    124124      ! 
     
    152152            CALL ctl_stop( 'sbc_rnf: unable to allocate sf_rnf structure' )   ;   RETURN 
    153153         ENDIF 
    154          !                                         ! namelist informations stored in sf_rnf structures 
    155          WRITE( sf_rnf(1)%clrootname, '(a,a)' )   TRIM( cn_dir ), TRIM( sn_rnf%clname ) 
    156          sf_rnf(1)%freqh   = sn_rnf%freqh 
    157          sf_rnf(1)%clvar   = sn_rnf%clvar 
    158          sf_rnf(1)%ln_tint = sn_rnf%ln_tint 
    159          sf_rnf(1)%nclim   = sn_rnf%nclim 
    160          sf_rnf(1)%nstrec  = sn_rnf%nstrec 
    161          IF(lwp) THEN                              ! control print 
    162             WRITE(numout,*) '   Runoffs data read in the following file: ' 
    163             WRITE(numout,*) '               root filename: '  , trim( sf_rnf(1)%clrootname ),   & 
    164                &                          ' variable name: '  , trim( sf_rnf(1)%clvar      ) 
    165             WRITE(numout,*) '               frequency: '      ,       sf_rnf(1)%freqh       ,   & 
    166                &                          ' time interp: '    ,       sf_rnf(1)%ln_tint     ,   & 
    167                &                          ' climatology: '    ,       sf_rnf(1)%nclim       ,   & 
    168                &                          ' starting record: ',       sf_rnf(1)%nstrec 
    169          ENDIF 
     154 
     155         ! fill sf_rnf with sn_rnf and control print 
     156         CALL fld_fill( sf_rnf, (/ sn_rnf /), cn_dir, 'sbc_rnf_init', 'read runoffs data', 'namsbc_rnf' ) 
    170157         ! 
    171158      ENDIF 
     
    238225      IF(lwp) WRITE(numout,*) '~~~~~~~~~ ' 
    239226 
    240       WRITE(cl_rnfile, '(a,a)')   TRIM( cn_dir ), TRIM( sn_cnf%clname ) 
    241       SELECT CASE( sn_cnf%nclim ) 
    242       CASE( 0 ) 
    243          WRITE(cl_rnfile, '(a,a,"_",i4,".nc")' ) TRIM( cn_dir ), TRIM( sn_cnf%clname ), nyear 
    244       CASE( 1 ) 
    245          WRITE(cl_rnfile, '(a,a,  ".nc")' ) TRIM( cn_dir ), TRIM( sn_cnf%clname ) 
    246       END SELECT 
    247  
     227      cl_rnfile = TRIM( cn_dir )//TRIM( sn_cnf%clname ) 
     228      IF( .NOT. sn_cnf%ln_clim ) THEN   ;   WRITE(cl_rnfile, '(a,"_y",i4)' ) TRIM( cl_rnfile ), nyear    ! add year 
     229         IF( sn_cnf%cltype == 'monthly' )   WRITE(cl_rnfile, '(a,"m",i2)'  ) TRIM( cl_rnfile ), nmonth   ! add month 
     230      ENDIF 
     231   
    248232      ! horizontal mask (read in NetCDF file) 
    249233      CALL iom_open ( cl_rnfile, inum )                           ! open file 
  • trunk/NEMO/OPA_SRC/SBC/sbcssr.F90

    r1106 r1133  
    8686         cn_dir = './'       ! directory in which the model is executed 
    8787         ! ... default values (NB: frequency positive => hours, negative => months) 
    88          !            !   file    ! frequency !  variable  ! time intep !  clim  ! starting ! 
    89          !            !   name    !  (hours)  !   name     !   (T/F)    !  (0/1) !  record  ! 
    90          sn_sst = FLD_N( 'sst'     ,    24.    ,  'sst'     ,  .FALSE.   ,    0   ,     0    ) 
    91          sn_sss = FLD_N( 'sss'     ,   -12.    ,  'sss'     ,  .TRUE.    ,    0   ,     0    ) 
     88         !            !   file    ! frequency !  variable  ! time intep !  clim   ! 'yearly' or ! 
     89         !            !   name    !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  ! 
     90         sn_sst = FLD_N( 'sst'    ,    24.    ,  'sst'     ,  .false.   , .false. ,   'yearly'  ) 
     91         sn_sss = FLD_N( 'sss'    ,    -1.    ,  'sss'     ,  .true.    , .false. ,   'yearly'  ) 
    9292 
    9393         REWIND ( numnam )         ! ... read in namlist namflx 
     
    111111               CALL ctl_stop( 'sbc_ssr: unable to allocate sf_sst structure' )   ;   RETURN 
    112112            ENDIF 
    113             ! namelist informations stored in sf_sst structures 
    114             WRITE( sf_sst(1)%clrootname, '(a,a)' )   TRIM( cn_dir ), TRIM( sn_sst%clname ) 
    115             sf_sst(1)%freqh   = sn_sst%freqh 
    116             sf_sst(1)%clvar   = sn_sst%clvar  
    117             sf_sst(1)%ln_tint = sn_sst%ln_tint 
    118             sf_sst(1)%nclim   = sn_sst%nclim   
    119             sf_sst(1)%nstrec  = sn_sst%nstrec   
    120             IF(lwp) THEN             ! control print 
    121                WRITE(numout,*) '   SST restoring term toward SST data in the following file: ' 
    122                WRITE(numout,*) '               root filename: '  , trim( sf_sst(1)%clrootname ),   & 
    123                   &                          ' variable name: '  , trim( sf_sst(1)%clvar      ) 
    124                WRITE(numout,*) '               frequency: '      ,       sf_sst(1)%freqh       ,   & 
    125                   &                          ' time interp: '    ,       sf_sst(1)%ln_tint     ,   & 
    126                   &                          ' climatology: '    ,       sf_sst(1)%nclim       ,   & 
    127                   &                          ' starting record: ',       sf_sst(1)%nstrec 
    128             ENDIF 
     113            ! fill sf_sst with sn_sst and control print 
     114            CALL fld_fill( sf_sst, (/ sn_sst /), cn_dir, 'sbc_ssr', 'SST restoring term toward SST data', 'namsbc_ssr' ) 
     115 
    129116         ENDIF 
    130117         ! 
     
    135122               CALL ctl_stop( 'sbc_ssr: unable to allocate sf_sss structure' )   ;   RETURN 
    136123            ENDIF 
    137             ! namelist informations stored in sf_sss structures 
    138             WRITE( sf_sss(1)%clrootname, '(a,a)' )   TRIM( cn_dir ), TRIM( sn_sss%clname ) 
    139             sf_sss(1)%freqh   = sn_sss%freqh 
    140             sf_sss(1)%clvar   = sn_sss%clvar 
    141             sf_sss(1)%ln_tint = sn_sss%ln_tint 
    142             sf_sss(1)%nclim   = sn_sss%nclim 
    143             sf_sss(1)%nstrec  = sn_sss%nstrec 
    144             IF(lwp) THEN             ! control print 
    145                WRITE(numout,*) '   SSS dampming  term toward SSS data in the following file: '  
    146                WRITE(numout,*) '               root filename: '  , trim( sf_sss(1)%clrootname ),   & 
    147                   &                          ' variable name: '  , trim( sf_sss(1)%clvar      ) 
    148                WRITE(numout,*) '               frequency: '      ,       sf_sss(1)%freqh       ,   & 
    149                   &                          ' time interp: '    ,       sf_sss(1)%ln_tint     ,   & 
    150                   &                          ' climatology: '    ,       sf_sss(1)%nclim       ,   & 
    151                   &                          ' starting record: ',       sf_sss(1)%nstrec 
    152             ENDIF 
     124            ! fill sf_sss with sn_sss and control print 
     125            CALL fld_fill( sf_sss, (/ sn_sss /), cn_dir, 'sbc_ssr', 'SSS restoring term toward SSS data', 'namsbc_ssr' ) 
     126 
    153127         ENDIF 
    154128         ! 
Note: See TracChangeset for help on using the changeset viewer.