Changeset 9125 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC
- Timestamp:
- 2017-12-19T09:47:17+01:00 (6 years ago)
- Location:
- branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/cyclone.F90
r7646 r9125 21 21 USE in_out_manager ! I/O manager 22 22 USE geo2ocean ! tools for projection on ORCA grid 23 USE wrk_nemo ! work arrays24 23 USE lib_mpp 25 24 … … 81 80 REAL(wp) :: zvmax ! timestep interpolated vmax 82 81 REAL(wp) :: zrlon, zrlat ! temporary 83 REAL(wp), DIMENSION( :,:), POINTER:: zwnd_x, zwnd_y ! zonal and meridional components of the wind82 REAL(wp), DIMENSION(jpi,jpj) :: zwnd_x, zwnd_y ! zonal and meridional components of the wind 84 83 REAL(wp), DIMENSION(14,5) :: ztct ! tropical cyclone track data at kt 85 84 ! … … 88 87 TYPE(FLD_N) :: sn_tc ! informations about the fields to be read 89 88 !!-------------------------------------------------------------------- 90 91 CALL wrk_alloc( jpi,jpj, zwnd_x, zwnd_y )92 89 93 90 ! ! ====================== ! … … 271 268 CALL rot_rep ( zwnd_x, zwnd_y, 'T', 'en->j', pwnd_j ) !rotation of components on ORCA grid 272 269 273 CALL wrk_dealloc( jpi,jpj, zwnd_x, zwnd_y )274 275 270 END SUBROUTINE wnd_cyc 276 271 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90
r9019 r9125 37 37 USE ioipsl , ONLY : ymds2ju, ju2ymds ! for calendar 38 38 USE lib_mpp ! MPP library 39 USE wrk_nemo ! work arrays40 39 USE lbclnk ! ocean lateral boundary conditions (C1D case) 41 40 … … 1144 1143 INTEGER :: ill ! character length 1145 1144 INTEGER :: iv ! indice of V component 1146 CHARACTER (LEN=100) :: clcomp ! dummy weight name 1147 REAL(wp), POINTER, DIMENSION(:,:) :: utmp, vtmp ! temporary arrays for vector rotation 1148 !!--------------------------------------------------------------------- 1149 ! 1150 CALL wrk_alloc( jpi,jpj, utmp, vtmp ) 1145 CHARACTER (LEN=100) :: clcomp ! dummy weight name 1146 REAL(wp), DIMENSION(jpi,jpj) :: utmp, vtmp ! temporary arrays for vector rotation 1147 !!--------------------------------------------------------------------- 1151 1148 ! 1152 1149 !! (sga: following code should be modified so that pairs arent searched for each time … … 1185 1182 END DO 1186 1183 ! 1187 CALL wrk_dealloc( jpi,jpj, utmp, vtmp )1188 !1189 1184 END SUBROUTINE fld_rot 1190 1185 … … 1438 1433 CHARACTER (len=5) :: aname ! 1439 1434 INTEGER , DIMENSION(:), ALLOCATABLE :: ddims 1440 INTEGER , POINTER, DIMENSION(:,:) :: data_src1441 REAL(wp), POINTER, DIMENSION(:,:) :: data_tmp1435 INTEGER, DIMENSION(jpi,jpj) :: data_src 1436 REAL(wp), DIMENSION(jpi,jpj) :: data_tmp 1442 1437 !!---------------------------------------------------------------------- 1443 !1444 CALL wrk_alloc( jpi,jpj, data_src ) ! integer1445 CALL wrk_alloc( jpi,jpj, data_tmp )1446 1438 ! 1447 1439 IF( nxt_wgt > tot_wgts ) THEN … … 1561 1553 1562 1554 DEALLOCATE (ddims ) 1563 1564 CALL wrk_dealloc( jpi,jpj, data_src ) ! integer1565 CALL wrk_dealloc( jpi,jpj, data_tmp )1566 1555 ! 1567 1556 END SUBROUTINE fld_weight -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/ocealb.F90
r9019 r9125 12 12 USE in_out_manager ! I/O manager 13 13 USE lib_mpp ! MPP library 14 USE wrk_nemo ! work arrays15 14 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 16 15 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_coare.F90
r9124 r9125 39 39 USE iom ! I/O manager library 40 40 USE lib_mpp ! distribued memory computing library 41 USE wrk_nemo ! work arrays42 41 USE prtctl ! Print control 43 42 USE lib_fortran ! to use key_nosignedzero … … 110 109 INTEGER , PARAMETER :: nb_itt = 4 ! number of itterations 111 110 112 REAL(wp), DIMENSION( :,:), POINTER:: &111 REAL(wp), DIMENSION(jpi,jpj) :: & 113 112 & u_star, t_star, q_star, & 114 113 & dt_zu, dq_zu, & 115 114 & znu_a, & !: Nu_air, Viscosity of air 116 115 & z0, z0t 117 REAL(wp), DIMENSION( :,:), POINTER:: zeta_u ! stability parameter at height zu118 REAL(wp), DIMENSION( :,:), POINTER :: zeta_t ! stability parameter at height zt119 REAL(wp), DIMENSION(:,:), POINTER :: ztmp0, ztmp1, ztmp2116 REAL(wp), DIMENSION(jpi,jpj) :: zeta_u ! stability parameter at height zu 117 REAL(wp), DIMENSION(jpi,jpj) :: ztmp0, ztmp1, ztmp2 118 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: zeta_t ! stability parameter at height zt 120 119 !!---------------------------------------------------------------------- 121 120 ! 122 CALL wrk_alloc( jpi,jpj, u_star, t_star, q_star, zeta_u, dt_zu, dq_zu)123 CALL wrk_alloc( jpi,jpj, znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 )124 125 121 l_zt_equal_zu = .FALSE. 126 122 IF( ABS(zu - zt) < 0.01 ) l_zt_equal_zu = .TRUE. ! testing "zu == zt" is risky with double precision 127 123 128 IF( .NOT. l_zt_equal_zu ) CALL wrk_alloc( jpi,jpj, zeta_t)124 IF( .NOT. l_zt_equal_zu ) ALLOCATE( zeta_t(jpi,jpj) ) 129 125 130 126 !! First guess of temperature and humidity at height zu: … … 248 244 Cen = Chn 249 245 ! 250 CALL wrk_dealloc( jpi,jpj, u_star, t_star, q_star, zeta_u, dt_zu, dq_zu ) 251 CALL wrk_dealloc( jpi,jpj, znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 252 IF( .NOT. l_zt_equal_zu ) CALL wrk_dealloc( jpi,jpj, zeta_t ) 246 IF( .NOT. l_zt_equal_zu ) DEALLOCATE( zeta_t ) 253 247 ! 254 248 END SUBROUTINE turb_coare -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_coare3p5.F90
r9124 r9125 38 38 USE iom ! I/O manager library 39 39 USE lib_mpp ! distribued memory computing library 40 USE wrk_nemo ! work arrays41 40 USE in_out_manager ! I/O manager 42 41 USE prtctl ! Print control … … 111 110 INTEGER , PARAMETER :: nb_itt = 4 ! number of itterations 112 111 ! 113 REAL(wp), DIMENSION( :,:), POINTER:: &112 REAL(wp), DIMENSION(jpi,jpj) :: & 114 113 & u_star, t_star, q_star, & 115 114 & dt_zu, dq_zu, & 116 115 & znu_a, & !: Nu_air, Viscosity of air 117 116 & z0, z0t 118 REAL(wp), DIMENSION(:,:), POINTER :: zeta_u ! stability parameter at height zu 119 REAL(wp), DIMENSION(:,:), POINTER :: zeta_t ! stability parameter at height zt 120 REAL(wp), DIMENSION(:,:), POINTER :: ztmp0, ztmp1, ztmp2 121 !!---------------------------------------------------------------------------------- 122 ! 123 CALL wrk_alloc( jpi,jpj, u_star, t_star, q_star, zeta_u, dt_zu, dq_zu) 124 CALL wrk_alloc( jpi,jpj, znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 125 117 REAL(wp), DIMENSION(jpi,jpj) :: zeta_u ! stability parameter at height zu 118 REAL(wp), DIMENSION(jpi,jpj) :: ztmp0, ztmp1, ztmp2 119 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: zeta_t ! stability parameter at height zt 120 !!---------------------------------------------------------------------------------- 121 ! 126 122 l_zt_equal_zu = .FALSE. 127 123 IF( ABS(zu - zt) < 0.01 ) l_zt_equal_zu = .TRUE. ! testing "zu == zt" is risky with double precision 128 124 129 IF( .NOT. l_zt_equal_zu ) CALL wrk_alloc( jpi,jpj, zeta_t)125 IF( .NOT. l_zt_equal_zu ) ALLOCATE( zeta_t(jpi,jpj) ) 130 126 131 127 !! First guess of temperature and humidity at height zu: … … 256 252 Cen = Chn 257 253 ! 258 CALL wrk_dealloc( jpi,jpj, u_star, t_star, q_star, zeta_u, dt_zu, dq_zu ) 259 CALL wrk_dealloc( jpi,jpj, znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 260 IF( .NOT. l_zt_equal_zu ) CALL wrk_dealloc( jpi,jpj, zeta_t ) 254 IF( .NOT. l_zt_equal_zu ) DEALLOCATE( zeta_t ) 261 255 ! 262 256 END SUBROUTINE turb_coare3p5 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_ecmwf.F90
r9124 r9125 32 32 USE iom ! I/O manager library 33 33 USE lib_mpp ! distribued memory computing library 34 USE wrk_nemo ! work arrays35 34 USE in_out_manager ! I/O manager 36 35 USE prtctl ! Print control … … 118 117 INTEGER , PARAMETER :: nb_itt = 4 ! number of itterations 119 118 ! 120 REAL(wp), DIMENSION( :,:), POINTER:: u_star, t_star, q_star, &119 REAL(wp), DIMENSION(jpi,jpj) :: u_star, t_star, q_star, & 121 120 & dt_zu, dq_zu, & 122 121 & znu_a, & !: Nu_air, Viscosity of air 123 122 & Linv, & !: 1/L (inverse of Monin Obukhov length... 124 123 & z0, z0t, z0q 125 REAL(wp), DIMENSION(:,:), POINTER :: func_m, func_h 126 REAL(wp), DIMENSION(:,:), POINTER :: ztmp0, ztmp1, ztmp2 127 !!---------------------------------------------------------------------------------- 128 ! 129 CALL wrk_alloc( jpi,jpj, u_star, t_star, q_star, func_m, func_h, dt_zu, dq_zu, Linv ) 130 CALL wrk_alloc( jpi,jpj, znu_a, z0, z0t, z0q, ztmp0, ztmp1, ztmp2 ) 124 REAL(wp), DIMENSION(jpi,jpj) :: func_m, func_h 125 REAL(wp), DIMENSION(jpi,jpj) :: ztmp0, ztmp1, ztmp2 126 !!---------------------------------------------------------------------------------- 131 127 ! 132 128 ! Identical first gess as in COARE, with IFS parameter values though … … 286 282 Cen = vkarmn*vkarmn / (log(ztmp1/z0q)*log(ztmp1/z0q)) 287 283 288 CALL wrk_dealloc( jpi,jpj, u_star, t_star, q_star, func_m, func_h, dt_zu, dq_zu, Linv )289 CALL wrk_dealloc( jpi,jpj, znu_a, z0, z0t, z0q, ztmp0, ztmp1, ztmp2 )290 !291 284 END SUBROUTINE TURB_ECMWF 292 285 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_ncar.F90
r9124 r9125 34 34 USE iom ! I/O manager library 35 35 USE lib_mpp ! distribued memory computing library 36 USE wrk_nemo ! work arrays37 36 USE in_out_manager ! I/O manager 38 37 USE prtctl ! Print control … … 118 117 INTEGER , PARAMETER :: nb_itt = 4 ! number of itterations 119 118 ! 120 REAL(wp), DIMENSION(:,:), POINTER :: Cx_n10 ! 10m neutral latent/sensible coefficient 121 REAL(wp), DIMENSION(:,:), POINTER :: sqrt_Cd_n10 ! root square of Cd_n10 122 REAL(wp), DIMENSION(:,:), POINTER :: zeta_u ! stability parameter at height zu 123 REAL(wp), DIMENSION(:,:), POINTER :: zpsi_h_u 124 REAL(wp), DIMENSION(:,:), POINTER :: ztmp0, ztmp1, ztmp2 125 REAL(wp), DIMENSION(:,:), POINTER :: stab ! stability test integer 126 !!---------------------------------------------------------------------------------- 127 ! 128 CALL wrk_alloc( jpi,jpj, Cx_n10, sqrt_Cd_n10, zeta_u, stab ) 129 CALL wrk_alloc( jpi,jpj, zpsi_h_u, ztmp0, ztmp1, ztmp2 ) 119 REAL(wp), DIMENSION(jpi,jpj) :: Cx_n10 ! 10m neutral latent/sensible coefficient 120 REAL(wp), DIMENSION(jpi,jpj) :: sqrt_Cd_n10 ! root square of Cd_n10 121 REAL(wp), DIMENSION(jpi,jpj) :: zeta_u ! stability parameter at height zu 122 REAL(wp), DIMENSION(jpi,jpj) :: zpsi_h_u 123 REAL(wp), DIMENSION(jpi,jpj) :: ztmp0, ztmp1, ztmp2 124 REAL(wp), DIMENSION(jpi,jpj) :: stab ! stability test integer 125 !!---------------------------------------------------------------------------------- 130 126 ! 131 127 l_zt_equal_zu = .FALSE. … … 223 219 END DO 224 220 ! 225 CALL wrk_dealloc( jpi,jpj, Cx_n10, sqrt_Cd_n10, zeta_u, stab )226 CALL wrk_dealloc( jpi,jpj, zpsi_h_u, ztmp0, ztmp1, ztmp2 )227 !228 221 END SUBROUTINE turb_ncar 229 222 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90
r9124 r9125 25 25 USE in_out_manager ! I/O manager 26 26 USE lib_mpp ! distribued memory computing library 27 USE timing ! Timing 27 28 USE lbclnk ! ocean lateral boundary conditions 28 29 USE lib_fortran ! -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
r9124 r9125 18 18 USE lib_mpp ! distributed memory computing library 19 19 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 20 USE wrk_nemo ! work arrays21 20 USE daymod ! calendar 22 21 USE fldread ! read input fields … … 155 154 !!--------------------------------------------------------------------- 156 155 INTEGER, INTENT( in ) :: ksbc ! surface forcing type 157 REAL(wp), DIMENSION( :,:), POINTER:: ztmp1, ztmp2156 REAL(wp), DIMENSION(jpi,jpj) :: ztmp1, ztmp2 158 157 REAL(wp) :: zcoefu, zcoefv, zcoeff ! local scalar 159 158 INTEGER :: ji, jj, jl, jk ! dummy loop indices 160 159 !!--------------------------------------------------------------------- 161 !162 CALL wrk_alloc( jpi,jpj, ztmp1, ztmp2 )163 160 ! 164 161 IF(lwp) WRITE(numout,*)'cice_sbc_init' … … 272 269 ENDIF 273 270 ! 274 CALL wrk_dealloc( jpi,jpj, ztmp1, ztmp2 )275 !276 271 END SUBROUTINE cice_sbc_init 277 272 … … 286 281 ! 287 282 INTEGER :: ji, jj, jl ! dummy loop indices 288 REAL(wp), DIMENSION( :,:), POINTER:: ztmp, zpice289 REAL(wp), DIMENSION( :,:,:), POINTER:: ztmpn283 REAL(wp), DIMENSION(jpi,jpj) :: ztmp, zpice 284 REAL(wp), DIMENSION(jpi,jpj,ncat) :: ztmpn 290 285 REAL(wp) :: zintb, zintn ! dummy argument 291 286 !!--------------------------------------------------------------------- 292 287 ! 293 CALL wrk_alloc( jpi,jpj, ztmp, zpice )294 CALL wrk_alloc( jpi,jpj,ncat, ztmpn )295 296 288 IF( kt == nit000 ) THEN 297 289 IF(lwp) WRITE(numout,*)'cice_sbc_in' … … 492 484 END DO 493 485 CALL nemo2cice(ztmp,ss_tlty,'F', -1. ) 494 495 CALL wrk_dealloc( jpi,jpj, ztmp, zpice )496 CALL wrk_dealloc( jpi,jpj,ncat, ztmpn )497 486 ! 498 487 END SUBROUTINE cice_sbc_in … … 508 497 509 498 INTEGER :: ji, jj, jl ! dummy loop indices 510 REAL(wp), DIMENSION(:,:), POINTER :: ztmp1, ztmp2 511 !!--------------------------------------------------------------------- 512 ! 513 CALL wrk_alloc( jpi,jpj, ztmp1, ztmp2 ) 514 499 REAL(wp), DIMENSION(jpi,jpj) :: ztmp1, ztmp2 500 !!--------------------------------------------------------------------- 501 ! 515 502 IF( kt == nit000 ) THEN 516 503 IF(lwp) WRITE(numout,*)'cice_sbc_out' … … 660 647 snwice_mass_b(:,:) = snwice_mass(:,:) 661 648 snwice_fmass (:,:) = ( snwice_mass(:,:) - snwice_mass_b(:,:) ) / dt 662 663 ! Release work space664 665 CALL wrk_dealloc( jpi,jpj, ztmp1, ztmp2 )666 649 ! 667 650 END SUBROUTINE cice_sbc_out -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90
r9023 r9125 27 27 USE iom ! I/O module 28 28 USE lib_mpp ! MPP library 29 USE wrk_nemo ! Memory allocation30 29 31 30 IMPLICIT NONE … … 106 105 INTEGER :: z_err = 0 ! dummy integer for error handling 107 106 !!---------------------------------------------------------------------- 108 REAL(wp), DIMENSION(:,:), POINTER :: ztfrz ! freezing point used for temperature correction 109 ! 110 CALL wrk_alloc( jpi,jpj, ztfrz) 107 REAL(wp), DIMENSION(jpi,jpj) :: ztfrz ! freezing point used for temperature correction 108 ! 111 109 ! 112 110 ! !-------------------! … … 169 167 CALL iom_rstput( kt, nitrst, numrow, 'rnf_sc_b', rnf_tsc(:,:,jp_sal) ) 170 168 ENDIF 171 !172 CALL wrk_dealloc( jpi,jpj, ztfrz)173 169 ! 174 170 END SUBROUTINE sbc_rnf -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbctide.F90
r9023 r9125 16 16 USE ioipsl ! NetCDF IPSL library 17 17 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 18 USE wrk_nemo !19 18 20 19 IMPLICIT NONE … … 140 139 INTEGER :: inum ! Logical unit of input file 141 140 INTEGER :: ji, jj, itide ! dummy loop indices 142 REAL(wp), POINTER, DIMENSION(:,:) :: ztr, zti !: workspace to read in tidal harmonics data141 REAL(wp), DIMENSION(jpi,jpj) :: ztr, zti !: workspace to read in tidal harmonics data 143 142 !!---------------------------------------------------------------------- 144 143 IF(lwp) THEN … … 147 146 WRITE(numout,*) '~~~~~~~~~~~~~~ ' 148 147 ENDIF 149 !150 CALL wrk_alloc( jpi, jpj, zti, ztr )151 148 ! 152 149 CALL iom_open ( cn_tide_load , inum ) … … 166 163 CALL iom_close( inum ) 167 164 ! 168 CALL wrk_dealloc( jpi, jpj, zti, ztr )169 !170 165 END SUBROUTINE tide_init_load 171 166 -
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90
r9117 r9125 27 27 USE lib_mpp ! distribued memory computing library 28 28 USE fldread ! read input fields 29 USE wrk_nemo !30 29 31 30 IMPLICIT NONE
Note: See TracChangeset
for help on using the changeset viewer.