Changeset 11507
- Timestamp:
- 2019-09-06T17:19:33+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/cfgs/SHARED/namelist_ref
r11398 r11507 602 602 nn_ice_dta = 0 ! = 0, bdy data are equal to the initial state 603 603 ! ! = 1, bdy data are read in 'bdydata .nc' files 604 rn_ice_tem = 270. ! si3 only: arbitrary temperature of incoming sea ice605 rn_ice_sal = 10. ! si3 only: -- salinity --606 rn_ice_age = 30. ! si3 only: -- age --607 604 ! 608 605 ln_tra_dmp =.false. ! open boudaries conditions for tracers … … 633 630 bn_tem = 'amm12_bdyT_tra' , 24. , 'votemper', .true. , .false., 'daily' , '' , '' , '' 634 631 bn_sal = 'amm12_bdyT_tra' , 24. , 'vosaline', .true. , .false., 'daily' , '' , '' , '' 635 !* for si3 636 ! bn_a_i = 'amm12_bdyT_ice' , 24. , 'ileadfra', .true. , .false., 'daily' , '' , '' , '' 637 ! bn_h_i = 'amm12_bdyT_ice' , 24. , 'iicethic', .true. , .false., 'daily' , '' , '' , '' 638 ! bn_h_s = 'amm12_bdyT_ice' , 24. , 'isnowthi', .true. , .false., 'daily' , '' , '' , '' 632 !* for si3 633 bn_a_i = 'amm12_bdyT_ice' , 24. , 'ileadfra', .true. , .false., 'daily' , '' , '' , '' 634 bn_h_i = 'amm12_bdyT_ice' , 24. , 'iicethic', .true. , .false., 'daily' , '' , '' , '' 635 bn_h_s = 'amm12_bdyT_ice' , 24. , 'isnowthi', .true. , .false., 'daily' , '' , '' , '' 636 bn_t_i = 'NOT USED' , 24. , 'iicetemp', .true. , .false., 'daily' , '' , '' , '' 637 bn_t_s = 'NOT USED' , 24. , 'isnwtemp', .true. , .false., 'daily' , '' , '' , '' 638 bn_tsu = 'NOT USED' , 24. , 'isurtemp', .true. , .false., 'daily' , '' , '' , '' 639 bn_s_i = 'NOT USED' , 24. , 'iicesalt', .true. , .false., 'daily' , '' , '' , '' 640 ! if bn_t_i, bn_tsu and bn_s_i are "not used", then define arbitrary temperatures and salinity 641 rn_ice_tem = 270. ! arbitrary temperature of incoming sea ice 642 rn_ice_sal = 10. ! -- salinity -- 643 rn_ice_age = 30. ! -- age -- 639 644 / 640 645 !----------------------------------------------------------------------- -
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/ICE/icevar.F90
r11397 r11507 47 47 !! ice_var_zapneg : remove negative ice fields 48 48 !! ice_var_roundoff : remove negative values arising from roundoff erros 49 !! ice_var_itd : convert N-cat to M-cat50 49 !! ice_var_bv : brine volume 51 50 !! ice_var_enthalpy : compute ice and snow enthalpies from temperature 52 51 !! ice_var_sshdyn : compute equivalent ssh in lead 52 !! ice_var_itd : convert N-cat to M-cat 53 53 !!---------------------------------------------------------------------- 54 54 USE dom_oce ! ocean space and time domain … … 787 787 REAL(wp), DIMENSION(:), INTENT(in) :: phti, phts, pati ! input ice/snow variables 788 788 REAL(wp), DIMENSION(:), INTENT(inout) :: ph_i, ph_s, pa_i ! output ice/snow variables 789 REAL(wp), DIMENSION(:), INTENT(in) , OPTIONAL:: ptmi, ptms, ptmsu, psmi ! input ice/snow temp & sal790 REAL(wp), DIMENSION(:), INTENT(inout) , OPTIONAL:: pt_i, pt_s, pt_su, ps_i ! output ice/snow temp & sal789 REAL(wp), DIMENSION(:), INTENT(in) :: ptmi, ptms, ptmsu, psmi ! input ice/snow temp & sal 790 REAL(wp), DIMENSION(:), INTENT(inout) :: pt_i, pt_s, pt_su, ps_i ! output ice/snow temp & sal 791 791 !!------------------------------------------------------------------- 792 792 ! == thickness and concentration == ! … … 796 796 ! 797 797 ! == temperature and salinity == ! 798 IF( PRESENT( pt_i ) )pt_i (:) = ptmi (:)799 IF( PRESENT( pt_s ) )pt_s (:) = ptms (:)800 IF( PRESENT( pt_su ) )pt_su(:) = ptmsu(:)801 IF( PRESENT( ps_i ) )ps_i (:) = psmi (:)798 pt_i (:) = ptmi (:) 799 pt_s (:) = ptms (:) 800 pt_su(:) = ptmsu(:) 801 ps_i (:) = psmi (:) 802 802 803 803 END SUBROUTINE ice_var_itd_1c1c … … 810 810 REAL(wp), DIMENSION(:,:), INTENT(in) :: phti, phts, pati ! input ice/snow variables 811 811 REAL(wp), DIMENSION(:) , INTENT(inout) :: ph_i, ph_s, pa_i ! output ice/snow variables 812 REAL(wp), DIMENSION(:,:), INTENT(in) , OPTIONAL:: ptmi, ptms, ptmsu, psmi ! input ice/snow temp & sal813 REAL(wp), DIMENSION(:) , INTENT(inout) , OPTIONAL:: pt_i, pt_s, pt_su, ps_i ! output ice/snow temp & sal812 REAL(wp), DIMENSION(:,:), INTENT(in) :: ptmi, ptms, ptmsu, psmi ! input ice/snow temp & sal 813 REAL(wp), DIMENSION(:) , INTENT(inout) :: pt_i, pt_s, pt_su, ps_i ! output ice/snow temp & sal 814 814 ! 815 815 REAL(wp), ALLOCATABLE, DIMENSION(:) :: z1_ai, z1_vi, z1_vs … … 821 821 ! 822 822 ! == thickness and concentration == ! 823 ALLOCATE( z1_ai(idim) )823 ALLOCATE( z1_ai(idim), z1_vi(idim), z1_vs(idim) ) 824 824 ! 825 825 pa_i(:) = SUM( pati(:,:), dim=2 ) … … 833 833 ! 834 834 ! == temperature and salinity == ! 835 IF( PRESENT( pt_i ) .OR. PRESENT( pt_s ) .OR. PRESENT( pt_su ) .OR. PRESENT( ps_i ) ) THEN 836 ! 837 ALLOCATE( z1_vi(idim), z1_vs(idim) ) 838 ! 839 WHERE( ( pa_i(:) * ph_i(:) ) /= 0._wp ) ; z1_vi(:) = 1._wp / ( pa_i(:) * ph_i(:) ) 840 ELSEWHERE ; z1_vi(:) = 0._wp 841 END WHERE 842 WHERE( ( pa_i(:) * ph_s(:) ) /= 0._wp ) ; z1_vs(:) = 1._wp / ( pa_i(:) * ph_s(:) ) 843 ELSEWHERE ; z1_vs(:) = 0._wp 844 END WHERE 845 ! 846 IF( PRESENT( pt_i ) ) pt_i (:) = SUM( ptmi (:,:) * pati(:,:) * phti(:,:), dim=2 ) * z1_vi(:) 847 IF( PRESENT( pt_s ) ) pt_s (:) = SUM( ptms (:,:) * pati(:,:) * phts(:,:), dim=2 ) * z1_vs(:) 848 IF( PRESENT( pt_su ) ) pt_su(:) = SUM( ptmsu(:,:) * pati(:,:) , dim=2 ) * z1_ai(:) 849 IF( PRESENT( ps_i ) ) ps_i (:) = SUM( psmi (:,:) * pati(:,:) * phti(:,:), dim=2 ) * z1_vi(:) 850 ! 851 DEALLOCATE( z1_vi, z1_vs ) 852 ! 853 ENDIF 854 ! 855 DEALLOCATE( z1_ai ) 835 WHERE( ( pa_i(:) * ph_i(:) ) /= 0._wp ) ; z1_vi(:) = 1._wp / ( pa_i(:) * ph_i(:) ) 836 ELSEWHERE ; z1_vi(:) = 0._wp 837 END WHERE 838 WHERE( ( pa_i(:) * ph_s(:) ) /= 0._wp ) ; z1_vs(:) = 1._wp / ( pa_i(:) * ph_s(:) ) 839 ELSEWHERE ; z1_vs(:) = 0._wp 840 END WHERE 841 pt_i (:) = SUM( ptmi (:,:) * pati(:,:) * phti(:,:), dim=2 ) * z1_vi(:) 842 pt_s (:) = SUM( ptms (:,:) * pati(:,:) * phts(:,:), dim=2 ) * z1_vs(:) 843 pt_su(:) = SUM( ptmsu(:,:) * pati(:,:) , dim=2 ) * z1_ai(:) 844 ps_i (:) = SUM( psmi (:,:) * pati(:,:) * phti(:,:), dim=2 ) * z1_vi(:) 845 ! 846 DEALLOCATE( z1_ai, z1_vi, z1_vs ) 856 847 ! 857 848 END SUBROUTINE ice_var_itd_Nc1c … … 889 880 REAL(wp), DIMENSION(:), INTENT(in) :: phti, phts, pati ! input ice/snow variables 890 881 REAL(wp), DIMENSION(:,:), INTENT(inout) :: ph_i, ph_s, pa_i ! output ice/snow variables 891 REAL(wp), DIMENSION(:) , INTENT(in) , OPTIONAL:: ptmi, ptms, ptmsu, psmi ! input ice/snow temp & sal892 REAL(wp), DIMENSION(:,:), INTENT(inout) , OPTIONAL:: pt_i, pt_s, pt_su, ps_i ! output ice/snow temp & sal882 REAL(wp), DIMENSION(:) , INTENT(in) :: ptmi, ptms, ptmsu, psmi ! input ice/snow temp & sal 883 REAL(wp), DIMENSION(:,:), INTENT(inout) :: pt_i, pt_s, pt_su, ps_i ! output ice/snow temp & sal 893 884 ! 894 885 INTEGER , DIMENSION(4) :: itest … … 1005 996 ! 1006 997 ! == temperature and salinity == ! 1007 IF( PRESENT( pt_i ) ) THEN 1008 DO jl = 1, jpl 1009 pt_i(:,jl) = ptmi (:) 1010 END DO 1011 ENDIF 1012 IF( PRESENT( pt_s ) ) THEN 1013 DO jl = 1, jpl 1014 pt_s (:,jl) = ptms (:) 1015 END DO 1016 ENDIF 1017 IF( PRESENT( pt_su ) ) THEN 1018 DO jl = 1, jpl 1019 pt_su(:,jl) = ptmsu(:) 1020 END DO 1021 ENDIF 1022 IF( PRESENT( ps_i ) ) THEN 1023 DO jl = 1, jpl 1024 ps_i (:,jl) = psmi (:) 1025 END DO 1026 ENDIF 998 DO jl = 1, jpl 999 pt_i(:,jl) = ptmi (:) 1000 END DO 1001 DO jl = 1, jpl 1002 pt_s (:,jl) = ptms (:) 1003 END DO 1004 DO jl = 1, jpl 1005 pt_su(:,jl) = ptmsu(:) 1006 END DO 1007 DO jl = 1, jpl 1008 ps_i (:,jl) = psmi (:) 1009 END DO 1027 1010 ! 1028 1011 END SUBROUTINE ice_var_itd_1cMc … … 1060 1043 REAL(wp), DIMENSION(:,:), INTENT(in) :: phti, phts, pati ! input ice/snow variables 1061 1044 REAL(wp), DIMENSION(:,:), INTENT(inout) :: ph_i, ph_s, pa_i ! output ice/snow variables 1062 REAL(wp), DIMENSION(:,:), INTENT(in) , OPTIONAL:: ptmi, ptms, ptmsu, psmi ! input ice/snow temp & sal1063 REAL(wp), DIMENSION(:,:), INTENT(inout) , OPTIONAL:: pt_i, pt_s, pt_su, ps_i ! output ice/snow temp & sal1045 REAL(wp), DIMENSION(:,:), INTENT(in) :: ptmi, ptms, ptmsu, psmi ! input ice/snow temp & sal 1046 REAL(wp), DIMENSION(:,:), INTENT(inout) :: pt_i, pt_s, pt_su, ps_i ! output ice/snow temp & sal 1064 1047 ! 1065 1048 INTEGER , ALLOCATABLE, DIMENSION(:,:) :: jlfil, jlfil2 … … 1084 1067 ! 1085 1068 ! == temperature and salinity == ! 1086 IF( PRESENT( pt_i ) )pt_i (:,:) = ptmi (:,:)1087 IF( PRESENT( pt_s ) )pt_s (:,:) = ptms (:,:)1088 IF( PRESENT( pt_su ) )pt_su(:,:) = ptmsu(:,:)1089 IF( PRESENT( ps_i ) )ps_i (:,:) = psmi (:,:)1069 pt_i (:,:) = ptmi (:,:) 1070 pt_s (:,:) = ptms (:,:) 1071 pt_su(:,:) = ptmsu(:,:) 1072 ps_i (:,:) = psmi (:,:) 1090 1073 ! ! ---------------------- ! 1091 1074 ELSEIF( icat == 1 ) THEN ! input cat = 1 ! 1092 1075 ! ! ---------------------- ! 1093 CALL ice_var_itd_1cMc( phti(:,1), phts(:,1), pati (:,1), ph_i(:,:), ph_s(:,:), pa_i (:,:) ) 1094 !! CALL ice_var_itd_1cMc( phti(:,1), phts(:,1), pati (:,1), ph_i(:,:), ph_s(:,:), pa_i (:,:), & 1095 !! & ptmi(:,1), ptms(:,1), ptmsu(:,1), psmi(:,1), pt_i(:,:), pt_s(:,:), pt_su(:,:), ps_i(:,:) ) 1076 CALL ice_var_itd_1cMc( phti(:,1), phts(:,1), pati (:,1), ph_i(:,:), ph_s(:,:), pa_i (:,:), & 1077 & ptmi(:,1), ptms(:,1), ptmsu(:,1), psmi(:,1), pt_i(:,:), pt_s(:,:), pt_su(:,:), ps_i(:,:) ) 1096 1078 ! ! ---------------------- ! 1097 1079 ELSEIF( jpl == 1 ) THEN ! output cat = 1 ! 1098 1080 ! ! ---------------------- ! 1099 CALL ice_var_itd_Nc1c( phti(:,:), phts(:,:), pati (:,:), ph_i(:,1), ph_s(:,1), pa_i (:,1) ) 1100 !! CALL ice_var_itd_Nc1c( phti(:,:), phts(:,:), pati (:,:), ph_i(:,1), ph_s(:,1), pa_i (:,1), & 1101 !! & ptmi(:,:), ptms(:,:), ptmsu(:,:), psmi(:,:), pt_i(:,1), pt_s(:,1), pt_su(:,1), ps_i(:,1) ) 1081 CALL ice_var_itd_Nc1c( phti(:,:), phts(:,:), pati (:,:), ph_i(:,1), ph_s(:,1), pa_i (:,1), & 1082 & ptmi(:,:), ptms(:,:), ptmsu(:,:), psmi(:,:), pt_i(:,1), pt_s(:,1), pt_su(:,1), ps_i(:,1) ) 1102 1083 ! ! ----------------------- ! 1103 1084 ELSE ! input cat /= output cat ! … … 1189 1170 ! == temperature and salinity == ! 1190 1171 ! 1191 IF( PRESENT( pt_i ) .OR. PRESENT( pt_s ) .OR. PRESENT( pt_su ) .OR. PRESENT( ps_i ) ) THEN 1192 ! 1193 ALLOCATE( z1_ai(idim), z1_vi(idim), z1_vs(idim), ztmp(idim) ) 1194 ! 1195 WHERE( SUM( pa_i(:,:), dim=2 ) /= 0._wp ) ; z1_ai(:) = 1._wp / SUM( pa_i(:,:), dim=2 ) 1196 ELSEWHERE ; z1_ai(:) = 0._wp 1197 END WHERE 1198 WHERE( SUM( pa_i(:,:) * ph_i(:,:), dim=2 ) /= 0._wp ) ; z1_vi(:) = 1._wp / SUM( pa_i(:,:) * ph_i(:,:), dim=2 ) 1199 ELSEWHERE ; z1_vi(:) = 0._wp 1200 END WHERE 1201 WHERE( SUM( pa_i(:,:) * ph_s(:,:), dim=2 ) /= 0._wp ) ; z1_vs(:) = 1._wp / SUM( pa_i(:,:) * ph_s(:,:), dim=2 ) 1202 ELSEWHERE ; z1_vs(:) = 0._wp 1203 END WHERE 1204 ! 1205 ! fill all the categories with the same value 1206 IF( PRESENT( pt_i ) ) THEN 1207 ztmp(:) = SUM( ptmi (:,:) * pati(:,:) * phti(:,:), dim=2 ) * z1_vi(:) 1208 DO jl = 1, jpl 1209 pt_i (:,jl) = ztmp(:) 1210 END DO 1211 ENDIF 1212 IF( PRESENT( pt_s ) ) THEN 1213 ztmp(:) = SUM( ptms (:,:) * pati(:,:) * phts(:,:), dim=2 ) * z1_vs(:) 1214 DO jl = 1, jpl 1215 pt_s (:,jl) = ztmp(:) 1216 END DO 1217 ENDIF 1218 IF( PRESENT( pt_su ) ) THEN 1219 ztmp(:) = SUM( ptmsu(:,:) * pati(:,:) , dim=2 ) * z1_ai(:) 1220 DO jl = 1, jpl 1221 pt_su(:,jl) = ztmp(:) 1222 END DO 1223 ENDIF 1224 IF( PRESENT( ps_i ) ) THEN 1225 ztmp(:) = SUM( psmi (:,:) * pati(:,:) * phti(:,:), dim=2 ) * z1_vi(:) 1226 DO jl = 1, jpl 1227 ps_i (:,jl) = ztmp(:) 1228 END DO 1229 ENDIF 1230 ! 1231 DEALLOCATE( z1_ai, z1_vi, z1_vs, ztmp ) 1232 ! 1233 ENDIF 1172 ALLOCATE( z1_ai(idim), z1_vi(idim), z1_vs(idim), ztmp(idim) ) 1173 ! 1174 WHERE( SUM( pa_i(:,:), dim=2 ) /= 0._wp ) ; z1_ai(:) = 1._wp / SUM( pa_i(:,:), dim=2 ) 1175 ELSEWHERE ; z1_ai(:) = 0._wp 1176 END WHERE 1177 WHERE( SUM( pa_i(:,:) * ph_i(:,:), dim=2 ) /= 0._wp ) ; z1_vi(:) = 1._wp / SUM( pa_i(:,:) * ph_i(:,:), dim=2 ) 1178 ELSEWHERE ; z1_vi(:) = 0._wp 1179 END WHERE 1180 WHERE( SUM( pa_i(:,:) * ph_s(:,:), dim=2 ) /= 0._wp ) ; z1_vs(:) = 1._wp / SUM( pa_i(:,:) * ph_s(:,:), dim=2 ) 1181 ELSEWHERE ; z1_vs(:) = 0._wp 1182 END WHERE 1183 ! 1184 ! fill all the categories with the same value 1185 ztmp(:) = SUM( ptmi (:,:) * pati(:,:) * phti(:,:), dim=2 ) * z1_vi(:) 1186 DO jl = 1, jpl 1187 pt_i (:,jl) = ztmp(:) 1188 END DO 1189 ztmp(:) = SUM( ptms (:,:) * pati(:,:) * phts(:,:), dim=2 ) * z1_vs(:) 1190 DO jl = 1, jpl 1191 pt_s (:,jl) = ztmp(:) 1192 END DO 1193 ztmp(:) = SUM( ptmsu(:,:) * pati(:,:) , dim=2 ) * z1_ai(:) 1194 DO jl = 1, jpl 1195 pt_su(:,jl) = ztmp(:) 1196 END DO 1197 ztmp(:) = SUM( psmi (:,:) * pati(:,:) * phti(:,:), dim=2 ) * z1_vi(:) 1198 DO jl = 1, jpl 1199 ps_i (:,jl) = ztmp(:) 1200 END DO 1201 ! 1202 DEALLOCATE( z1_ai, z1_vi, z1_vs, ztmp ) 1234 1203 ! 1235 1204 ENDIF -
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/BDY/bdy_oce.F90
r11223 r11507 57 57 REAL(wp), POINTER, DIMENSION(:,:) :: h_i !: Now ice thickness climatology 58 58 REAL(wp), POINTER, DIMENSION(:,:) :: h_s !: now snow thickness 59 REAL(wp), POINTER, DIMENSION(:,:) :: t_i !: now ice temperature 60 REAL(wp), POINTER, DIMENSION(:,:) :: t_s !: now snow temperature 61 REAL(wp), POINTER, DIMENSION(:,:) :: tsu !: now surf temperature 62 REAL(wp), POINTER, DIMENSION(:,:) :: s_i !: now ice salinity 59 63 #if defined key_top 60 64 CHARACTER(LEN=20) :: cn_obc !: type of boundary condition to apply … … 68 72 !! Namelist variables 69 73 !!---------------------------------------------------------------------- 74 ! !!** nambdy ** 70 75 LOGICAL, PUBLIC :: ln_bdy !: Unstructured Ocean Boundary Condition 71 76 … … 101 106 INTEGER , DIMENSION(jp_bdy) :: nn_ice_dta !: = 0 use the initial state as bdy dta ; 102 107 !: = 1 read it in a NetCDF file 103 REAL(wp), DIMENSION(jp_bdy) :: rn_ice_tem !: choice of the temperature of incoming sea ice 104 REAL(wp), DIMENSION(jp_bdy) :: rn_ice_sal !: choice of the salinity of incoming sea ice 105 REAL(wp), DIMENSION(jp_bdy) :: rn_ice_age !: choice of the age of incoming sea ice 108 ! 109 ! !!** nambdy_dta ** 110 REAL(wp), DIMENSION(jp_bdy) :: rice_tem !: temperature of incoming sea ice 111 REAL(wp), DIMENSION(jp_bdy) :: rice_sal !: salinity of incoming sea ice 112 REAL(wp), DIMENSION(jp_bdy) :: rice_age !: age of incoming sea ice 106 113 ! 107 108 114 !!---------------------------------------------------------------------- 109 115 !! Global variables -
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/BDY/bdydta.F90
r11352 r11507 43 43 PUBLIC bdy_dta_init ! routine called by nemogcm.F90 44 44 45 INTEGER , PARAMETER :: jpbdyfld = 1 0! maximum number of files to read45 INTEGER , PARAMETER :: jpbdyfld = 14 ! maximum number of files to read 46 46 INTEGER , PARAMETER :: jp_bdyssh = 1 ! 47 47 INTEGER , PARAMETER :: jp_bdyu2d = 2 ! … … 53 53 INTEGER , PARAMETER :: jp_bdya_i = 8 ! 54 54 INTEGER , PARAMETER :: jp_bdyh_i = 9 ! 55 INTEGER , PARAMETER :: jp_bdyh_S = 10 ! 55 INTEGER , PARAMETER :: jp_bdyh_s = 10 ! 56 INTEGER , PARAMETER :: jp_bdyt_i = 11 ! 57 INTEGER , PARAMETER :: jp_bdyt_s = 12 ! 58 INTEGER , PARAMETER :: jp_bdytsu = 13 ! 59 INTEGER , PARAMETER :: jp_bdys_i = 14 ! 56 60 #if ! defined key_si3 57 61 INTEGER , PARAMETER :: jpl = 1 58 62 #endif 59 ! =F => baroclinic velocities in 3D boundary conditions 63 60 64 !$AGRIF_DO_NOT_TREAT 61 65 TYPE(FLD), PUBLIC, ALLOCATABLE, DIMENSION(:,:), TARGET :: bf ! structure of input fields (file informations, fields read) … … 181 185 ii = idx_bdy(jbdy)%nbi(ib,igrd) 182 186 ij = idx_bdy(jbdy)%nbj(ib,igrd) 183 dta_bdy(jbdy)%a_i (ib,jl) = a_i(ii,ij,jl) * tmask(ii,ij,1) 184 dta_bdy(jbdy)%h_i (ib,jl) = h_i(ii,ij,jl) * tmask(ii,ij,1) 185 dta_bdy(jbdy)%h_s (ib,jl) = h_s(ii,ij,jl) * tmask(ii,ij,1) 187 dta_bdy(jbdy)%a_i(ib,jl) = a_i (ii,ij,jl) * tmask(ii,ij,1) 188 dta_bdy(jbdy)%h_i(ib,jl) = h_i (ii,ij,jl) * tmask(ii,ij,1) 189 dta_bdy(jbdy)%h_s(ib,jl) = h_s (ii,ij,jl) * tmask(ii,ij,1) 190 dta_bdy(jbdy)%t_i(ib,jl) = SUM(t_i (ii,ij,:,jl)) * r1_nlay_i * tmask(ii,ij,1) 191 dta_bdy(jbdy)%t_s(ib,jl) = SUM(t_s (ii,ij,:,jl)) * r1_nlay_s * tmask(ii,ij,1) 192 dta_bdy(jbdy)%tsu(ib,jl) = t_su(ii,ij,jl) * tmask(ii,ij,1) 193 dta_bdy(jbdy)%s_i(ib,jl) = s_i (ii,ij,jl) * tmask(ii,ij,1) 186 194 END DO 187 195 END DO … … 280 288 281 289 #if defined key_si3 282 ! ice: convert N-cat fields (input) into jpl-cat (output)283 290 IF( dta_alias%lneed_ice ) THEN 284 ipl = SIZE(bf_alias(jp_bdya_i)%fnow, 3) 291 ! fill temperature and salinity arrays 292 IF( TRIM(bf_alias(jp_bdyt_i)%clrootname) == 'NOT USED' ) bf_alias(jp_bdyt_i)%fnow(:,1,:) = rice_tem(jbdy) 293 IF( TRIM(bf_alias(jp_bdyt_s)%clrootname) == 'NOT USED' ) bf_alias(jp_bdyt_s)%fnow(:,1,:) = rice_tem(jbdy) 294 IF( TRIM(bf_alias(jp_bdytsu)%clrootname) == 'NOT USED' ) bf_alias(jp_bdytsu)%fnow(:,1,:) = rice_tem(jbdy) 295 IF( TRIM(bf_alias(jp_bdys_i)%clrootname) == 'NOT USED' ) bf_alias(jp_bdys_i)%fnow(:,1,:) = rice_sal(jbdy) 296 ! if T_su is read and not T_i, set T_i = (T_su + T_freeze)/2 297 IF( TRIM(bf_alias(jp_bdytsu)%clrootname) /= 'NOT USED' .AND. TRIM(bf_alias(jp_bdyt_i)%clrootname) == 'NOT USED' ) & 298 & bf_alias(jp_bdyt_i)%fnow(:,1,:) = 0.5_wp * ( bf_alias(jp_bdytsu)%fnow(:,1,:) + 271.15 ) 299 ! if T_su is read and not T_s, set T_s = T_su 300 IF( TRIM(bf_alias(jp_bdytsu)%clrootname) /= 'NOT USED' .AND. TRIM(bf_alias(jp_bdyt_s)%clrootname) == 'NOT USED' ) & 301 & bf_alias(jp_bdyt_s)%fnow(:,1,:) = bf_alias(jp_bdytsu)%fnow(:,1,:) 302 ! if T_s is read and not T_su, set T_su = T_s 303 IF( TRIM(bf_alias(jp_bdyt_s)%clrootname) /= 'NOT USED' .AND. TRIM(bf_alias(jp_bdytsu)%clrootname) == 'NOT USED' ) & 304 & bf_alias(jp_bdytsu)%fnow(:,1,:) = bf_alias(jp_bdyt_s)%fnow(:,1,:) 305 ! if T_s is read and not T_i, set T_i = (T_s + T_freeze)/2 306 IF( TRIM(bf_alias(jp_bdyt_s)%clrootname) /= 'NOT USED' .AND. TRIM(bf_alias(jp_bdyt_i)%clrootname) == 'NOT USED' ) & 307 & bf_alias(jp_bdyt_i)%fnow(:,1,:) = 0.5_wp * ( bf_alias(jp_bdyt_s)%fnow(:,1,:) + 271.15 ) 308 309 ! convert N-cat fields (input) into jpl-cat (output) 310 ipl = SIZE(bf_alias(jp_bdya_i)%fnow, 3) 285 311 IF( ipl /= jpl ) THEN ! ice: convert N-cat fields (input) into jpl-cat (output) 286 CALL ice_var_itd(bf_alias(jp_bdyh_i)%fnow(:,1,:), bf_alias(jp_bdyh_s)%fnow(:,1,:), bf_alias(jp_bdya_i)%fnow(:,1,:), & 287 & dta_alias%h_i , dta_alias%h_s , dta_alias%a_i ) 312 CALL ice_var_itd( bf_alias(jp_bdyh_i)%fnow(:,1,:), bf_alias(jp_bdyh_s)%fnow(:,1,:), bf_alias(jp_bdya_i)%fnow(:,1,:), & 313 & dta_alias%h_i , dta_alias%h_s , dta_alias%a_i , & 314 & bf_alias(jp_bdyt_i)%fnow(:,1,:), bf_alias(jp_bdyt_s)%fnow(:,1,:), & 315 & bf_alias(jp_bdytsu)%fnow(:,1,:), bf_alias(jp_bdys_i)%fnow(:,1,:), & 316 & dta_alias%t_i , dta_alias%t_s , & 317 & dta_alias%tsu , dta_alias%s_i ) 288 318 ENDIF 289 319 ENDIF … … 332 362 ! ! =F => baroclinic velocities in 3D boundary data 333 363 LOGICAL :: ln_zinterp ! =T => requires a vertical interpolation of the bdydta 364 REAL(wp) :: rn_ice_tem, rn_ice_sal, rn_ice_age 334 365 INTEGER :: ipk,ipl ! 335 366 INTEGER :: idvar ! variable ID … … 341 372 LOGICAL :: llneed ! 342 373 LOGICAL :: llread ! 343 TYPE(FLD_N), DIMENSION(1), TARGET :: bn_tem, bn_sal, bn_u3d, bn_v3d ! must be an array to be used with fld_fill344 TYPE(FLD_N), DIMENSION(1), TARGET :: bn_ssh, bn_u2d, bn_v2d ! informations about the fields to be read345 TYPE(FLD_N), DIMENSION(1), TARGET :: bn_a_i, bn_h_i, bn_h_s374 TYPE(FLD_N), DIMENSION(1), TARGET :: bn_tem, bn_sal, bn_u3d, bn_v3d ! must be an array to be used with fld_fill 375 TYPE(FLD_N), DIMENSION(1), TARGET :: bn_ssh, bn_u2d, bn_v2d ! informations about the fields to be read 376 TYPE(FLD_N), DIMENSION(1), TARGET :: bn_a_i, bn_h_i, bn_h_s, bn_t_i, bn_t_s, bn_tsu, bn_s_i 346 377 TYPE(FLD_N), DIMENSION(:), POINTER :: bn_alias ! must be an array to be used with fld_fill 347 378 TYPE(FLD ), DIMENSION(:), POINTER :: bf_alias 348 379 ! 349 380 NAMELIST/nambdy_dta/ cn_dir, bn_tem, bn_sal, bn_u3d, bn_v3d, bn_ssh, bn_u2d, bn_v2d 350 NAMELIST/nambdy_dta/ bn_a_i, bn_h_i, bn_h_s 381 NAMELIST/nambdy_dta/ bn_a_i, bn_h_i, bn_h_s, bn_t_i, bn_t_s, bn_tsu, bn_s_i 382 NAMELIST/nambdy_dta/ rn_ice_tem, rn_ice_sal, rn_ice_age 351 383 NAMELIST/nambdy_dta/ ln_full_vel, ln_zinterp 352 384 !!--------------------------------------------------------------------------- … … 402 434 ENDIF 403 435 436 ! temp, sal and age of incoming ice 437 rice_tem(jbdy) = rn_ice_tem 438 rice_sal(jbdy) = rn_ice_sal 439 rice_age(jbdy) = rn_ice_age 440 441 404 442 DO jfld = 1, jpbdyfld 405 443 … … 497 535 ! ice 498 536 ! ===================== 537 IF( jfld == jp_bdya_i .OR. jfld == jp_bdyh_i .OR. jfld == jp_bdyh_s .OR. & 538 & jfld == jp_bdyt_i .OR. jfld == jp_bdyt_s .OR. jfld == jp_bdytsu .OR. jfld == jp_bdys_i ) THEN 539 igrd = 1 ! T point 540 ipk = ipl ! jpl-cat data 541 llneed = dta_bdy(jbdy)%lneed_ice ! ice will be needed 542 llread = nn_ice_dta(jbdy) == 1 ! get data from NetCDF file 543 iszdim = idx_bdy(jbdy)%nblen(igrd) ! length of this bdy on this MPI processus 544 ENDIF 499 545 IF( jfld == jp_bdya_i ) THEN 500 546 cl3 = 'a_i' 501 igrd = 1 ! T point 502 ipk = ipl ! 503 llneed = dta_bdy(jbdy)%lneed_ice ! dta_bdy(jbdy)%a_i will be needed 504 llread = nn_ice_dta(jbdy) == 1 ! get data from NetCDF file 505 bf_alias => bf(jp_bdya_i,jbdy:jbdy) ! alias for ssh structure of bdy number jbdy 506 bn_alias => bn_a_i ! alias for ssh structure of nambdy_dta 507 iszdim = idx_bdy(jbdy)%nblen(igrd) ! length of this bdy on this MPI processus 508 ENDIF 547 bf_alias => bf(jp_bdya_i,jbdy:jbdy) ! alias for a_i structure of bdy number jbdy 548 bn_alias => bn_a_i ! alias for a_i structure of nambdy_dta 549 ENDIF 509 550 IF( jfld == jp_bdyh_i ) THEN 510 551 cl3 = 'h_i' 511 igrd = 1 ! T point 512 ipk = ipl ! 513 llneed = dta_bdy(jbdy)%lneed_ice ! dta_bdy(jbdy)%h_i will be needed 514 llread = nn_ice_dta(jbdy) == 1 ! get data from NetCDF file 515 bf_alias => bf(jp_bdyh_i,jbdy:jbdy) ! alias for ssh structure of bdy number jbdy 516 bn_alias => bn_h_i ! alias for ssh structure of nambdy_dta 517 iszdim = idx_bdy(jbdy)%nblen(igrd) ! length of this bdy on this MPI processus 552 bf_alias => bf(jp_bdyh_i,jbdy:jbdy) ! alias for h_i structure of bdy number jbdy 553 bn_alias => bn_h_i ! alias for h_i structure of nambdy_dta 518 554 ENDIF 519 555 IF( jfld == jp_bdyh_s ) THEN 520 556 cl3 = 'h_s' 521 igrd = 1 ! T point 522 ipk = ipl ! 523 llneed = dta_bdy(jbdy)%lneed_ice ! dta_bdy(jbdy)%h_s will be needed 524 llread = nn_ice_dta(jbdy) == 1 ! get data from NetCDF file 525 bf_alias => bf(jp_bdyh_s,jbdy:jbdy) ! alias for ssh structure of bdy number jbdy 526 bn_alias => bn_h_s ! alias for ssh structure of nambdy_dta 527 iszdim = idx_bdy(jbdy)%nblen(igrd) ! length of this bdy on this MPI processus 557 bf_alias => bf(jp_bdyh_s,jbdy:jbdy) ! alias for h_s structure of bdy number jbdy 558 bn_alias => bn_h_s ! alias for h_s structure of nambdy_dta 559 ENDIF 560 IF( jfld == jp_bdyt_i ) THEN 561 cl3 = 't_i' 562 bf_alias => bf(jp_bdyt_i,jbdy:jbdy) ! alias for t_i structure of bdy number jbdy 563 bn_alias => bn_t_i ! alias for t_i structure of nambdy_dta 564 ENDIF 565 IF( jfld == jp_bdyt_s ) THEN 566 cl3 = 't_s' 567 bf_alias => bf(jp_bdyt_s,jbdy:jbdy) ! alias for t_s structure of bdy number jbdy 568 bn_alias => bn_t_s ! alias for t_s structure of nambdy_dta 569 ENDIF 570 IF( jfld == jp_bdytsu ) THEN 571 cl3 = 'tsu' 572 bf_alias => bf(jp_bdytsu,jbdy:jbdy) ! alias for tsu structure of bdy number jbdy 573 bn_alias => bn_tsu ! alias for tsu structure of nambdy_dta 574 ENDIF 575 IF( jfld == jp_bdys_i ) THEN 576 cl3 = 's_i' 577 bf_alias => bf(jp_bdys_i,jbdy:jbdy) ! alias for s_i structure of bdy number jbdy 578 bn_alias => bn_s_i ! alias for s_i structure of nambdy_dta 528 579 ENDIF 529 580 … … 542 593 543 594 ! associate the pointer and get rid of the dimensions with a size equal to 1 544 IF( jfld == jp_bdyssh )dta_bdy(jbdy)%ssh => bf_alias(1)%fnow(:,1,1)545 IF( jfld == jp_bdyu2d )dta_bdy(jbdy)%u2d => bf_alias(1)%fnow(:,1,1)546 IF( jfld == jp_bdyv2d )dta_bdy(jbdy)%v2d => bf_alias(1)%fnow(:,1,1)547 IF( jfld == jp_bdyu3d )dta_bdy(jbdy)%u3d => bf_alias(1)%fnow(:,1,:)548 IF( jfld == jp_bdyv3d )dta_bdy(jbdy)%v3d => bf_alias(1)%fnow(:,1,:)549 IF( jfld == jp_bdytem )dta_bdy(jbdy)%tem => bf_alias(1)%fnow(:,1,:)550 IF( jfld == jp_bdysal )dta_bdy(jbdy)%sal => bf_alias(1)%fnow(:,1,:)595 IF( jfld == jp_bdyssh ) dta_bdy(jbdy)%ssh => bf_alias(1)%fnow(:,1,1) 596 IF( jfld == jp_bdyu2d ) dta_bdy(jbdy)%u2d => bf_alias(1)%fnow(:,1,1) 597 IF( jfld == jp_bdyv2d ) dta_bdy(jbdy)%v2d => bf_alias(1)%fnow(:,1,1) 598 IF( jfld == jp_bdyu3d ) dta_bdy(jbdy)%u3d => bf_alias(1)%fnow(:,1,:) 599 IF( jfld == jp_bdyv3d ) dta_bdy(jbdy)%v3d => bf_alias(1)%fnow(:,1,:) 600 IF( jfld == jp_bdytem ) dta_bdy(jbdy)%tem => bf_alias(1)%fnow(:,1,:) 601 IF( jfld == jp_bdysal ) dta_bdy(jbdy)%sal => bf_alias(1)%fnow(:,1,:) 551 602 IF( jfld == jp_bdya_i ) THEN 552 603 IF( ipk == jpl ) THEN ; dta_bdy(jbdy)%a_i => bf_alias(1)%fnow(:,1,:) … … 562 613 IF( ipk == jpl ) THEN ; dta_bdy(jbdy)%h_s => bf_alias(1)%fnow(:,1,:) 563 614 ELSE ; ALLOCATE( dta_bdy(jbdy)%h_s(iszdim,jpl) ) 615 ENDIF 616 ENDIF 617 IF( jfld == jp_bdyt_i ) THEN 618 IF( ipk == jpl ) THEN ; dta_bdy(jbdy)%t_i => bf_alias(1)%fnow(:,1,:) 619 ELSE ; ALLOCATE( dta_bdy(jbdy)%t_i(iszdim,jpl) ) 620 ENDIF 621 ENDIF 622 IF( jfld == jp_bdyt_s ) THEN 623 IF( ipk == jpl ) THEN ; dta_bdy(jbdy)%t_s => bf_alias(1)%fnow(:,1,:) 624 ELSE ; ALLOCATE( dta_bdy(jbdy)%t_s(iszdim,jpl) ) 625 ENDIF 626 ENDIF 627 IF( jfld == jp_bdytsu ) THEN 628 IF( ipk == jpl ) THEN ; dta_bdy(jbdy)%tsu => bf_alias(1)%fnow(:,1,:) 629 ELSE ; ALLOCATE( dta_bdy(jbdy)%tsu(iszdim,jpl) ) 630 ENDIF 631 ENDIF 632 IF( jfld == jp_bdys_i ) THEN 633 IF( ipk == jpl ) THEN ; dta_bdy(jbdy)%s_i => bf_alias(1)%fnow(:,1,:) 634 ELSE ; ALLOCATE( dta_bdy(jbdy)%s_i(iszdim,jpl) ) 564 635 ENDIF 565 636 ENDIF -
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/BDY/bdyice.F90
r11501 r11507 154 154 zwgt = idx%nbw(i_bdy,jgrd) 155 155 zwgt1 = 1.e0 - idx%nbw(i_bdy,jgrd) 156 a_i(ji,jj,jl) = ( a_i(ji,jj,jl) * zwgt1 + dta%a_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Leads fraction 157 h_i(ji,jj,jl) = ( h_i(ji,jj,jl) * zwgt1 + dta%h_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice depth 158 h_s(ji,jj,jl) = ( h_s(ji,jj,jl) * zwgt1 + dta%h_s(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Snow depth 159 156 a_i (ji,jj, jl) = ( a_i (ji,jj, jl) * zwgt1 + dta%a_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice concentration 157 h_i (ji,jj, jl) = ( h_i (ji,jj, jl) * zwgt1 + dta%h_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice depth 158 h_s (ji,jj, jl) = ( h_s (ji,jj, jl) * zwgt1 + dta%h_s(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Snow depth 159 t_i (ji,jj,:,jl) = ( t_i (ji,jj,:,jl) * zwgt1 + dta%t_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice temperature 160 t_s (ji,jj,:,jl) = ( t_s (ji,jj,:,jl) * zwgt1 + dta%t_s(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Snow temperature 161 t_su(ji,jj, jl) = ( t_su(ji,jj, jl) * zwgt1 + dta%tsu(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Surf temperature 162 s_i (ji,jj, jl) = ( s_i (ji,jj, jl) * zwgt1 + dta%s_i(i_bdy,jl) * zwgt ) * tmask(ji,jj,1) ! Ice salinity 163 sz_i(ji,jj,:,jl) = s_i (ji,jj, jl) 164 ! 160 165 ! ----------------- 161 166 ! Pathological case … … 208 213 IF( a_i(ib,jb,jl) > 0._wp ) THEN ! there is ice at the boundary 209 214 ! 210 a_i(ji,jj,jl) = a_i(ib,jb,jl) ! concentration 211 h_i(ji,jj,jl) = h_i(ib,jb,jl) ! thickness ice 212 h_s(ji,jj,jl) = h_s(ib,jb,jl) ! thickness snw 215 a_i (ji,jj, jl) = a_i (ib,jb, jl) 216 h_i (ji,jj, jl) = h_i (ib,jb, jl) 217 h_s (ji,jj, jl) = h_s (ib,jb, jl) 218 t_i (ji,jj,:,jl) = t_i (ib,jb,:,jl) 219 t_s (ji,jj,:,jl) = t_s (ib,jb,:,jl) 220 t_su(ji,jj, jl) = t_su(ib,jb, jl) 221 s_i (ji,jj, jl) = s_i (ib,jb, jl) 222 sz_i(ji,jj,:,jl) = sz_i(ib,jb,:,jl) 213 223 ! 214 224 SELECT CASE( jpbound ) 215 225 ! 216 226 CASE( 0 ) ! velocity is inward 217 ! 218 oa_i(ji,jj, jl) = rn_ice_age(jbdy) * a_i(ji,jj,jl) ! age 219 a_ip(ji,jj, jl) = 0._wp ! pond concentration 220 v_ip(ji,jj, jl) = 0._wp ! pond volume 221 t_su(ji,jj, jl) = rn_ice_tem(jbdy) ! temperature surface 222 t_s (ji,jj,:,jl) = rn_ice_tem(jbdy) ! temperature snw 223 t_i (ji,jj,:,jl) = rn_ice_tem(jbdy) ! temperature ice 224 s_i (ji,jj, jl) = rn_ice_sal(jbdy) ! salinity 225 sz_i(ji,jj,:,jl) = rn_ice_sal(jbdy) ! salinity profile 226 ! 227 oa_i(ji,jj,jl) = rice_age(jbdy) * a_i(ji,jj,jl) ! age 228 a_ip(ji,jj,jl) = 0._wp ! pond concentration 229 v_ip(ji,jj,jl) = 0._wp ! pond volume 227 230 CASE( 1 ) ! velocity is outward 228 ! 229 oa_i(ji,jj, jl) = oa_i(ib,jb, jl) ! age 230 a_ip(ji,jj, jl) = a_ip(ib,jb, jl) ! pond concentration 231 v_ip(ji,jj, jl) = v_ip(ib,jb, jl) ! pond volume 232 t_su(ji,jj, jl) = t_su(ib,jb, jl) ! temperature surface 233 t_s (ji,jj,:,jl) = t_s (ib,jb,:,jl) ! temperature snw 234 t_i (ji,jj,:,jl) = t_i (ib,jb,:,jl) ! temperature ice 235 s_i (ji,jj, jl) = s_i (ib,jb, jl) ! salinity 236 sz_i(ji,jj,:,jl) = sz_i(ib,jb,:,jl) ! salinity profile 237 ! 231 oa_i(ji,jj,jl) = oa_i(ib,jb,jl) ! age 232 a_ip(ji,jj,jl) = a_ip(ib,jb,jl) ! pond concentration 233 v_ip(ji,jj,jl) = v_ip(ib,jb,jl) ! pond volume 238 234 END SELECT 239 235 ! … … 374 370 jj = idx_bdy(jbdy)%nbj(i_bdy,jgrd) 375 371 zflag = idx_bdy(jbdy)%flagv(i_bdy,jgrd) 376 ! ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨ ! ¨¨¨¨ïce¨¨¨(jj+1)¨¨ ! ¨¨¨¨¨¨ö¨¨¨¨(jj+1)372 ! ! ice (jj+1) ! o (jj+1) 377 373 ! ^ (jj ) ! ^ (jj ) ! ^ (jj ) 378 374 ! ice (jj ) ! o (jj ) ! o (jj ) -
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/BDY/bdyini.F90
r11356 r11507 67 67 & ln_tra_dmp, ln_dyn3d_dmp, rn_time_dmp, rn_time_dmp_out, & 68 68 & cn_ice, nn_ice_dta, & 69 & rn_ice_tem, rn_ice_sal, rn_ice_age, &70 69 & ln_vol, nn_volctl, nn_rimwidth 71 70 ! … … 94 93 cn_ice (2:jp_bdy) = cn_ice (1) 95 94 nn_ice_dta (2:jp_bdy) = nn_ice_dta (1) 96 rn_ice_tem (2:jp_bdy) = rn_ice_tem (1)97 rn_ice_sal (2:jp_bdy) = rn_ice_sal (1)98 rn_ice_age (2:jp_bdy) = rn_ice_age (1)99 95 REWIND( numnam_cfg ) ! Namelist nambdy in configuration namelist :Unstructured open boundaries 100 96 READ ( numnam_cfg, nambdy, IOSTAT = ios, ERR = 902 ) … … 328 324 CASE DEFAULT ; CALL ctl_stop( 'nn_ice_dta must be 0 or 1' ) 329 325 END SELECT 330 WRITE(numout,*)331 WRITE(numout,*) ' tem of bdy sea-ice = ', rn_ice_tem(ib_bdy)332 WRITE(numout,*) ' sal of bdy sea-ice = ', rn_ice_sal(ib_bdy)333 WRITE(numout,*) ' age of bdy sea-ice = ', rn_ice_age(ib_bdy)334 326 ENDIF 335 327 #else -
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/DOM/dommsk.F90
r11317 r11507 100 100 & ln_tra_dmp, ln_dyn3d_dmp, rn_time_dmp, rn_time_dmp_out, & 101 101 & cn_ice, nn_ice_dta, & 102 & rn_ice_tem, rn_ice_sal, rn_ice_age, &103 102 & ln_vol, nn_volctl, nn_rimwidth 104 103 !!--------------------------------------------------------------------- -
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/LBC/mppini.F90
r11398 r11507 167 167 & ln_tra_dmp, ln_dyn3d_dmp, rn_time_dmp, rn_time_dmp_out, & 168 168 & cn_ice, nn_ice_dta, & 169 & rn_ice_tem, rn_ice_sal, rn_ice_age, &170 169 & ln_vol, nn_volctl, nn_rimwidth 171 170 NAMELIST/nammpp/ jpni, jpnj, ln_nnogather, ln_listonly
Note: See TracChangeset
for help on using the changeset viewer.