Changeset 1073 for LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/cpl_mod.F90
- Timestamp:
- Jan 19, 2009, 2:40:26 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/cpl_mod.F90
r845 r1073 1 !2 ! $Header$3 1 ! 4 2 MODULE cpl_mod … … 262 260 ! 4 fields : read_sst, read_sic, read_sit and read_alb_sic. 263 261 262 USE surface_data, ONLY : version_ocean 264 263 INCLUDE "indicesol.h" 265 264 INCLUDE "temps.h" … … 306 305 307 306 ! Save each field in a 2D array. 308 read_sst(:,:) = tab_read_flds(:,:,1) ! Sea surface temperature 309 read_sic(:,:) = tab_read_flds(:,:,2) ! Sea ice concentration 310 read_alb_sic(:,:) = tab_read_flds(:,:,3) ! Albedo at sea ice 311 read_sit(:,:) = tab_read_flds(:,:,4) ! Sea ice temperature 307 IF (version_ocean=='nemo') THEN 308 read_sst(:,:) = tab_read_flds(:,:,1) ! Sea surface temperature 309 read_sic(:,:) = tab_read_flds(:,:,2) ! Sea ice concentration 310 read_sit(:,:) = tab_read_flds(:,:,3) ! Sea ice temperature 311 read_alb_sic(:,:) = tab_read_flds(:,:,4) ! Albedo at sea ice 312 ELSE IF (version_ocean=='opa8') THEN 313 read_sst(:,:) = tab_read_flds(:,:,1) ! Sea surface temperature 314 read_sic(:,:) = tab_read_flds(:,:,2) ! Sea ice concentration 315 read_alb_sic(:,:) = tab_read_flds(:,:,3) ! Albedo at sea ice 316 read_sit(:,:) = tab_read_flds(:,:,4) ! Sea ice temperature 317 ENDIF 312 318 313 319 !************************************************************************************* … … 902 908 ! all calculations at the different surfaces have to be done before. 903 909 ! 910 USE surface_data, ONLY : version_ocean 904 911 ! Some includes 905 912 !************************************************************************************* … … 950 957 ! 951 958 !************************************************************************************* 952 tab_flds(:,:,7) = cpl_windsp2D(:,:) 953 tab_flds(:,:,8) = cpl_sols2D(:,:,2) 954 tab_flds(:,:,9) = cpl_sols2D(:,:,1) 955 tab_flds(:,:,10) = cpl_nsol2D(:,:,2) 956 tab_flds(:,:,11) = cpl_nsol2D(:,:,1) 957 tab_flds(:,:,12) = cpl_fder2D(:,:,2) 958 tab_flds(:,:,13) = cpl_evap2D(:,:,2) 959 tab_flds(:,:,14) = cpl_evap2D(:,:,1) 960 tab_flds(:,:,17) = cpl_rcoa2D(:,:) 961 tab_flds(:,:,18) = cpl_rriv2D(:,:) 962 959 IF (version_ocean=='nemo') THEN 960 tab_flds(:,:,7) = cpl_windsp2D(:,:) 961 tab_flds(:,:,14) = cpl_sols2D(:,:,2) 962 tab_flds(:,:,12) = cpl_sols2D(:,:,1) 963 tab_flds(:,:,15) = cpl_nsol2D(:,:,2) 964 tab_flds(:,:,13) = cpl_nsol2D(:,:,1) 965 tab_flds(:,:,16) = cpl_fder2D(:,:,2) 966 tab_flds(:,:,11) = cpl_evap2D(:,:,2) 967 tab_flds(:,:,18) = cpl_rriv2D(:,:) 968 tab_flds(:,:,19) = cpl_rcoa2D(:,:) 969 ELSE IF (version_ocean=='opa8') THEN 970 tab_flds(:,:,7) = cpl_windsp2D(:,:) 971 tab_flds(:,:,8) = cpl_sols2D(:,:,2) 972 tab_flds(:,:,9) = cpl_sols2D(:,:,1) 973 tab_flds(:,:,10) = cpl_nsol2D(:,:,2) 974 tab_flds(:,:,11) = cpl_nsol2D(:,:,1) 975 tab_flds(:,:,12) = cpl_fder2D(:,:,2) 976 tab_flds(:,:,13) = cpl_evap2D(:,:,2) 977 tab_flds(:,:,14) = cpl_evap2D(:,:,1) 978 tab_flds(:,:,17) = cpl_rcoa2D(:,:) 979 tab_flds(:,:,18) = cpl_rriv2D(:,:) 980 ENDIF 981 963 982 !************************************************************************************* 964 983 ! Transform the fraction of sub-surfaces from 1D to 2D array … … 1008 1027 1009 1028 1010 tab_flds(:,:,19) = tmp_calv(:,:) 1029 IF (version_ocean=='nemo') THEN 1030 tab_flds(:,:,17) = tmp_calv(:,:) 1031 ELSE IF (version_ocean=='opa8') THEN 1032 tab_flds(:,:,19) = tmp_calv(:,:) 1033 ENDIF 1011 1034 1012 1035 !************************************************************************************* … … 1018 1041 ! 1019 1042 !************************************************************************************* 1020 tab_flds(:,:,15) = 0.01021 tab_flds(:,:,16) = 0.01022 tmp_taux(:,:) = 0.01023 tmp_tauy(:,:) = 0.01024 1025 1026 1043 ! fraction oce+seaice 1027 1044 deno = pctsrf2D(:,:,is_oce) + pctsrf2D(:,:,is_sic) 1028 ! For all valid grid cells containing some fraction of ocean or sea-ice 1029 WHERE ( deno(:,:) /= 0 ) 1030 tab_flds(:,:,15) = cpl_rain2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1031 cpl_rain2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1032 tab_flds(:,:,16) = cpl_snow2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1033 cpl_snow2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1045 1046 IF (version_ocean=='nemo') THEN 1047 tab_flds(:,:,10) = 0.0 1048 tmp_taux(:,:) = 0.0 1049 tmp_tauy(:,:) = 0.0 1050 ! For all valid grid cells containing some fraction of ocean or sea-ice 1051 WHERE ( deno(:,:) /= 0 ) 1052 tab_flds(:,:,10) = cpl_snow2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1053 cpl_snow2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1054 1055 tmp_taux = cpl_taux2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1056 cpl_taux2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1057 tmp_tauy = cpl_tauy2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1058 cpl_tauy2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1059 ENDWHERE 1060 tab_flds(:,:,8) = (cpl_evap2D(:,:,1) - ( cpl_rain2D(:,:,1) + cpl_snow2D(:,:,1))) 1061 tab_flds(:,:,9) = (cpl_evap2D(:,:,2) - ( cpl_rain2D(:,:,2) + cpl_snow2D(:,:,2))) 1034 1062 1035 tmp_taux = cpl_taux2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1036 cpl_taux2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1037 tmp_tauy = cpl_tauy2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1038 cpl_tauy2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1039 ENDWHERE 1040 1063 ELSE IF (version_ocean=='opa8') THEN 1064 tab_flds(:,:,15) = 0.0 1065 tab_flds(:,:,16) = 0.0 1066 tmp_taux(:,:) = 0.0 1067 tmp_tauy(:,:) = 0.0 1068 1069 ! For all valid grid cells containing some fraction of ocean or sea-ice 1070 WHERE ( deno(:,:) /= 0 ) 1071 tab_flds(:,:,15) = cpl_rain2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1072 cpl_rain2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1073 tab_flds(:,:,16) = cpl_snow2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1074 cpl_snow2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1075 1076 tmp_taux = cpl_taux2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1077 cpl_taux2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1078 tmp_tauy = cpl_tauy2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1079 cpl_tauy2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1080 ENDWHERE 1081 ENDIF 1082 1041 1083 !************************************************************************************* 1042 1084 ! Transform the wind components from local atmospheric 2D coordinates to geocentric
Note: See TracChangeset
for help on using the changeset viewer.