Changes between Version 10 and Version 11 of 2011WP/2011Stream2/Open Boundaries


Ignore:
Timestamp:
2011-03-29T13:03:47+02:00 (10 years ago)
Author:
davestorkey
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • 2011WP/2011Stream2/Open Boundaries

    v10 v11  
    153153   USE fldread 
    154154 
    155    INTEGER, PARAMETER :: nb_dta_max = 10    
     155   INTEGER  :: nb_dta(nb_obc_max)    
    156156   TYPE(FLD), ALLOCATABLE, DIMENSION(:,:) ::   bf 
    157157    
     
    168168 
    169169      REWIND ( numnam )        
     170      jfld = 0 
     171      jfld_prev = 0 
    170172      DO ib_set = 1, nb_set    
    171          ! set file information 
    172          cn_dir = './'        ! directory in which the model is executed 
    173          ! ... default values (NB: frequency positive => hours, negative => months) 
    174          !              !  file   ! frequency !  variable  ! time intep !  clim   ! 'yearly' or ! weights  ! rotation  ! 
    175          !              !  name   !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  ! filename ! pairs     ! 
    176          bn_tem      = 'bn_tem'   ,    24     , 'bn_tem' ,   .true.     , .false. , 'daily'     , ''       , '' 
    177          bn_sal      = 'bn_sal'   ,    24     , 'bn_sal' ,   .true.     , .false. , 'daily'     , ''       , '' 
    178          bn_uvel     = 'bn_uvel'  ,    24     , 'bn_uvel',   .true.     , .false. , 'daily'     , ''       , '' 
    179          bn_vvel     = 'bn_vvel'  ,    24     , 'bn_vvel',   .true.     , .false. , 'daily'     , ''       , '' 
    180          bn_ssh      = 'bn_ssh'   ,    24     , 'bn_ssh' ,   .true.     , .false. , 'daily'     , ''       , '' 
    181          bn_ubar     = 'bn_ubar'  ,    24     , 'bn_ubar',   .true.     , .false. , 'daily'     , ''       , '' 
    182          bn_vbar     = 'bn_vbar'  ,    24     , 'bn_vbar',   .true.     , .false. , 'daily'     , ''       , '' 
    183  
    184          READ   ( numnam, namobc_dta )  
    185  
    186          ! Only read in necessary fields for this set. 
    187          zcount = 0         
    188          IF( nn_barotropic(ib_set) .gt. 0 ) THEN 
    189             zcount = zcount+1 ; jp_ssh = zcount 
    190             blf_i(jp_ssh) = bn_ssh 
    191             zcount = zcount+1 ; jp_ubar = zcount 
    192             blf_i(jp_ubar) = bn_ubar 
    193             zcount = zcount+1 ; jp_vbar = zcount 
    194             blf_i(jp_vbar) = bn_vbar 
    195          ENDIF 
    196          IF( nn_tra(ib_set) .gt. 0 ) THEN 
    197          .... 
     173         IF ( nn_dtactl(ib_set) .eq. 1 ) THEN  
     174            ! set file information 
     175            cn_dir = './'        ! directory in which the model is executed 
     176            ! ... default values (NB: frequency positive => hours, negative => months) 
     177            !              !  file   ! frequency !  variable  ! time intep !  clim   ! 'yearly' or ! weights  ! rotation  ! 
     178            !              !  name   !  (hours)  !   name     !   (T/F)    !  (T/F)  !  'monthly'  ! filename ! pairs     ! 
     179            bn_tem      = 'bn_tem'   ,    24     , 'bn_tem' ,   .true.     , .false. , 'daily'     , ''       , '' 
     180            bn_sal      = 'bn_sal'   ,    24     , 'bn_sal' ,   .true.     , .false. , 'daily'     , ''       , '' 
     181            bn_uvel     = 'bn_uvel'  ,    24     , 'bn_uvel',   .true.     , .false. , 'daily'     , ''       , '' 
     182            bn_vvel     = 'bn_vvel'  ,    24     , 'bn_vvel',   .true.     , .false. , 'daily'     , ''       , '' 
     183            bn_ssh      = 'bn_ssh'   ,    24     , 'bn_ssh' ,   .true.     , .false. , 'daily'     , ''       , '' 
     184            bn_ubar     = 'bn_ubar'  ,    24     , 'bn_ubar',   .true.     , .false. , 'daily'     , ''       , '' 
     185            bn_vbar     = 'bn_vbar'  ,    24     , 'bn_vbar',   .true.     , .false. , 'daily'     , ''       , '' 
     186 
     187            READ   ( numnam, namobc_dta )  
     188 
     189            ! Only read in necessary fields for this set. 
     190            IF( nn_dyn2d(ib_set) .gt. 0 ) THEN 
     191               jfld = jfld + 1  
     192               blf_i(jfd) = bn_ssh 
     193               jfld = jfld + 1 
     194               blf_i(jfld) = bn_ubar 
     195               jfld = jfld + 1 
     196               blf_i(jfld) = bn_vbar 
     197            ENDIF 
     198            IF( nn_tra(ib_set) .gt. 0 ) THEN 
     199            .... 
    198200          
    199          nb_dta(ib_set) = zcount 
    200  
    201          ALLOCATE( bf(jpfld), STAT=ierror )        ! set sf structure 
    202          IF( ierror > 0 ) THEN    
    203             CALL ctl_stop( 'sbc_flx: unable to allocate sf structure' )   ;   RETURN   
    204          ENDIF 
    205          DO ji= 1, jpfld 
    206             ALLOCATE( sf(ji)%fnow(jpi,jpj,1) ) 
    207             IF( slf_i(ji)%ln_tint ) ALLOCATE( sf(ji)%fdta(jpi,jpj,1,2) ) 
    208          END DO 
    209  
    210          CALL fld_fill( bf(1:nb_dta(ib_set)), blf_i(ib_set,1:nb_dta(ib_set)), ... ) 
    211  
     201            nb_dta(ib_set) = jfld - jfld_prev 
     202            jfld_prev = jfld 
     203         END IF 
    212204      END DO 
     205 
     206      ALLOCATE( bf(SUM(nb_dta)), STAT=ierror )        ! set sf structure 
     207 
     208      jfld = 0 
     209      DO ib_set = 1, nb_set    
     210         IF ( nn_dtactl(ib_set) .eq. 1 ) THEN  
     211 
     212            DO ji= 1, nb_dta(ibset) 
     213               jfld = jfld+1 
     214               ALLOCATE( sf(jfld)%fnow(nblen_dta(ib_set),1,1) ) 
     215               IF( slf_i(jfld)%ln_tint ) ALLOCATE( sf(ji)%fdta(nblen_dta(ib_set),1,1,2) ) 
     216            END DO 
     217 
     218         END IF 
     219      END DO 
     220 
     221      CALL fld_fill( bf, blf_i, ... ) 
     222 
    213223   END IF 
     224 
    214225 
    215226   DO ib_set = 1, nb_set