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 14200 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/DOM/domain.F90 – NEMO

Ignore:
Timestamp:
2020-12-17T15:36:44+01:00 (3 years ago)
Author:
mcastril
Message:

Merging r14117 through r14199 into dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/OCE/DOM/domain.F90

    r14090 r14200  
    2828   USE oce            ! ocean variables 
    2929   USE dom_oce        ! domain: ocean 
     30   USE domtile        ! tiling utilities 
    3031#if defined key_qco 
    31    USE domqco         ! quasi-eulerian 
     32   USE domqco         ! quasi-eulerian coord. 
     33#elif defined key_linssh 
     34   !                  ! fix in time coord. 
    3235#else 
    33    USE domvvl         ! variable volume 
    34 #endif 
    35    USE sshwzv  , ONLY : ssh_init_rst   ! set initial ssh 
     36   USE domvvl         ! variable volume coord. 
     37#endif 
     38#if defined key_agrif 
     39   USE agrif_oce_interp, ONLY : Agrif_istate_ssh ! ssh interpolated from parent 
     40#endif 
    3641   USE sbc_oce        ! surface boundary condition: ocean 
    3742   USE trc_oce        ! shared ocean & passive tracers variab 
     
    3944   USE domhgr         ! domain: set the horizontal mesh 
    4045   USE domzgr         ! domain: set the vertical mesh 
    41    USE domtile 
    4246   USE dommsk         ! domain: set the mask system 
    4347   USE domwri         ! domain: write the meshmask file 
     
    5155   USE lbclnk         ! ocean lateral boundary condition (or mpp link) 
    5256   USE lib_mpp        ! distributed memory computing library 
    53    USE restart        ! only for lrst_oce 
     57   USE restart        ! only for lrst_oce and rst_read_ssh 
    5458 
    5559   IMPLICIT NONE 
     
    169173         DO_2D( 1, 1, 1, 1 ) 
    170174            IF( ht_0(ji,jj) < 0._wp .AND. ssmask(ji,jj) == 1._wp ) THEN 
    171                CALL ctl_stop( 'ssh_init_rst : ht_0 must be positive at potentially wet points' ) 
     175               CALL ctl_stop( 'dom_init : ht_0 must be positive at potentially wet points' ) 
    172176            ENDIF 
    173177         END_2D 
     
    177181      ! 
    178182      !                                 != ssh initialization 
    179       IF( .NOT.l_offline .AND. .NOT.l_SAS ) THEN 
    180          CALL ssh_init_rst( Kbb, Kmm, Kaa ) 
    181       ELSE 
     183      ! 
     184      IF( l_offline .OR. l_SAS ) THEN        !* No ocean dynamics calculation : set to 0 
    182185         ssh(:,:,:) = 0._wp 
    183       ENDIF 
    184       ! 
     186#if defined key_agrif 
     187      ELSEIF( .NOT.Agrif_root() .AND.    & 
     188         &     ln_init_chfrpar ) THEN        !* Interpolate initial ssh from parent 
     189         CALL Agrif_istate_ssh( Kbb, Kmm, Kaa ) 
     190#endif 
     191      ELSE                                   !* Read in restart file or set by user 
     192         CALL rst_read_ssh( Kbb, Kmm, Kaa ) 
     193      ENDIF 
     194      !      
    185195#if defined key_qco 
    186196      !                                 != Quasi-Euerian coordinate case 
    187197      ! 
    188198      IF( .NOT.l_offline )   CALL dom_qco_init( Kbb, Kmm, Kaa ) 
     199#elif defined key_linssh 
     200      !                                 != Fix in time : key_linssh case, set through domzgr_substitute.h90 
    189201#else 
    190202      ! 
     
    345357      IF(lwm) WRITE( numond, namdom ) 
    346358      ! 
     359#if defined key_linssh 
     360      ln_linssh = lk_linssh      ! overwrite ln_linssh with the logical associated with key_linssh 
     361#endif 
     362      ! 
    347363#if defined key_agrif 
    348364      IF( .NOT. Agrif_Root() ) THEN    ! AGRIF child, subdivide the Parent timestep 
     
    371387      ! 
    372388#if defined key_qco 
    373       IF( ln_linssh )   CALL ctl_stop( 'STOP','domain: key_qco and ln_linssh = T are incompatible' ) 
     389      IF( ln_linssh )   CALL ctl_stop( 'STOP','domain: key_qco and ln_linssh=T or key_linssh are incompatible' ) 
    374390#endif 
    375391      ! 
Note: See TracChangeset for help on using the changeset viewer.