Changeset 3270


Ignore:
Timestamp:
2012-01-20T12:44:56+01:00 (9 years ago)
Author:
cetlod
Message:

dev_NEMO_MERGE_2011:Minor correction on dtadyn.F90 to run a 1D configuration offline

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90

    r3238 r3270  
    135135         CALL fld_read( kt, 1, sf_dyn )      !==   read data at kt time step   ==! 
    136136         ! 
    137          IF( lk_ldfslp .AND. sf_dyn(jf_tem)%ln_tint ) THEN    ! Computes slopes (here avt is used as workspace)                        
    138             zts(:,:,:,jf_tem) = sf_dyn(jf_tem)%fdta(:,:,:,1) * tmask(:,:,:)   ! temperature 
    139             zts(:,:,:,jf_sal) = sf_dyn(jf_sal)%fdta(:,:,:,1) * tmask(:,:,:)   ! salinity  
     137         IF( lk_ldfslp .AND. .NOT.lk_c1d .AND. sf_dyn(jf_tem)%ln_tint ) THEN    ! Computes slopes (here avt is used as workspace)                        
     138            zts(:,:,:,jp_tem) = sf_dyn(jf_tem)%fdta(:,:,:,1) * tmask(:,:,:)   ! temperature 
     139            zts(:,:,:,jp_sal) = sf_dyn(jf_sal)%fdta(:,:,:,1) * tmask(:,:,:)   ! salinity  
    140140            avt(:,:,:)        = sf_dyn(jf_avt)%fdta(:,:,:,1) * tmask(:,:,:)   ! vertical diffusive coef. 
    141141            CALL dta_dyn_slp( kt, zts, zuslp, zvslp, zwslpi, zwslpj ) 
     
    159159      ENDIF 
    160160      !  
    161       IF( lk_ldfslp ) THEN    ! Computes slopes (here avt is used as workspace)                        
     161      IF( lk_ldfslp .AND. .NOT.lk_c1d ) THEN    ! Computes slopes (here avt is used as workspace)                        
    162162         iswap_tem = 0 
    163163         IF(  kt /= nit000 .AND. ( sf_dyn(jf_tem)%nrec_a(2) - nrecprev_tem ) /= 0 )  iswap_tem = 1 
     
    173173               ENDIF 
    174174               ! 
    175                zts(:,:,:,jf_tem) = sf_dyn(jf_tem)%fdta(:,:,:,2) * tmask(:,:,:)   ! temperature 
    176                zts(:,:,:,jf_sal) = sf_dyn(jf_sal)%fdta(:,:,:,2) * tmask(:,:,:)   ! salinity  
     175               zts(:,:,:,jp_tem) = sf_dyn(jf_tem)%fdta(:,:,:,2) * tmask(:,:,:)   ! temperature 
     176               zts(:,:,:,jp_sal) = sf_dyn(jf_sal)%fdta(:,:,:,2) * tmask(:,:,:)   ! salinity  
    177177               avt(:,:,:)        = sf_dyn(jf_avt)%fdta(:,:,:,2) * tmask(:,:,:)   ! vertical diffusive coef. 
    178178               CALL dta_dyn_slp( kt, zts, zuslp, zvslp, zwslpi, zwslpj ) 
     
    183183               wslpjdta(:,:,:,2) = zwslpj(:,:,:)  
    184184            ELSE 
    185                zts(:,:,:,jf_tem) = sf_dyn(jf_tem)%fnow(:,:,:) * tmask(:,:,:) 
    186                zts(:,:,:,jf_sal) = sf_dyn(jf_sal)%fnow(:,:,:) * tmask(:,:,:) 
     185               zts(:,:,:,jp_tem) = sf_dyn(jf_tem)%fnow(:,:,:) * tmask(:,:,:) 
     186               zts(:,:,:,jp_sal) = sf_dyn(jf_sal)%fnow(:,:,:) * tmask(:,:,:) 
    187187               avt(:,:,:)        = sf_dyn(jf_avt)%fnow(:,:,:) * tmask(:,:,:) 
    188188               CALL dta_dyn_slp( kt, zts, zuslp, zvslp, zwslpi, zwslpj ) 
     
    241241      ENDIF 
    242242      ! 
    243       tsn(:,:,:,jf_tem) = sf_dyn(jf_tem)%fnow(:,:,:) * tmask(:,:,:)    ! temperature 
    244       tsn(:,:,:,jf_sal) = sf_dyn(jf_sal)%fnow(:,:,:) * tmask(:,:,:)    ! salinity 
    245       ! 
    246       CALL eos( tsn, rhd, rhop )                                       ! In any case, we need rhop 
     243      tsn(:,:,:,jp_tem) = sf_dyn(jf_tem)%fnow(:,:,:) * tmask(:,:,:)    ! temperature 
     244      tsn(:,:,:,jp_sal) = sf_dyn(jf_sal)%fnow(:,:,:) * tmask(:,:,:)    ! salinity 
     245      ! 
     246      CALL eos    ( tsn, rhd, rhop )                                       ! In any case, we need rhop 
     247      CALL zdf_mxl( kt )                                                   ! In any case, we need mxl  
    247248      ! 
    248249      avt(:,:,:)       = sf_dyn(jf_avt)%fnow(:,:,:) * tmask(:,:,:)    ! vertical diffusive coefficient  
     
    257258      fr_i(:,:)        = sf_dyn(jf_ice)%fnow(:,:,1) * tmask(:,:,1)     ! Sea-ice fraction 
    258259      qsr (:,:)        = sf_dyn(jf_qsr)%fnow(:,:,1) * tmask(:,:,1)    ! solar radiation 
     260 
    259261      !                                                      ! bbl diffusive coef 
    260 #if defined key_trabbl 
     262#if defined key_trabbl && ! defined key_c1d 
    261263      IF( ln_dynbbl ) THEN                                        ! read in a file 
    262264         ahu_bbl(:,:)  = sf_dyn(jf_ubl)%fnow(:,:,1) * umask(:,:,1) 
     
    267269      END IF 
    268270#endif 
    269 #if ! defined key_degrad && defined key_traldf_c2d && defined key_traldf_eiv 
     271#if ( ! defined key_degrad && defined key_traldf_c2d && defined key_traldf_eiv ) && ! defined key_c1d  
    270272      aeiw(:,:)        = sf_dyn(jf_eiw)%fnow(:,:,1) * tmask(:,:,1)    ! w-eiv 
    271273      !                                                           ! Computes the horizontal values from the vertical value 
     
    279281#endif 
    280282       
    281 #if defined key_degrad 
     283#if defined key_degrad && ! defined key_c1d  
    282284      !                                          ! degrad option : diffusive and eiv coef are 3D 
    283285      ahtu(:,:,:) = sf_dyn(jf_ahu)%fnow(:,:,:) * umask(:,:,:) 
    284286      ahtv(:,:,:) = sf_dyn(jf_ahv)%fnow(:,:,:) * vmask(:,:,:) 
    285287      ahtw(:,:,:) = sf_dyn(jf_ahw)%fnow(:,:,:) * tmask(:,:,:) 
    286 #  if defined key_traldf_eiv 
     288#  if defined key_traldf_eiv  
    287289      aeiu(:,:,:) = sf_dyn(jf_eiu)%fnow(:,:,:) * umask(:,:,:) 
    288290      aeiv(:,:,:) = sf_dyn(jf_eiv)%fnow(:,:,:) * vmask(:,:,:) 
     
    292294      ! 
    293295      IF(ln_ctl) THEN                  ! print control 
    294          CALL prt_ctl(tab3d_1=tsn(:,:,:,jf_tem), clinfo1=' tn      - : ', mask1=tmask, ovlap=1, kdim=jpk   ) 
    295          CALL prt_ctl(tab3d_1=tsn(:,:,:,jf_sal), clinfo1=' sn      - : ', mask1=tmask, ovlap=1, kdim=jpk   ) 
     296         CALL prt_ctl(tab3d_1=tsn(:,:,:,jp_tem), clinfo1=' tn      - : ', mask1=tmask, ovlap=1, kdim=jpk   ) 
     297         CALL prt_ctl(tab3d_1=tsn(:,:,:,jp_sal), clinfo1=' sn      - : ', mask1=tmask, ovlap=1, kdim=jpk   ) 
    296298         CALL prt_ctl(tab3d_1=un               , clinfo1=' un      - : ', mask1=umask, ovlap=1, kdim=jpk   ) 
    297299         CALL prt_ctl(tab3d_1=vn               , clinfo1=' vn      - : ', mask1=vmask, ovlap=1, kdim=jpk   ) 
     
    381383         ln_degrad = .FALSE. 
    382384      ENDIF 
    383       IF( ln_dynbbl .AND. .NOT.lk_trabbl ) THEN 
     385      IF( ln_dynbbl .AND. ( .NOT.lk_trabbl .OR. lk_c1d ) ) THEN 
    384386         CALL ctl_warn( 'dta_dyn_init: bbl option requires key_trabbl activated ; force ln_dynbbl to false' ) 
    385387         ln_dynbbl = .FALSE. 
     
    449451      CALL fld_fill( sf_dyn, slf_d, cn_dir, 'dta_dyn_init', 'Data in file', 'namdta_dyn' ) 
    450452      ! 
    451       IF( lk_ldfslp ) THEN                  ! slopes  
     453      IF( lk_ldfslp .AND. .NOT.lk_c1d ) THEN                  ! slopes  
    452454         IF( sf_dyn(jf_tem)%ln_tint ) THEN      ! time interpolation 
    453455            ALLOCATE( uslpdta (jpi,jpj,jpk,2), vslpdta (jpi,jpj,jpk,2),    & 
     
    536538      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(out) :: pwslpi   ! zonal diapycnal slopes 
    537539      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(out) :: pwslpj   ! meridional diapycnal slopes 
    538       !!  
     540      !!--------------------------------------------------------------------- 
    539541#if defined key_ldfslp && ! defined key_c1d 
    540542      CALL eos( pts, rhd, rhop )   ! Time-filtered in situ density  
     
    550552      pwslpj(:,:,:) = wslpj(:,:,:)  
    551553#else 
    552       WRITE(*,*) 'dta_dyn_slp: You should not have seen this print! error?', & 
    553         &        kt, pts(1,1,1,1),puslp(1,1,1), pvslp(1,1,1), pwslpi(1,1,1), pwslpj(1,1,1) 
     554      puslp (:,:,:) = 0.            ! to avoid warning when compiling 
     555      pvslp (:,:,:) = 0. 
     556      pwslpi(:,:,:) = 0. 
     557      pwslpj(:,:,:) = 0. 
    554558#endif 
    555559      ! 
Note: See TracChangeset for help on using the changeset viewer.