- Timestamp:
- 2020-06-22T18:27:34+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/NST/agrif_oce_interp.F90
r13026 r13141 717 717 REAL(wp) :: zhtot 718 718 REAL(wp), DIMENSION(k1:k2,1:jpts) :: tabin 719 REAL(wp), DIMENSION(k1:k2) :: h_in 720 REAL(wp), DIMENSION(1:jpk) :: h_out 719 REAL(wp), DIMENSION(k1:k2) :: h_in, z_in 720 REAL(wp), DIMENSION(1:jpk) :: h_out, z_out 721 721 !!---------------------------------------------------------------------- 722 722 … … 790 790 tabin(jk,:) = ptab(ji,jj,jk,n1:n2-1) 791 791 END DO 792 z_in(1) = 0.5_wp * h_in(1) - zhtot + ht0_parent(ji,jj) 793 DO jk=2,N_in 794 z_in(jk) = z_in(jk-1) + 0.5_wp * h_in(jk) 795 ENDDO 796 792 797 N_out = 0 793 798 DO jk=1,jpk ! jpk of child grid … … 796 801 h_out(jk) = e3t(ji,jj,jk,Krhs_a) 797 802 ENDDO 803 804 z_out(1) = 0.5_wp * h_out(1) - SUM(h_out(1:N_out)) + ht_0(ji,jj) 805 DO jk=2,N_out 806 z_out(jk) = z_out(jk-1) + 0.5_wp * h_out(jk) 807 ENDDO 808 798 809 IF (N_in*N_out > 0) THEN 799 810 IF( l_ini_child ) THEN 800 CALL remap_linear(tabin(1:N_in,1:jpts), h_in(1:N_in),ts(ji,jj,1:N_out,1:jpts,Krhs_a), &801 & h_out(1:N_out),N_in,N_out,jpts)811 CALL remap_linear(tabin(1:N_in,1:jpts),z_in(1:N_in),ts(ji,jj,1:N_out,1:jpts,Krhs_a), & 812 & z_out(1:N_out),N_in,N_out,jpts) 802 813 ELSE 803 814 CALL reconstructandremap(tabin(1:N_in,1:jpts),h_in(1:N_in),ts(ji,jj,1:N_out,1:jpts,Krhs_a), & … … 850 861 REAL(wp) :: zrhoy, zhtot 851 862 ! vertical interpolation: 852 REAL(wp), DIMENSION(k1:k2) :: tabin, h_in 853 REAL(wp), DIMENSION(1:jpk) :: h_out 863 REAL(wp), DIMENSION(k1:k2) :: tabin, h_in, z_in 864 REAL(wp), DIMENSION(1:jpk) :: h_out, z_out 854 865 INTEGER :: N_in, N_out,item 855 866 REAL(wp) :: h_diff … … 924 935 ENDIF 925 936 ENDDO 937 z_in(1) = 0.5_wp * h_in(1) - zhtot + hu0_parent(ji,jj) 938 DO jk=2,N_in 939 z_in(jk) = z_in(jk-1) + 0.5_wp * h_in(jk) 940 ENDDO 926 941 927 942 N_out = 0 … … 931 946 h_out(N_out) = e3u(ji,jj,jk,Krhs_a) 932 947 ENDDO 948 949 z_out(1) = 0.5_wp * h_out(1) - SUM(h_out(1:N_out)) + hu_0(ji,jj) 950 DO jk=2,N_out 951 z_out(jk) = z_out(jk-1) + 0.5_wp * h_out(jk) 952 ENDDO 953 933 954 IF (N_in*N_out > 0) THEN 934 955 IF( l_ini_child ) THEN 935 CALL remap_linear (tabin(1:N_in), h_in(1:N_in),uu(ji,jj,1:N_out,Krhs_a),h_out(1:N_out),N_in,N_out,1)956 CALL remap_linear (tabin(1:N_in),z_in(1:N_in),uu(ji,jj,1:N_out,Krhs_a),z_out(1:N_out),N_in,N_out,1) 936 957 ELSE 937 958 CALL reconstructandremap(tabin(1:N_in),h_in(1:N_in),uu(ji,jj,1:N_out,Krhs_a),h_out(1:N_out),N_in,N_out,1) … … 964 985 REAL(wp) :: zrhox 965 986 ! vertical interpolation: 966 REAL(wp), DIMENSION(k1:k2) :: tabin, h_in 967 REAL(wp), DIMENSION(1:jpk) :: h_out 987 REAL(wp), DIMENSION(k1:k2) :: tabin, h_in, z_in 988 REAL(wp), DIMENSION(1:jpk) :: h_out, z_out 968 989 INTEGER :: N_in, N_out, item 969 990 REAL(wp) :: h_diff, zhtot … … 1029 1050 ENDIF 1030 1051 zhtot = zhtot + h_in(jk) 1031 IF( h_in(jk) .GT. 0. ) THEN 1032 tabin(jk) = ptab(ji,jj,jk,1)/(e1v(ji,jj)*zrhox*h_in(jk)) 1033 ELSE 1034 tabin(jk) = 0. 1035 ENDIF 1036 ENDDO 1037 1052 IF( h_in(jk) .GT. 0. ) THEN 1053 tabin(jk) = ptab(ji,jj,jk,1)/(e1v(ji,jj)*zrhox*h_in(jk)) 1054 ELSE 1055 tabin(jk) = 0. 1056 ENDIF 1057 ENDDO 1058 1059 z_in(1) = 0.5_wp * h_in(1) - zhtot + hv0_parent(ji,jj) 1060 DO jk=2,N_in 1061 z_in(jk) = z_in(jk-1) + 0.5_wp * h_in(jk) 1062 ENDDO 1063 1038 1064 N_out = 0 1039 1065 DO jk=1,jpk 1040 if(vmask(ji,jj,jk) == 0) EXIT1066 IF (vmask(ji,jj,jk) == 0) EXIT 1041 1067 N_out = N_out + 1 1042 1068 h_out(N_out) = e3v(ji,jj,jk,Krhs_a) 1043 END DO 1069 ENDDO 1070 1071 z_out(1) = 0.5_wp * h_out(1) - SUM(h_out(1:N_out)) + hv_0(ji,jj) 1072 DO jk=2,N_out 1073 z_out(jk) = z_out(jk-1) + 0.5_wp * h_out(jk) 1074 ENDDO 1075 1044 1076 IF (N_in*N_out > 0) THEN 1045 1077 IF( l_ini_child ) THEN 1046 CALL remap_linear (tabin(1:N_in), h_in(1:N_in),vv(ji,jj,1:N_out,Krhs_a),h_out(1:N_out),N_in,N_out,1)1078 CALL remap_linear (tabin(1:N_in),z_in(1:N_in),vv(ji,jj,1:N_out,Krhs_a),z_out(1:N_out),N_in,N_out,1) 1047 1079 ELSE 1048 1080 CALL reconstructandremap(tabin(1:N_in),h_in(1:N_in),vv(ji,jj,1:N_out,Krhs_a),h_out(1:N_out),N_in,N_out,1)
Note: See TracChangeset
for help on using the changeset viewer.