Changeset 10492 for branches/UKMO/CO6_shelfclimate_fabm_noos/NEMOGCM/NEMO/OPA_SRC/DIA/diaregmean.F90
- Timestamp:
- 2019-01-10T10:32:21+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/CO6_shelfclimate_fabm_noos/NEMOGCM/NEMO/OPA_SRC/DIA/diaregmean.F90
r8672 r10492 730 730 ! Local variables 731 731 INTEGER, DIMENSION(jpi, jpj) :: internal_region_mask ! Input 3d field and mask 732 REAL(wp), DIMENSION(jpi, jpj) :: internal_infield ! Internal data field 732 733 REAL(wp), ALLOCATABLE, DIMENSION(:) :: zrmet_ave,zrmet_tot,zrmet_var,zrmet_cnt,zrmet_mask_id,zrmet_reg_id ,zrmet_min,zrmet_max 733 734 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zrmet_out … … 744 745 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: dummy_zrmet 745 746 LOGICAL :: verbose 746 verbose = .F ALSE.747 verbose = .False. 747 748 748 749 … … 772 773 IF( ierr /= 0 ) CALL ctl_stop( 'dia_wri_region_mean: failed to allocate zrmet_reg_id array' ) 773 774 774 775 775 776 776 777 IF(lwp .AND. verbose) THEN … … 779 780 WRITE(numout,*) 780 781 ENDIF 782 783 DO ji = 1,jpi 784 DO jj = 1,jpj 785 internal_infield(ji,jj) = infield(ji,jj) 786 END DO 787 END DO 788 789 ! Check for NANS # JT 03/09/2018 790 DO ji = 1,jpi 791 DO jj = 1,jpj 792 IF ( tmask(ji,jj,1) == 1.0_wp ) THEN 793 IF ( internal_infield(ji,jj) .ne. internal_infield(ji,jj) ) THEN 794 WRITE(numout,*) 'dia_wri_region_mean : '//tmp_name//' Nan at (kt,i,j): ',kt,ji - (-jpizoom+1-nimpp+1),jj - (-jpjzoom+1-njmpp+1) 795 internal_infield(ji,jj) = 0. 796 ENDIF 797 ELSE 798 IF ( internal_infield(ji,jj) .ne. internal_infield(ji,jj) ) THEN 799 WRITE(numout,*) 'dia_wri_region_mean : '//tmp_name//' Masked Nan at (kt,i,j): ',kt,ji - (-jpizoom+1-nimpp+1),jj - (-jpjzoom+1-njmpp+1) 800 internal_infield(ji,jj) = 0. 801 ENDIF 802 ENDIF 803 END DO 804 END DO 805 781 806 782 807 zrmet_ave(:) = zmdi … … 845 870 !WRITE(numout,*) kt,start_reg_mean_loop 846 871 IF(lwp .AND. verbose) WRITE(numout,*) 'dia_wri_region_mean : '//tmp_name//'; begin spatial loops: ' 847 DO ji = 1,jpi848 DO jj = 1,jpj872 DO ji = nldi,nlei 873 DO jj = nldj,nlej 849 874 IF ( tmask(ji,jj,1) == 1.0_wp ) THEN 850 875 ind = internal_region_mask(ji,jj)+1 851 tot_mat(ind) = tot_mat(ind) + (in field(ji,jj))852 ssq_mat(ind) = ssq_mat(ind) + ( in field(ji,jj) *infield(ji,jj))876 tot_mat(ind) = tot_mat(ind) + (internal_infield(ji,jj)) 877 ssq_mat(ind) = ssq_mat(ind) + ( internal_infield(ji,jj) * internal_infield(ji,jj)) 853 878 cnt_mat(ind) = cnt_mat(ind) + 1. 854 879 855 min_mat(ind) = min(min_mat(ind),in field(ji,jj))856 max_mat(ind) = max(max_mat(ind),in field(ji,jj))880 min_mat(ind) = min(min_mat(ind),internal_infield(ji,jj)) 881 max_mat(ind) = max(max_mat(ind),internal_infield(ji,jj)) 857 882 ENDIF 858 883 END DO … … 963 988 ! if (zrmet_val .LT. -1e16) zrmet_val = -1e16 964 989 ! if (zrmet_val .GT. 1e16) zrmet_val = 1e16 965 ! if (zrmet_val .NE. zrmet_val) zrmet_val = 0. 990 if (zrmet_val .NE. zrmet_val) zrmet_val = 1e20 966 991 zrmet_out(:,:,jm) = zrmet_val 967 992 END DO … … 977 1002 ! if (zrmet_val .LT. -1e16) zrmet_val = -1e16 978 1003 ! if (zrmet_val .GT. 1e16) zrmet_val = 1e16 979 ! if (zrmet_val .NE. zrmet_val) zrmet_val = 0. 1004 if (zrmet_val .NE. zrmet_val) zrmet_val = 1e20 980 1005 zrmet_out(:,:,jm) = zrmet_val 981 1006 END DO … … 991 1016 ! if (zrmet_val .LT. -1e16) zrmet_val = -1e16 992 1017 ! if (zrmet_val .GT. 1e16) zrmet_val = 1e16 993 ! if (zrmet_val .NE. zrmet_val) zrmet_val = 0. 1018 if (zrmet_val .NE. zrmet_val) zrmet_val = 1e20 994 1019 zrmet_out(:,:,jm) = zrmet_val 995 1020 END DO … … 1005 1030 ! if (zrmet_val .LT. -1e16) zrmet_val = -1e16 1006 1031 ! if (zrmet_val .GT. 1e16) zrmet_val = 1e16 1007 ! if (zrmet_val .NE. zrmet_val) zrmet_val = 0. 1032 if (zrmet_val .NE. zrmet_val) zrmet_val = 1e20 1008 1033 zrmet_out(:,:,jm) = zrmet_val 1009 1034 END DO … … 1019 1044 ! if (zrmet_val .LT. -1e16) zrmet_val = -1e16 1020 1045 ! if (zrmet_val .GT. 1e16) zrmet_val = 1e16 1021 ! if (zrmet_val .NE. zrmet_val) zrmet_val = 0. 1046 if (zrmet_val .NE. zrmet_val) zrmet_val = 1e20 1022 1047 zrmet_out(:,:,jm) = zrmet_val 1023 1048 END DO … … 1033 1058 ! if (zrmet_val .LT. -1e16) zrmet_val = -1e16 1034 1059 ! if (zrmet_val .GT. 1e16) zrmet_val = 1e16 1035 ! if (zrmet_val .NE. zrmet_val) zrmet_val = 0. 1060 if (zrmet_val .NE. zrmet_val) zrmet_val = 1e20 1036 1061 zrmet_out(:,:,jm) = zrmet_val 1037 1062 END DO
Note: See TracChangeset
for help on using the changeset viewer.