Changeset 138 for LMDZ.3.3/branches/rel-LF
- Timestamp:
- Sep 14, 2000, 6:28:55 PM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ.3.3/branches/rel-LF/libf/phylmd/interface_surf.F90
r137 r138 813 813 ! 1ere lecture champs ocean 814 814 ! 815 if (nisurf == is_oce) then816 call fromcpl(itime,(jjm+1)*iim, &817 & read_sst, read_sic, read_sit, read_alb_sic)815 ! if (nisurf == is_oce) then 816 ! call fromcpl(itime - 1,(jjm+1)*iim, & 817 ! & read_sst, read_sic, read_sit, read_alb_sic) 818 818 ! 819 819 ! je voulais utiliser des where mais ca ne voulait pas compiler dans un 820 820 ! if construct sur sun 821 821 ! 822 do j = 1, jjm + 1823 do ig = 1, iim824 if (abs(1. - read_sic(ig,j)) < 0.00001) then825 read_sst(ig,j) = RTT - 1.8826 read_sit(ig,j) = read_sit(ig,j) / read_sic(ig,j)827 read_alb_sic(ig,j) = read_alb_sic(ig,j) / read_sic(ig,j)828 else if (abs(read_sic(ig,j)) < 0.00001) then829 read_sst(ig,j) = read_sst(ig,j) / (1. - read_sic(ig,j))830 read_sit(ig,j) = read_sst(ig,j)831 read_alb_sic(ig,j) = 0.6832 else833 read_sst(ig,j) = read_sst(ig,j) / (1. - read_sic(ig,j))834 read_sit(ig,j) = read_sit(ig,j) / read_sic(ig,j)835 read_alb_sic(ig,j) = read_alb_sic(ig,j) / read_sic(ig,j)836 endif837 enddo838 enddo839 endif822 ! do j = 1, jjm + 1 823 ! do ig = 1, iim 824 ! if (abs(1. - read_sic(ig,j)) < 0.00001) then 825 ! read_sst(ig,j) = RTT - 1.8 826 ! read_sit(ig,j) = read_sit(ig,j) / read_sic(ig,j) 827 ! read_alb_sic(ig,j) = read_alb_sic(ig,j) / read_sic(ig,j) 828 ! else if (abs(read_sic(ig,j)) < 0.00001) then 829 ! read_sst(ig,j) = read_sst(ig,j) / (1. - read_sic(ig,j)) 830 ! read_sit(ig,j) = read_sst(ig,j) 831 ! read_alb_sic(ig,j) = 0.6 832 ! else 833 ! read_sst(ig,j) = read_sst(ig,j) / (1. - read_sic(ig,j)) 834 ! read_sit(ig,j) = read_sit(ig,j) / read_sic(ig,j) 835 ! read_alb_sic(ig,j) = read_alb_sic(ig,j) / read_sic(ig,j) 836 ! endif 837 ! enddo 838 ! enddo 839 ! endif 840 840 841 841 first_appel = .false. … … 859 859 cpl_rcoa(:,nisurf) = cpl_rcoa(:,nisurf) + run_off / FLOAT(nexca)/dtime 860 860 861 if (mod(itime, nexca) == 0) then 862 ! 863 ! Mise sur la bonne grille des champs a passer au coupleur 864 ! 865 ! allocation memoire 866 sum_error = 0 867 allocate(tmp_sols(iim,jjm+1,2), stat=error); sum_error = sum_error + error 868 allocate(tmp_nsol(iim,jjm+1,2), stat=error); sum_error = sum_error + error 869 allocate(tmp_rain(iim,jjm+1,2), stat=error); sum_error = sum_error + error 870 allocate(tmp_snow(iim,jjm+1,2), stat=error); sum_error = sum_error + error 871 allocate(tmp_evap(iim,jjm+1,2), stat=error); sum_error = sum_error + error 872 allocate(tmp_tsol(iim,jjm+1,2), stat=error); sum_error = sum_error + error 873 allocate(tmp_fder(iim,jjm+1,2), stat=error); sum_error = sum_error + error 874 allocate(tmp_albe(iim,jjm+1,2), stat=error); sum_error = sum_error + error 875 allocate(tmp_taux(iim,jjm+1,2), stat=error); sum_error = sum_error + error 876 allocate(tmp_tauy(iim,jjm+1,2), stat=error); sum_error = sum_error + error 877 allocate(tmp_rriv(iim,jjm+1,2), stat=error); sum_error = sum_error + error 878 allocate(tmp_rcoa(iim,jjm+1,2), stat=error); sum_error = sum_error + error 879 if (sum_error /= 0) then 880 abort_message='Pb allocation variables couplees' 881 call abort_gcm(modname,abort_message,1) 882 endif 883 884 call gath2cpl(cpl_sols(1,nisurf), tmp_sols(1,1,nisurf), klon, knon,iim,jjm, knindex) 885 call gath2cpl(cpl_nsol(1,nisurf), tmp_nsol(1,1,nisurf), klon, knon,iim,jjm, knindex) 886 call gath2cpl(cpl_rain(1,nisurf), tmp_rain(1,1,nisurf), klon, knon,iim,jjm, knindex) 887 call gath2cpl(cpl_snow(1,nisurf), tmp_snow(1,1,nisurf), klon, knon,iim,jjm, knindex) 888 call gath2cpl(cpl_evap(1,nisurf), tmp_evap(1,1,nisurf), klon, knon,iim,jjm, knindex) 889 call gath2cpl(cpl_tsol(1,nisurf), tmp_tsol(1,1,nisurf), klon, knon,iim,jjm, knindex) 890 call gath2cpl(cpl_fder(1,nisurf), tmp_fder(1,1,nisurf), klon, knon,iim,jjm, knindex) 891 call gath2cpl(cpl_albe(1,nisurf), tmp_albe(1,1,nisurf), klon, knon,iim,jjm, knindex) 892 call gath2cpl(cpl_taux(1,nisurf), tmp_taux(1,1,nisurf), klon, knon,iim,jjm, knindex) 893 call gath2cpl(cpl_tauy(1,nisurf), tmp_tauy(1,1,nisurf), klon, knon,iim,jjm, knindex) 894 call gath2cpl(cpl_rriv(1,nisurf), tmp_rriv(1,1,nisurf), klon, knon,iim,jjm, knindex) 895 call gath2cpl(cpl_rcoa(1,nisurf), tmp_rcoa(1,1,nisurf), klon, knon,iim,jjm, knindex) 896 ! 897 ! Passage des champs au/du coupleur 861 if (mod(itime, nexca) == 1) then 862 ! 863 ! Passage des champs au coupleur 898 864 ! 899 865 ! Si le domaine considere est l'ocean, on lit les champs venant du coupleur 900 866 ! 901 867 if (nisurf == is_oce) then 902 call fromcpl(itime ,(jjm+1)*iim, &868 call fromcpl(itime-1,(jjm+1)*iim, & 903 869 & read_sst, read_sic, read_sit, read_alb_sic) 904 870 do j = 1, jjm + 1 … … 920 886 enddo 921 887 endif 888 endif ! fin mod(itime, nexca) == 1 889 890 if (mod(itime, nexca) == 0) then 891 ! 892 ! allocation memoire 893 sum_error = 0 894 allocate(tmp_sols(iim,jjm+1,2), stat=error); sum_error = sum_error + error 895 allocate(tmp_nsol(iim,jjm+1,2), stat=error); sum_error = sum_error + error 896 allocate(tmp_rain(iim,jjm+1,2), stat=error); sum_error = sum_error + error 897 allocate(tmp_snow(iim,jjm+1,2), stat=error); sum_error = sum_error + error 898 allocate(tmp_evap(iim,jjm+1,2), stat=error); sum_error = sum_error + error 899 allocate(tmp_tsol(iim,jjm+1,2), stat=error); sum_error = sum_error + error 900 allocate(tmp_fder(iim,jjm+1,2), stat=error); sum_error = sum_error + error 901 allocate(tmp_albe(iim,jjm+1,2), stat=error); sum_error = sum_error + error 902 allocate(tmp_taux(iim,jjm+1,2), stat=error); sum_error = sum_error + error 903 allocate(tmp_tauy(iim,jjm+1,2), stat=error); sum_error = sum_error + error 904 allocate(tmp_rriv(iim,jjm+1,2), stat=error); sum_error = sum_error + error 905 allocate(tmp_rcoa(iim,jjm+1,2), stat=error); sum_error = sum_error + error 906 if (sum_error /= 0) then 907 abort_message='Pb allocation variables couplees' 908 call abort_gcm(modname,abort_message,1) 909 endif 910 911 ! 912 ! Mise sur la bonne grille des champs a passer au coupleur 913 ! 914 call gath2cpl(cpl_sols(1,nisurf), tmp_sols(1,1,nisurf), klon, knon,iim,jjm, knindex) 915 call gath2cpl(cpl_nsol(1,nisurf), tmp_nsol(1,1,nisurf), klon, knon,iim,jjm, knindex) 916 call gath2cpl(cpl_rain(1,nisurf), tmp_rain(1,1,nisurf), klon, knon,iim,jjm, knindex) 917 call gath2cpl(cpl_snow(1,nisurf), tmp_snow(1,1,nisurf), klon, knon,iim,jjm, knindex) 918 call gath2cpl(cpl_evap(1,nisurf), tmp_evap(1,1,nisurf), klon, knon,iim,jjm, knindex) 919 call gath2cpl(cpl_tsol(1,nisurf), tmp_tsol(1,1,nisurf), klon, knon,iim,jjm, knindex) 920 call gath2cpl(cpl_fder(1,nisurf), tmp_fder(1,1,nisurf), klon, knon,iim,jjm, knindex) 921 call gath2cpl(cpl_albe(1,nisurf), tmp_albe(1,1,nisurf), klon, knon,iim,jjm, knindex) 922 call gath2cpl(cpl_taux(1,nisurf), tmp_taux(1,1,nisurf), klon, knon,iim,jjm, knindex) 923 call gath2cpl(cpl_tauy(1,nisurf), tmp_tauy(1,1,nisurf), klon, knon,iim,jjm, knindex) 924 call gath2cpl(cpl_rriv(1,nisurf), tmp_rriv(1,1,nisurf), klon, knon,iim,jjm, knindex) 925 call gath2cpl(cpl_rcoa(1,nisurf), tmp_rcoa(1,1,nisurf), klon, knon,iim,jjm, knindex) 926 922 927 ! 923 928 ! Si le domaine considere est la banquise, on envoie les champs au coupleur … … 982 987 endif 983 988 984 endif ! fin nexca989 endif ! fin (mod(itime, nexca) == 0) 985 990 ! 986 991 ! on range les variables lues/sauvegardees dans les bonnes variables de sortie
Note: See TracChangeset
for help on using the changeset viewer.