Ignore:
Timestamp:
Jan 19, 2009, 2:40:26 PM (15 years ago)
Author:
Laurent Fairhead
Message:

Mise a jour de la branche par rapport au depot CVS
JG/LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/cpl_mod.F90

    r845 r1073  
    1 !
    2 ! $Header$
    31!
    42MODULE cpl_mod
     
    262260! 4 fields : read_sst, read_sic, read_sit and read_alb_sic.
    263261
     262    USE surface_data, ONLY : version_ocean
    264263    INCLUDE "indicesol.h"
    265264    INCLUDE "temps.h"
     
    306305
    307306! 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
    312318
    313319!*************************************************************************************
     
    902908! all calculations at the different surfaces have to be done before.
    903909!   
     910    USE surface_data, ONLY : version_ocean
    904911! Some includes
    905912!*************************************************************************************
     
    950957!
    951958!*************************************************************************************
    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
    963982!*************************************************************************************
    964983! Transform the fraction of sub-surfaces from 1D to 2D array
     
    10081027     
    10091028
    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
    10111034
    10121035!*************************************************************************************
     
    10181041!
    10191042!*************************************************************************************   
    1020     tab_flds(:,:,15) = 0.0
    1021     tab_flds(:,:,16) = 0.0
    1022     tmp_taux(:,:)    = 0.0
    1023     tmp_tauy(:,:)    = 0.0
    1024    
    1025 
    10261043    ! fraction oce+seaice
    10271044    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)))
    10341062       
    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   
    10411083!*************************************************************************************
    10421084! Transform the wind components from local atmospheric 2D coordinates to geocentric
Note: See TracChangeset for help on using the changeset viewer.