- Timestamp:
- 2019-10-04T21:03:26+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/ENHANCE-03_closea/src/OCE/DOM/closea.F90
r11629 r11656 19 19 !! clo_msk : set to zero a field over closed sea (see domzgr) 20 20 !!---------------------------------------------------------------------- 21 USE oce ! dynamics and tracers 22 USE dom_oce ! ocean space and time domain 23 USE phycst ! physical constants 24 USE sbc_oce ! ocean surface boundary conditions 25 USE iom ! I/O routines 21 USE in_out_manager ! I/O manager 26 22 ! 27 USE in_out_manager ! I/O manager 28 USE lib_fortran, ONLY: glob_sum 29 USE lbclnk ! lateral boundary condition - MPP exchanges 30 USE lib_mpp ! MPP library 31 USE timing ! Timing 23 USE diurnal_bulk, ONLY: ln_diurnal_only ! used for sanity check 24 USE iom , ONLY: iom_open, iom_get, iom_close, jpdom_data ! I/O routines 25 USE lib_fortran , ONLY: glob_sum ! fortran library 26 USE lib_mpp , ONLY: mpp_max, ctl_nam, ctl_stop ! MPP library 32 27 33 28 IMPLICIT NONE 34 PRIVATE read_csmask 35 PRIVATE alloc_csmask29 30 PRIVATE 36 31 37 32 PUBLIC dom_clo ! called by domain module … … 50 45 INTEGER, PUBLIC :: ncse !: number of closed seas empmr mappings (inferred from closea_mask_emp field) 51 46 52 INTEGER, PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: mask_opnsea, mask_csundef !: mask defining the open sea and the undefined closed sea47 INTEGER, PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: mask_opnsea, mask_csundef !: mask defining the open sea and the undefined closed sea 53 48 54 INTEGER, PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: mask_csglo , mask_csgrpglo !: mask of integers defining closed seas55 INTEGER, PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: mask_csrnf , mask_csgrprnf !: mask of integers defining closed seas rnf mappings56 INTEGER, PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: mask_csemp , mask_csgrpemp !: mask of integers defining closed seas empmr mappings49 INTEGER, PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: mask_csglo , mask_csgrpglo !: mask of integers defining closed seas 50 INTEGER, PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: mask_csrnf , mask_csgrprnf !: mask of integers defining closed seas rnf mappings 51 INTEGER, PUBLIC, SAVE, ALLOCATABLE, DIMENSION(:,:) :: mask_csemp , mask_csgrpemp !: mask of integers defining closed seas empmr mappings 57 52 58 53 !! * Substitutions … … 97 92 IF(lwp) WRITE(numout,*)'dom_clo : read in masks to define closed seas ' 98 93 IF(lwp) WRITE(numout,*)'~~~~~~~' 94 IF(lwp) WRITE(numout,*) 99 95 !! 100 96 !! check option compatibility … … 116 112 IF ( ln_maskcs ) THEN 117 113 ! closed sea are masked 114 IF(lwp) WRITE(numout,*)' ln_maskcs = T : all closed seas are masked' 115 IF(lwp) WRITE(numout,*) 118 116 ! no special treatment of closed sea 119 117 ! no redistribution of emp unbalance over closed sea into river mouth/open ocean … … 121 119 ELSE 122 120 ! redistribution of emp unbalance over closed sea into river mouth/open ocean 121 IF(lwp) WRITE(numout,*)' ln_maskcs = F : net emp is corrected over defined closed seas' 122 ! 123 123 l_sbc_clo = .true. 124 124 ! … … 126 126 IF ( ln_clo_rnf) l_clo_rnf = .true. 127 127 ! 128 ! closed sea not defined (ie not in the domcfg namelist used to build the domcfg.nc file) are masked129 128 IF ( ln_mask_csundef) THEN 129 ! closed sea not defined (ie not in the domcfg namelist used to build the domcfg.nc file) are masked 130 IF(lwp) WRITE(numout,*)' ln_mask_csundef = T : all undefined closed seas are masked' 131 ! 130 132 CALL alloc_csmask( mask_csundef ) 131 133 CALL read_csmask( cn_domcfg, 'mask_csundef', mask_csundef ) 132 134 ! revert the mask for masking of undefined closed seas in domzgr 133 135 ! (0 over the undefined closed sea and 1 elsewhere) 134 mask_csundef = 1 - mask_csundef136 mask_csundef(:,:) = 1 - mask_csundef(:,:) 135 137 END IF 138 IF(lwp) WRITE(numout,*) 136 139 ! 137 140 ! allocate source mask for each cases
Note: See TracChangeset
for help on using the changeset viewer.