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 2027 for branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/ZDF – NEMO

Ignore:
Timestamp:
2010-07-29T13:33:05+02:00 (14 years ago)
Author:
cetlod
Message:

Reorganisation of the initialisation phase, see ticket:695

Location:
branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/ZDF
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/ZDF/zdfbfr.F90

    r1708 r2027  
    2626   PRIVATE 
    2727 
    28    PUBLIC   zdf_bfr    ! called by step.F90 
     28   PUBLIC   zdf_bfr         ! called by step.F90 
     29   PUBLIC   zdf_bfr_init    ! called by opa.F90 
    2930    
    3031   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   bfrua , bfrva   !: Bottom friction coefficients set in zdfbfr 
     
    7374      REAL(wp) ::   zvu, zuv, zecu, zecv   ! temporary scalars 
    7475      !!---------------------------------------------------------------------- 
    75  
    76  
    77       IF( kt == nit000 )   CALL zdf_bfr_init   ! initialisation 
    7876 
    7977      IF( nn_bfr == 2 ) THEN                 ! quadratic botton friction 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/ZDF/zdfddm.F90

    r1601 r2027  
    2424   PRIVATE 
    2525 
    26    PUBLIC   zdf_ddm    ! called by step.F90 
     26   PUBLIC   zdf_ddm       ! called by step.F90 
     27   PUBLIC   zdf_ddm_init  ! called by opa.F90 
    2728 
    2829   LOGICAL , PUBLIC, PARAMETER ::   lk_zdfddm = .TRUE.  !: double diffusive mixing flag 
     
    8586      REAL(wp), DIMENSION(jpi,jpj) ::   zmsks, zmskf, zmskd1, zmskd2, zmskd3   ! 2D workspace  
    8687      !!---------------------------------------------------------------------- 
    87  
    88       IF ( kt == nit000 )   CALL zdf_ddm_init          ! Initialization (first time-step only) 
    8988 
    9089      !                                                ! =============== 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/ZDF/zdfkpp.F90

    r2000 r2027  
    2828   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2929   USE prtctl          ! Print control 
    30    USE trdmod          ! momentum/tracers trends  
     30   USE trdmod_oce      ! ocean trends definition 
     31   USE trdtra          ! tracers trends 
    3132 
    3233   IMPLICIT NONE 
    3334   PRIVATE 
    3435 
    35    PUBLIC   zdf_kpp   ! routine called by step.F90 
    36    PUBLIC   tra_kpp   ! routine called by step.F90 
     36   PUBLIC   zdf_kpp       ! routine called by step.F90 
     37   PUBLIC   zdf_kpp_init  ! routine called by opa.F90 
     38   PUBLIC   tra_kpp       ! routine called by step.F90 
     39#if defined key_top 
     40   PUBLIC   trc_kpp       ! routine called by trcstp.F90 
     41#endif 
    3742 
    3843   LOGICAL , PUBLIC, PARAMETER ::   lk_zdfkpp = .TRUE.    !: KPP vertical mixing flag 
     
    12371242      !! 
    12381243      !! ** Purpose :   compute and add to the tracer trend the non-local 
    1239       !!      tracer flux 
     1244      !!                tracer flux 
    12401245      !! 
    12411246      !! ** Method  :   ??? 
    12421247      !! 
    12431248      !! history : 
    1244       !!     9.0  ! 05-11 (G. Madec)  Original code 
     1249      !!     1.0  ! 2005-11 (G. Madec)  Original code 
     1250      !!     3.3  ! 2010-06 (C. Ethe)  Merge TRA-TRC 
    12451251      !!---------------------------------------------------------------------- 
    12461252      !! * Modules used 
    1247       USE oce, ONLY :    ztrdt => ua,       & ! use ua as 3D workspace 
    1248                          ztrds => va          ! use va as 3D workspace 
     1253      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   ztrdt, ztrds   ! 3D workspace 
    12491254      !!---------------------------------------------------------------------- 
    12501255      INTEGER, INTENT(in) :: kt 
     
    12521257 
    12531258      IF( kt == nit000 ) THEN 
    1254          IF(lwp) WRITE(numout,*) 
     1259         IF(lwp) WRITE(numout,*)  
    12551260         IF(lwp) WRITE(numout,*) 'tra_kpp : KPP non-local tracer fluxes' 
    12561261         IF(lwp) WRITE(numout,*) '~~~~~~~   ' 
    12571262      ENDIF 
    12581263 
    1259  
    1260       ! Save ta and sa trends 
    1261       IF( l_trdtra )   THEN 
    1262          ztrdt(:,:,:) = ta(:,:,:) 
    1263          ztrds(:,:,:) = sa(:,:,:) 
     1264      IF( l_trdtra )   THEN                    !* Save ta and sa trends 
     1265         ALLOCATE( ztrdt(jpi,jpj,jpk) )   ;    ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
     1266         ALLOCATE( ztrds(jpi,jpj,jpk) )   ;    ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
    12641267      ENDIF 
    12651268 
    12661269      ! add non-local temperature and salinity flux ( in convective case only) 
    12671270      DO jk = 1, jpkm1 
    1268          DO jj = 2, jpjm1 
     1271         DO jj = 2, jpjm1  
    12691272            DO ji = fs_2, fs_jpim1 
    1270                ta(ji,jj,jk) =  ta(ji,jj,jk)                           & 
    1271                   &         - ( ghats(ji,jj,jk  ) * avt(ji,jj,jk  )   & 
    1272                   &           - ghats(ji,jj,jk+1) * avt(ji,jj,jk+1) ) * wt0(ji,jj) / fse3t(ji,jj,jk) 
    1273                sa(ji,jj,jk) = sa(ji,jj,jk)                              & 
    1274                   &         - ( ghats(ji,jj,jk  ) * fsavs(ji,jj,jk  )   & 
    1275                   &           - ghats(ji,jj,jk+1) * fsavs(ji,jj,jk+1) ) * ws0(ji,jj) / fse3t(ji,jj,jk) 
     1273               tsa(ji,jj,jk,jp_tem) =  tsa(ji,jj,jk,jp_tem)                      & 
     1274                  &                 - (  ghats(ji,jj,jk  ) * avt  (ji,jj,jk  )   &  
     1275                  &                    - ghats(ji,jj,jk+1) * avt  (ji,jj,jk+1) ) * wt0(ji,jj) / fse3t(ji,jj,jk) 
     1276               tsa(ji,jj,jk,jp_sal) =  tsa(ji,jj,jk,jp_sal)                      & 
     1277                  &                 - (  ghats(ji,jj,jk  ) * fsavs(ji,jj,jk  )   &  
     1278                  &                    - ghats(ji,jj,jk+1) * fsavs(ji,jj,jk+1) ) * ws0(ji,jj) / fse3t(ji,jj,jk) 
    12761279            END DO 
    12771280         END DO 
     
    12801283      ! save the non-local tracer flux trends for diagnostic 
    12811284      IF( l_trdtra )   THEN 
    1282          ztrdt(:,:,:) = ta(:,:,:) - ztrdt(:,:,:) 
    1283          ztrds(:,:,:) = sa(:,:,:) - ztrds(:,:,:) 
     1285         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 
     1286         ztrds(:,:,:) = tsa(:,:,:,jp_sal) - ztrds(:,:,:) 
    12841287!!bug gm jpttdzdf ==> jpttkpp 
    1285          CALL trd_mod(ztrdt, ztrds, jptra_trd_zdf, 'TRA', kt) 
     1288         CALL trd_tra( kt, 'TRA', jp_tem, jptra_trd_zdf, ztrdt ) 
     1289         CALL trd_tra( kt, 'TRA', jp_sal, jptra_trd_zdf, ztrds ) 
     1290         DEALLOCATE( ztrdt )      ;     DEALLOCATE( ztrds ) 
    12861291      ENDIF 
    12871292 
    1288       IF(ln_ctl) THEN   
    1289          CALL prt_ctl( tab3d_1=ta, clinfo1=' kpp  - Ta: ', mask1=tmask,   & 
    1290          &             tab3d_2=sa, clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
     1293      IF(ln_ctl) THEN 
     1294         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' kpp  - Ta: ', mask1=tmask,   & 
     1295         &             tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    12911296      ENDIF 
    12921297 
    12931298   END SUBROUTINE tra_kpp 
    12941299 
     1300#if defined key_top 
     1301   !!---------------------------------------------------------------------- 
     1302   !!   'key_top'                                                TOP models 
     1303   !!---------------------------------------------------------------------- 
     1304   SUBROUTINE trc_kpp( kt ) 
     1305      !!---------------------------------------------------------------------- 
     1306      !!                  ***  ROUTINE trc_kpp  *** 
     1307      !! 
     1308      !! ** Purpose :   compute and add to the tracer trend the non-local 
     1309      !!                tracer flux 
     1310      !! 
     1311      !! ** Method  :   ??? 
     1312      !! 
     1313      !! history : 
     1314      !!            9.0  ! 2005-11 (G. Madec)  Original code 
     1315      !!       NEMO 3.3  ! 2010-06 (C. Ethe )  Adapted to passive tracers 
     1316      !!---------------------------------------------------------------------- 
     1317      USE trc 
     1318      USE prtctl_trc          ! Print control 
     1319      !! * Arguments 
     1320      INTEGER ,                         INTENT( in    )  :: kt     ! ocean time-step index 
     1321      !! * Local declarations 
     1322      INTEGER  ::   ji, jj, jk, jn      ! Dummy loop indices 
     1323      REAL(wp) ::   ztra, zflx 
     1324      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::   ztrtrd 
     1325      !!---------------------------------------------------------------------- 
     1326 
     1327      IF( kt == nit000 ) THEN 
     1328         IF(lwp) WRITE(numout,*)  
     1329         IF(lwp) WRITE(numout,*) 'trc_kpp : KPP non-local tracer fluxes' 
     1330         IF(lwp) WRITE(numout,*) '~~~~~~~   ' 
     1331      ENDIF 
     1332 
     1333      IF( l_trdtrc )  ALLOCATE( ztrtrd(jpi,jpj,jpk) ) 
     1334      ! 
     1335      DO jn = 1, jptra 
     1336         ! 
     1337         IF( l_trdtrc )  ztrtrd(:,:,:)  = tra(:,:,:,jn) 
     1338         ! add non-local on passive tracer flux ( in convective case only) 
     1339         DO jk = 1, jpkm1 
     1340            DO jj = 2, jpjm1  
     1341               DO ji = fs_2, fs_jpim1 
     1342                  ! Surface tracer flux for non-local term  
     1343                  zflx = - ( emps(ji,jj) * tra(ji,jj,1,jn) * rcs ) * tmask(ji,jj,1) 
     1344                  ! compute the trend 
     1345                  ztra = - ( ghats(ji,jj,jk  ) * fsavs(ji,jj,jk  )   & 
     1346                  &        - ghats(ji,jj,jk+1) * fsavs(ji,jj,jk+1) ) * zflx / fse3t(ji,jj,jk) 
     1347                  ! add the trend to the general trend 
     1348                  tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn)  + ztra 
     1349               END DO 
     1350            END DO 
     1351         END DO 
     1352         ! save the non-local tracer flux trends for diagnostic 
     1353         IF( l_trdtrc )  ztrtrd(:,:,:)  = tra(:,:,:,jn) - ztrtrd(:,:,:) 
     1354         CALL trd_tra( kt, 'TRC', jn, jptra_trd_zdf, ztrtrd(:,:,:,jn) ) 
     1355         ! 
     1356      END DO 
     1357      IF( l_trdtrc )  DEALLOCATE( ztrtrd ) 
     1358      IF( ln_ctl )   THEN 
     1359         WRITE(charout, FMT="(' kpp')")  ;  CALL prt_ctl_trc_info(charout) 
     1360         CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=clname, clinfo2='trd' ) 
     1361      ENDIF 
     1362      ! 
     1363   END SUBROUTINE trc_kpp 
     1364#endif 
    12951365 
    12961366   SUBROUTINE zdf_kpp_init 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/ZDF/zdfric.F90

    r1601 r2027  
    2828   PRIVATE 
    2929 
    30    PUBLIC   zdf_ric    ! called by step.F90 
     30   PUBLIC   zdf_ric         ! called by step.F90 
     31   PUBLIC   zdf_ric_init    ! called by opa.F90 
    3132 
    3233   LOGICAL, PUBLIC, PARAMETER ::   lk_zdfric = .TRUE.   !: Richardson vertical mixing flag 
     
    8283      !!---------------------------------------------------------------------- 
    8384 
    84       IF( kt == nit000  ) CALL zdf_ric_init            ! Initialization (first time-step only) 
    85  
    8685      !                                                ! =============== 
    8786      DO jk = 2, jpkm1                                 ! Horizontal slab 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/ZDF/zdftke.F90

    r1756 r2027  
    5454 
    5555   PUBLIC   zdf_tke    ! routine called in step module 
     56   PUBLIC   tke_init   ! routine called in opa module 
    5657   PUBLIC   tke_rst    ! routine called in step module 
    5758 
     
    149150      !!---------------------------------------------------------------------- 
    150151      ! 
    151       IF( kt == nit000 )   CALL tke_init     ! initialisation  
    152                            ! 
    153152                           CALL tke_tke      ! now tke (en) 
    154153                           ! 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/ZDF/zdftke_old.F90

    r1617 r2027  
    4949 
    5050   PUBLIC   zdf_tke_old   ! routine called in step module 
     51   PUBLIC   zdf_tke_init  ! routine called in opa module 
    5152 
    5253   LOGICAL , PUBLIC, PARAMETER              ::   lk_zdftke_old = .TRUE.  !: TKE vertical mixing flag 
     
    182183      !!-------------------------------------------------------------------- 
    183184 
    184       IF( kt == nit000  )   CALL zdf_tke_init      ! Initialization (first time-step only) 
    185  
    186185      !                                            ! Local constant initialization 
    187186      zbbrau =  .5 * rn_ebb / rau0 
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/ZDF/zdftmx.F90

    r1601 r2027  
    2727   PRIVATE 
    2828 
    29    PUBLIC   zdf_tmx    ! called in step module  
     29   PUBLIC   zdf_tmx         ! called in step module  
     30   PUBLIC   zdf_tmx_init    ! called in opa module  
    3031 
    3132   LOGICAL, PUBLIC, PARAMETER ::   lk_zdftmx = .TRUE.    !: tidal mixing flag 
     
    9697      REAL(wp), DIMENSION(jpi,jpj) ::   zkz   ! temporary 2D workspace 
    9798      !!---------------------------------------------------------------------- 
    98  
    99       !                         
    100       IF( kt == nit000  )   CALL zdf_tmx_init      ! Initialization (first time-step only) 
    10199 
    102100      !                          ! ----------------------- ! 
Note: See TracChangeset for help on using the changeset viewer.