- Timestamp:
- 2019-08-05T19:14:52+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isf.F90
r11395 r11403 11 11 12 12 !!---------------------------------------------------------------------- 13 !! isf mlt : compute iceshelf melt and heat flux13 !! isf : define and allocate ice shelf variables 14 14 !!---------------------------------------------------------------------- 15 15 … … 32 32 REAL(wp), PUBLIC :: rn_gammas0 !: salinity exchange coeficient [] 33 33 REAL(wp), PUBLIC :: rn_htbl !: Losch top boundary layer thickness [m] 34 CHARACTER(LEN=256), PUBLIC :: cn_isfload !: ice shelf load computation method 34 35 CHARACTER(LEN=256), PUBLIC :: cn_gammablk !: gamma formulation 35 36 CHARACTER(LEN=256), PUBLIC :: cn_isfcav_mlt, cn_isfpar_mlt !: melt formulation (cavity/param) … … 47 48 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: mskisf_par, mskisf_cav !: Level of ice shelf base 48 49 ! 49 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rhisf_tbl, rhisf_tbl_0 !: thickness of tbl [m] 50 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rhisf_tbl_cav, rhisf_tbl_par !: thickness of tbl [m] 50 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: risfload !: ice shelf load 51 ! 52 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rhisf_tbl_0 !: thickness of tbl (initial value) [m] 53 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rhisf_tbl_cav, rhisf_tbl_par !: thickness of tbl [m] 51 54 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rfrac_tbl_cav, rfrac_tbl_par !: fraction of the deepest cell affect by isf tbl [] 52 55 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rhisf0_tbl_par 53 56 ! 57 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fwfisf_cpl 54 58 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fwfisf_par, fwfisf_par_b !: net fwf from the ice shelf [kg/m2/s] 55 59 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fwfisf_cav, fwfisf_cav_b !: net fwf from the ice shelf [kg/m2/s] 56 60 ! 57 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: risfdep !: Iceshelf draft (ISF)58 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: bathy !: Bathymetry (needed for isf tbl definition) (ISF)59 61 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: risfLeff 60 62 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: risf_cav_tsc_b, risf_cav_tsc !: before and now T & S isf contents [K.m/s & PSU.m/s] … … 91 93 SUBROUTINE isf_alloc_par() 92 94 !!--------------------------------------------------------------------- 93 !! *** ROUTINE isf mlt_alloc***95 !! *** ROUTINE isf_alloc_par *** 94 96 !! 95 97 !! ** Purpose : … … 105 107 ierr = ierr + ialloc 106 108 ! 109 ALLOCATE(misfkt_par(jpi,jpj), misfkb_par(jpi,jpj), STAT=ialloc ) 110 ierr = ierr + ialloc 111 ! 112 ALLOCATE( rfrac_tbl_par(jpi,jpj), STAT=ialloc) 113 ierr = ierr + ialloc 114 ! 115 ALLOCATE( rhisf_tbl_par(jpi,jpj), rhisf0_tbl_par(jpi,jpj), STAT=ialloc) 116 ierr = ierr + ialloc 117 ! 118 ALLOCATE( mskisf_par(jpi,jpj), STAT=ialloc) 119 ierr = ierr + ialloc 120 ! 107 121 CALL mpp_sum ( 'isf', ierr ) 108 122 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'isf: failed to allocate arrays.' ) … … 111 125 SUBROUTINE isf_alloc_cav() 112 126 !!--------------------------------------------------------------------- 113 !! *** ROUTINE isf mlt_alloc***127 !! *** ROUTINE isf_alloc_cav *** 114 128 !! 115 129 !! ** Purpose : … … 122 136 ierr = 0 ! set to zero if no array to be allocated 123 137 ! 138 ALLOCATE(misfkt_cav(jpi,jpj), misfkb_cav(jpi,jpj), STAT=ialloc ) 139 ierr = ierr + ialloc 140 ! 141 ALLOCATE( rfrac_tbl_cav(jpi,jpj), STAT=ialloc) 142 ierr = ierr + ialloc 143 ! 144 ALLOCATE( rhisf_tbl_cav(jpi,jpj), STAT=ialloc) 145 ierr = ierr + ialloc 146 ! 147 ALLOCATE( mskisf_cav(jpi,jpj), STAT=ialloc) 148 ierr = ierr + ialloc 149 ! 124 150 CALL mpp_sum ( 'isf', ierr ) 125 151 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'isf: failed to allocate arrays.' ) … … 128 154 SUBROUTINE isf_alloc() 129 155 !!--------------------------------------------------------------------- 130 !! *** ROUTINE isf mlt_alloc ***156 !! *** ROUTINE isf_alloc *** 131 157 !! 132 158 !! ** Purpose : … … 140 166 ierr = 0 ! set to zero if no array to be allocated 141 167 ! 142 ALLOCATE(misfkt_par(jpi,jpj), misfkb_par(jpi,jpj), & 143 & misfkt_cav(jpi,jpj), misfkb_cav(jpi,jpj), STAT=ialloc ) 168 ALLOCATE(fwfisf_par(jpi,jpj), fwfisf_par_b(jpi,jpj), & 169 & fwfisf_cav(jpi,jpj), fwfisf_cav_b(jpi,jpj), & 170 & fwfisf_cpl(jpi,jpj), STAT=ialloc ) 144 171 ierr = ierr + ialloc 145 172 ! 146 ALLOCATE(fwfisf_par(jpi,jpj), fwfisf_par_b(jpi,jpj), & 147 & fwfisf_cav(jpi,jpj), fwfisf_cav_b(jpi,jpj), STAT=ialloc ) 173 ALLOCATE(risf_par_tsc(jpi,jpj,jpts), risf_par_tsc_b(jpi,jpj,jpts), STAT=ialloc ) 148 174 ierr = ierr + ialloc 149 175 ! 150 ALLOCATE(risf_cav_tsc(jpi,jpj,jpts), risf_cav_tsc_b(jpi,jpj,jpts), & 151 & risf_par_tsc(jpi,jpj,jpts), risf_par_tsc_b(jpi,jpj,jpts), STAT=ialloc ) 176 ALLOCATE(risf_cav_tsc(jpi,jpj,jpts), risf_cav_tsc_b(jpi,jpj,jpts), STAT=ialloc ) 152 177 ierr = ierr + ialloc 153 178 ! 154 ALLOCATE( rfrac_tbl_cav(jpi,jpj), rfrac_tbl_par(jpi,jpj), STAT=ialloc) 155 ierr = ierr + ialloc 156 ! 157 ALLOCATE( rhisf_tbl_par(jpi,jpj), rhisf_tbl_cav(jpi,jpj), STAT=ialloc) 158 ierr = ierr + ialloc 159 ! 160 ALLOCATE( mskisf_cav(jpi,jpj), mskisf_par(jpi,jpj), STAT=ialloc) 161 ierr = ierr + ialloc 162 ! 163 ALLOCATE(risfdep(jpi,jpj), bathy(jpi,jpj), STAT=ialloc) 179 ALLOCATE(risfload(jpi,jpj), STAT=ialloc) 164 180 ierr = ierr + ialloc 165 181 !
Note: See TracChangeset
for help on using the changeset viewer.