Changeset 2590 for branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/OBC
- Timestamp:
- 2011-02-18T13:49:27+01:00 (13 years ago)
- Location:
- branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/OBC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/OBC/obc_oce.F90
r2528 r2590 71 71 REAL(wp), PUBLIC :: obcsurftot !: Total lateral surface of open boundaries 72 72 73 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !:73 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: & !: 74 74 obctmsk, & !: mask array identical to tmask, execpt along OBC where it is set to 0 75 75 ! ! it used to calculate the cumulate flux E-P in the obcvol.F90 routine … … 87 87 INTEGER :: nje1m2, nje0m1 !: do loop index in mpp case for jpjefm1-1,jpjed 88 88 89 REAL(wp), DIMENSION(jpj) :: & !:89 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: & !: 90 90 sshfoe, & !: now climatology of the east boundary sea surface height 91 91 ubtfoe,vbtfoe !: now climatology of the east boundary barotropic transport 92 92 93 REAL(wp), DIMENSION(jpj,jpk) :: & !:93 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: & !: 94 94 ufoe, vfoe, & !: now climatology of the east boundary velocities 95 95 tfoe, sfoe, & !: now climatology of the east boundary temperature and salinity … … 97 97 ! ! in the obcdyn.F90 routine 98 98 99 REAL(wp), DIMENSION(jpi,jpj) :: sshfoe_b !: east boundary ssh correction averaged over the barotropic loop99 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshfoe_b !: east boundary ssh correction averaged over the barotropic loop 100 100 ! ! (if Flather's algoritm applied at open boundary) 101 101 … … 103 103 !! Arrays for radiative East OBC: 104 104 !!------------------------------- 105 REAL(wp), DIMENSION(jpj,jpk,3,3) :: uebnd, vebnd !: baroclinic u & v component of the velocity over 3 rows105 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: uebnd, vebnd !: baroclinic u & v component of the velocity over 3 rows 106 106 ! ! and 3 time step (now, before, and before before) 107 REAL(wp), DIMENSION(jpj,jpk,2,2) :: tebnd, sebnd !: East boundary temperature and salinity over 2 rows107 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tebnd, sebnd !: East boundary temperature and salinity over 2 rows 108 108 ! ! and 2 time step (now and before) 109 REAL(wp), DIMENSION(jpj,jpk) :: u_cxebnd, v_cxebnd !: Zonal component of the phase speed ratio computed with109 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: u_cxebnd, v_cxebnd !: Zonal component of the phase speed ratio computed with 110 110 ! ! radiation of u and v velocity (respectively) at the 111 111 ! ! east open boundary (u_cxebnd = cx rdt ) 112 REAL(wp), DIMENSION(jpj,jpk) :: uemsk, vemsk, temsk !: 2D mask for the East OB112 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: uemsk, vemsk, temsk !: 2D mask for the East OB 113 113 114 114 ! Note that those arrays are optimized for mpp case … … 124 124 INTEGER :: njw1m2, njw0m1 !: do loop index in mpp case for jpjwfm2,jpjwd 125 125 126 REAL(wp), DIMENSION(jpj) :: & !:126 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: & !: 127 127 sshfow, & !: now climatology of the west boundary sea surface height 128 128 ubtfow,vbtfow !: now climatology of the west boundary barotropic transport 129 129 130 REAL(wp), DIMENSION(jpj,jpk) :: & !:130 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: & !: 131 131 ufow, vfow, & !: now climatology of the west velocities 132 132 tfow, sfow, & !: now climatology of the west temperature and salinity … … 134 134 ! ! in the obcdyn.F90 routine 135 135 136 REAL(wp), DIMENSION(jpi,jpj) :: sshfow_b !: west boundary ssh correction averaged over the barotropic loop136 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshfow_b !: west boundary ssh correction averaged over the barotropic loop 137 137 ! ! (if Flather's algoritm applied at open boundary) 138 138 … … 140 140 !! Arrays for radiative West OBC 141 141 !!------------------------------- 142 REAL(wp), DIMENSION(jpj,jpk,3,3) :: uwbnd, vwbnd !: baroclinic u & v components of the velocity over 3 rows142 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: uwbnd, vwbnd !: baroclinic u & v components of the velocity over 3 rows 143 143 ! ! and 3 time step (now, before, and before before) 144 REAL(wp), DIMENSION(jpj,jpk,2,2) :: twbnd, swbnd !: west boundary temperature and salinity over 2 rows and144 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: twbnd, swbnd !: west boundary temperature and salinity over 2 rows and 145 145 ! ! 2 time step (now and before) 146 REAL(wp), DIMENSION(jpj,jpk) :: u_cxwbnd, v_cxwbnd !: Zonal component of the phase speed ratio computed with146 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: u_cxwbnd, v_cxwbnd !: Zonal component of the phase speed ratio computed with 147 147 ! ! radiation of zonal and meridional velocity (respectively) 148 148 ! ! at the west open boundary (u_cxwbnd = cx rdt ) 149 REAL(wp), DIMENSION(jpj,jpk) :: uwmsk, vwmsk, twmsk !: 2D mask for the West OB149 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: uwmsk, vwmsk, twmsk !: 2D mask for the West OB 150 150 151 151 ! Note that those arrays are optimized for mpp case … … 162 162 INTEGER :: njn0m1, njn1m1 !: do loop index in mpp case for jpnob-1 163 163 164 REAL(wp), DIMENSION(jpi) :: & !:164 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: & !: 165 165 sshfon, & !: now climatology of the north boundary sea surface height 166 166 ubtfon,vbtfon !: now climatology of the north boundary barotropic transport 167 167 168 REAL(wp), DIMENSION(jpi,jpk) :: & !:168 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: & !: 169 169 ufon, vfon, & !: now climatology of the north boundary velocities 170 170 tfon, sfon, & !: now climatology of the north boundary temperature and salinity … … 172 172 ! ! in yhe obcdyn.F90 routine 173 173 174 REAL(wp), DIMENSION(jpi,jpj) :: sshfon_b !: north boundary ssh correction averaged over the barotropic loop174 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshfon_b !: north boundary ssh correction averaged over the barotropic loop 175 175 ! ! (if Flather's algoritm applied at open boundary) 176 176 … … 178 178 !! Arrays for radiative North OBC 179 179 !!-------------------------------- 180 REAL(wp), DIMENSION(jpi,jpk,3,3) :: unbnd, vnbnd !: baroclinic u & v components of the velocity over 3180 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: unbnd, vnbnd !: baroclinic u & v components of the velocity over 3 181 181 ! ! rows and 3 time step (now, before, and before before) 182 REAL(wp), DIMENSION(jpi,jpk,2,2) :: tnbnd, snbnd !: north boundary temperature and salinity over182 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tnbnd, snbnd !: north boundary temperature and salinity over 183 183 ! ! 2 rows and 2 time step (now and before) 184 REAL(wp), DIMENSION(jpi,jpk) :: u_cynbnd, v_cynbnd !: Meridional component of the phase speed ratio compu-184 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: u_cynbnd, v_cynbnd !: Meridional component of the phase speed ratio compu- 185 185 ! ! ted with radiation of zonal and meridional velocity 186 186 ! ! (respectively) at the north OB (u_cynbnd = cx rdt ) 187 REAL(wp), DIMENSION(jpi,jpk) :: unmsk, vnmsk, tnmsk !: 2D mask for the North OB187 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: unmsk, vnmsk, tnmsk !: 2D mask for the North OB 188 188 189 189 ! Note that those arrays are optimized for mpp case … … 199 199 INTEGER :: njs0p1, njs1p1 !: do loop index in mpp case for jpsob+1 200 200 201 REAL(wp), DIMENSION(jpi) :: & !:201 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: & !: 202 202 sshfos, & !: now climatology of the south boundary sea surface height 203 203 ubtfos,vbtfos !: now climatology of the south boundary barotropic transport 204 204 205 REAL(wp), DIMENSION(jpi,jpk) :: & !:205 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: & !: 206 206 ufos, vfos, & !: now climatology of the south boundary velocities 207 207 tfos, sfos, & !: now climatology of the south boundary temperature and salinity … … 209 209 ! ! in the obcdyn.F90 routine 210 210 211 REAL(wp), DIMENSION(jpi,jpj) :: sshfos_b !: south boundary ssh correction averaged over the barotropic loop211 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: sshfos_b !: south boundary ssh correction averaged over the barotropic loop 212 212 ! ! (if Flather's algoritm applied at open boundary) 213 213 … … 215 215 !! Arrays for radiative South OBC (computed by the forward time step in dynspg) 216 216 !!-------------------------------- 217 REAL(wp), DIMENSION(jpi,jpk,3,3) :: usbnd, vsbnd !: baroclinic u & v components of the velocity over 3217 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: usbnd, vsbnd !: baroclinic u & v components of the velocity over 3 218 218 ! ! rows and 3 time step (now, before, and before before) 219 REAL(wp), DIMENSION(jpi,jpk,2,2) :: tsbnd, ssbnd !: south boundary temperature and salinity over219 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tsbnd, ssbnd !: south boundary temperature and salinity over 220 220 ! ! 2 rows and 2 time step (now and before) 221 REAL(wp), DIMENSION(jpi,jpk) :: u_cysbnd, v_cysbnd !: Meridional component of the phase speed ratio221 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: u_cysbnd, v_cysbnd !: Meridional component of the phase speed ratio 222 222 ! ! computed with radiation of zonal and meridional velocity 223 223 ! ! (repsectively) at the south OB (u_cynbnd = cx rdt ) 224 REAL(wp), DIMENSION(jpi,jpk) :: usmsk, vsmsk, tsmsk !: 2D mask for the South OB224 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: usmsk, vsmsk, tsmsk !: 2D mask for the South OB 225 225 226 226 #else … … 235 235 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 236 236 !!====================================================================== 237 #if defined key_obc 238 CONTAINS 239 240 FUNCTION obc_oce_alloc() 241 IMPLICIT none 242 243 ALLOCATE( & 244 !! East open boundary 245 obctmsk(jpi,jpj), obcumask(jpi,jpj), obcvmask(jpi,jpj), & 246 sshfoe(jpjed:jpjef), ubtfoe(jpjed:jpjef), vbtfoe(jpjed:jpjef), & 247 ufoe(jpj,jpk), vfoe(jpj,jpk), tfoe(jpj,jpk), sfoe(jpj,jpk), & 248 uclie(jpj,jpk), sshfoe_b(jpjed:jpjef,jpj), & 249 !! Arrays for radiative East OBC 250 uebnd(jpj,jpk,3,3), vebnd(jpj,jpk,3,3) , & 251 tebnd(jpj,jpk,2,2), sebnd(jpj,jpk,2,2), & 252 u_cxebnd(jpj,jpk), v_cxebnd(jpj,jpk), & 253 uemsk(jpj,jpk), vemsk(jpj,jpk), temsk(jpj,jpk), & 254 !! West open boundary 255 sshfow(jpjwd:jpjwf), ubtfow(jpjwd:jpjwf), vbtfow(jpjwd:jpjwf), & 256 ufow(jpj,jpk), vfow(jpj,jpk), tfow(jpj,jpk), & 257 sfow(jpj,jpk), ucliw(jpj,jpk), sshfow_b(jpjwd:jpjwf,jpj), & 258 !! Arrays for radiative West OBC 259 uwbnd(jpj,jpk,3,3), vwbnd(jpj,jpk,3,3), & 260 twbnd(jpj,jpk,2,2), swbnd(jpj,jpk,2,2), & 261 u_cxwbnd(jpj,jpk), v_cxwbnd(jpj,jpk), & 262 uwmsk(jpj,jpk), vwmsk(jpj,jpk), twmsk(jpj,jpk), & 263 !! North open boundary 264 sshfon(jpind:jpinf), ubtfon(jpind:jpinf), vbtfon(jpind:jpinf), & 265 ufon(jpi,jpk), vfon(jpi,jpk), tfon(jpi,jpk), & 266 sfon(jpi,jpk), vclin(jpi,jpk), sshfon_b(jpind:jpinf,jpj), & 267 !! Arrays for radiative North OBC 268 unbnd(jpi,jpk,3,3), vnbnd(jpi,jpk,3,3), & 269 tnbnd(jpi,jpk,2,2), snbnd(jpi,jpk,2,2), & 270 u_cynbnd(jpi,jpk), v_cynbnd(jpi,jpk), & 271 unmsk(jpi,jpk), vnmsk(jpi,jpk), tnmsk (jpi,jpk), & 272 !! South open boundary 273 sshfos(jpisd:jpisf), ubtfos(jpisd:jpisf), vbtfos(jpisd:jpisf), & 274 ufos(jpi,jpk), vfos(jpi,jpk), tfos(jpi,jpk), & 275 sfos(jpi,jpk), vclis(jpi,jpk), & 276 sshfos_b(jpisd:jpisf,jpj), & 277 !! Arrays for radiative South OBC 278 usbnd(jpi,jpk,3,3), vsbnd(jpi,jpk,3,3), & 279 tsbnd(jpi,jpk,2,2), ssbnd(jpi,jpk,2,2), & 280 u_cysbnd(jpi,jpk), v_cysbnd(jpi,jpk), & 281 usmsk(jpi,jpk), vsmsk(jpi,jpk), tsmsk(jpi,jpk), & 282 !! 283 Stat=obc_oce_alloc ) 284 285 END FUNCTION obc_oce_alloc 286 #endif ! Defined key_obc 287 237 288 END MODULE obc_oce -
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/OBC/obcdta.F90
r2528 r2590 53 53 ! bt arrays for interpolating time dependent data on the boundaries 54 54 INTEGER :: nt_m=0, ntobc_m 55 REAL(wp), DIMENSION(jpj,0:jptobc) :: ubtedta, vbtedta, sshedta! East56 REAL(wp), DIMENSION(jpj,0:jptobc) :: ubtwdta, vbtwdta, sshwdta ! West57 REAL(wp), DIMENSION(jpi,0:jptobc) :: ubtndta, vbtndta, sshndta ! North58 REAL(wp), DIMENSION(jpi,0:jptobc) :: ubtsdta, vbtsdta, sshsdta ! South55 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ubtedta, vbtedta, sshedta ! East 56 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ubtwdta, vbtwdta, sshwdta ! West 57 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ubtndta, vbtndta, sshndta ! North 58 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ubtsdta, vbtsdta, sshsdta ! South 59 59 ! arrays used for interpolating time dependent data on the boundaries 60 REAL(wp), DIMENSION(jpj,jpk,0:jptobc) :: uedta, vedta, tedta, sedta ! East61 REAL(wp), DIMENSION(jpj,jpk,0:jptobc) :: uwdta, vwdta, twdta, swdta ! West62 REAL(wp), DIMENSION(jpi,jpk,0:jptobc) :: undta, vndta, tndta, sndta ! North63 REAL(wp), DIMENSION(jpi,jpk,0:jptobc) :: usdta, vsdta, tsdta, ssdta ! South60 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: uedta, vedta, tedta, sedta ! East 61 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: uwdta, vwdta, twdta, swdta ! West 62 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: undta, vndta, tndta, sndta ! North 63 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: usdta, vsdta, tsdta, ssdta ! South 64 64 # else 65 65 ! bt arrays for interpolating time dependent data on the boundaries 66 REAL(wp), DIMENSION(jpj,jptobc) :: ubtedta, vbtedta, sshedta! East67 REAL(wp), DIMENSION(jpj,jptobc) :: ubtwdta, vbtwdta, sshwdta ! West68 REAL(wp), DIMENSION(jpi,jptobc) :: ubtndta, vbtndta, sshndta ! North69 REAL(wp), DIMENSION(jpi,jptobc) :: ubtsdta, vbtsdta, sshsdta ! South66 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ubtedta, vbtedta, sshedta ! East 67 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ubtwdta, vbtwdta, sshwdta ! West 68 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ubtndta, vbtndta, sshndta ! North 69 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ubtsdta, vbtsdta, sshsdta ! South 70 70 ! arrays used for interpolating time dependent data on the boundaries 71 REAL(wp), DIMENSION(jpj,jpk,jptobc) :: uedta, vedta, tedta, sedta ! East72 REAL(wp), DIMENSION(jpj,jpk,jptobc) :: uwdta, vwdta, twdta, swdta ! West73 REAL(wp), DIMENSION(jpi,jpk,jptobc) :: undta, vndta, tndta, sndta ! North74 REAL(wp), DIMENSION(jpi,jpk,jptobc) :: usdta, vsdta, tsdta, ssdta ! South71 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: uedta, vedta, tedta, sedta ! East 72 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: uwdta, vwdta, twdta, swdta ! West 73 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: undta, vndta, tndta, sndta ! North 74 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: usdta, vsdta, tsdta, ssdta ! South 75 75 # endif 76 LOGICAL, DIMENSION (jpj,jpk ) :: ltemsk=.TRUE., luemsk=.TRUE., lvemsk=.TRUE. ! boolean msks 77 LOGICAL, DIMENSION (jpj,jpk ) :: ltwmsk=.TRUE., luwmsk=.TRUE., lvwmsk=.TRUE. ! used for outliers 78 LOGICAL, DIMENSION (jpi,jpk ) :: ltnmsk=.TRUE., lunmsk=.TRUE., lvnmsk=.TRUE. ! checks 79 LOGICAL, DIMENSION (jpi,jpk ) :: ltsmsk=.TRUE., lusmsk=.TRUE., lvsmsk=.TRUE. 76 ! Masks set to .TRUE. after successful allocation below 77 LOGICAL, ALLOCATABLE, SAVE, DIMENSION (:,: ) :: ltemsk, luemsk, lvemsk ! boolean msks 78 LOGICAL, ALLOCATABLE, SAVE, DIMENSION (:,: ) :: ltwmsk, luwmsk, lvwmsk ! used for outliers 79 LOGICAL, ALLOCATABLE, SAVE, DIMENSION (:,: ) :: ltnmsk, lunmsk, lvnmsk ! checks 80 LOGICAL, ALLOCATABLE, SAVE, DIMENSION (:,: ) :: ltsmsk, lusmsk, lvsmsk 80 81 81 82 !! * Substitutions … … 89 90 90 91 CONTAINS 92 93 FUNCTION obc_dta_alloc() 94 !!------------------------------------------------------------------- 95 !! *** ROUTINE obc_dta_alloc *** 96 !! 97 !!------------------------------------------------------------------- 98 IMPLICIT none 99 INTEGER :: obc_dta_alloc 100 INTEGER :: ierr(2) 101 !!------------------------------------------------------------------- 102 103 # if defined key_dynspg_ts 104 ALLOCATE(ubtedta(jpj,0:jptobc), vbtedta(jpj,0:jptobc), & 105 sshedta(jpj,0:jptobc), ubtwdta(jpj,0:jptobc), & 106 vbtwdta(jpj,0:jptobc), sshwdta(jpj,0:jptobc), & 107 ubtndta(jpi,0:jptobc), vbtndta(jpi,0:jptobc), & 108 sshndta(jpi,0:jptobc), ubtsdta(jpi,0:jptobc), & 109 vbtsdta(jpi,0:jptobc), sshsdta(jpi,0:jptobc), & 110 ! arrays used for interpolating time dependent data on the boundaries 111 uedta(jpj,jpk,0:jptobc), vedta(jpj,jpk,0:jptobc), & 112 tedta(jpj,jpk,0:jptobc), sedta(jpj,jpk,0:jptobc), & 113 uwdta(jpj,jpk,0:jptobc), vwdta(jpj,jpk,0:jptobc), & 114 twdta(jpj,jpk,0:jptobc), swdta(jpj,jpk,0:jptobc), & 115 undta(jpi,jpk,0:jptobc), vndta(jpi,jpk,0:jptobc), & 116 tndta(jpi,jpk,0:jptobc), sndta(jpi,jpk,0:jptobc), & 117 usdta(jpi,jpk,0:jptobc), vsdta(jpi,jpk,0:jptobc), & 118 tsdta(jpi,jpk,0:jptobc), ssdta(jpi,jpk,0:jptobc), Stat=ierr(1) ) 119 # else 120 ! bt arrays for interpolating time dependent data on the boundaries 121 ALLOCATE(ubtedta(jpj,jptobc), vbtedta(jpj,jptobc), sshedta(jpj,jptobc), & 122 ubtwdta(jpj,jptobc), vbtwdta(jpj,jptobc), sshwdta(jpj,jptobc), & 123 ubtndta(jpi,jptobc), vbtndta(jpi,jptobc), sshndta(jpi,jptobc), & 124 ubtsdta(jpi,jptobc), vbtsdta(jpi,jptobc), sshsdta(jpi,jptobc), & 125 ! arrays used for interpolating time dependent data on the boundaries 126 uedta(jpj,jpk,jptobc), vedta(jpj,jpk,jptobc), & 127 tedta(jpj,jpk,jptobc), sedta(jpj,jpk,jptobc), & 128 uwdta(jpj,jpk,jptobc), vwdta(jpj,jpk,jptobc), & 129 twdta(jpj,jpk,jptobc), swdta(jpj,jpk,jptobc), & 130 undta(jpi,jpk,jptobc), vndta(jpi,jpk,jptobc), & 131 tndta(jpi,jpk,jptobc), sndta(jpi,jpk,jptobc), & 132 usdta(jpi,jpk,jptobc), vsdta(jpi,jpk,jptobc), & 133 tsdta(jpi,jpk,jptobc), ssdta(jpi,jpk,jptobc), Stat=ierr(1) ) 134 # endif 135 136 ALLOCATE(uedta(jpj,jpk,jptobc), vedta(jpj,jpk,jptobc), & 137 tedta(jpj,jpk,jptobc), sedta(jpj,jpk,jptobc), & 138 uwdta(jpj,jpk,jptobc), vwdta(jpj,jpk,jptobc), & 139 twdta(jpj,jpk,jptobc), swdta(jpj,jpk,jptobc), & 140 undta(jpj,jpk,jptobc), vndta(jpj,jpk,jptobc), & 141 tndta(jpj,jpk,jptobc), sndta(jpj,jpk,jptobc), & 142 usdta(jpj,jpk,jptobc), vsdta(jpj,jpk,jptobc), & 143 tsdta(jpj,jpk,jptobc), ssdta(jpj,jpk,jptobc), & 144 ltemsk(jpj,jpk), luemsk(jpj,jpk), lvemsk(jpj,jpk), & 145 ltwmsk(jpj,jpk), luwmsk(jpj,jpk), lvwmsk(jpj,jpk), & 146 ltnmsk(jpj,jpk), lunmsk(jpj,jpk), lvnmsk(jpj,jpk), & 147 ltsmsk(jpj,jpk), lusmsk(jpj,jpk), lvsmsk(jpj,jpk), & 148 Stat=ierr(2)) 149 150 obc_dta_alloc = MAXVAL(ierr) 151 152 IF(obc_dta_alloc == 0)THEN 153 ! Initialise mask values following successful allocation 154 ltemsk(:)=.TRUE. 155 luemsk(:)=.TRUE. 156 lvemsk(:)=.TRUE. 157 ltwmsk(:)=.TRUE. 158 luwmsk(:)=.TRUE. 159 lvwmsk(:)=.TRUE. 160 ltnmsk(:)=.TRUE. 161 lunmsk(:)=.TRUE. 162 lvnmsk(:)=.TRUE. 163 ltsmsk(:)=.TRUE. 164 lusmsk(:)=.TRUE. 165 lvsmsk(:)=.TRUE. 166 END IF 167 168 END FUNCTION obc_dta_alloc 169 91 170 92 171 SUBROUTINE obc_dta( kt )
Note: See TracChangeset
for help on using the changeset viewer.