Changeset 3275


Ignore:
Timestamp:
2012-01-25T11:03:39+01:00 (9 years ago)
Author:
charris
Message:

Fix for #899, plus some vvl changes for the CICE interface code.

Location:
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90

    r3261 r3275  
    1414   USE oce             ! ocean dynamics and tracers 
    1515   USE dom_oce         ! ocean space and time domain 
     16   USE domvvl 
    1617   USE phycst, only : rcp, rau0 
    1718   USE in_out_manager  ! I/O manager 
     
    354355 
    355356! Freezing/melting potential 
    356 ! Calculated over NEMO leapfrog timestep (hence 2*dt), so uses tb in  
    357 ! frzmlt which is then applied in going from tb to ta. 
    358 ! May be better using sst_m if not coupling to CICE every time-step 
    359  
    360 !      nfrzmlt(:,:)=rau0*rcp*fse3t(:,:,1)*(Tocnfrz-sst_m(:,:))/(2.0*dt) 
    361       nfrzmlt(:,:)=rau0*rcp*fse3t_b(:,:,1)*(Tocnfrz-tsb(:,:,1,jp_tem))/(2.0*dt) 
     357! Calculated over NEMO leapfrog timestep (hence 2*dt) 
     358      nfrzmlt(:,:)=rau0*rcp*fse3t_n(:,:,1)*(Tocnfrz-sst_m(:,:))/(2.0*dt) 
    362359 
    363360      ztmp(:,:) = nfrzmlt(:,:) 
     
    499496! Sublimation from the ice is treated in a similar way (included in emp but not emps)   
    500497! 
    501 ! This will need re-thinking in the variable volume case and if ice is 'embedded' in the  
    502 ! ocean rather than floating on top 
    503  
    504       emp(:,:)  = emp(:,:) - tprecip(:,:)*fr_i(:,:) 
     498! This should not be done in the variable volume case 
     499 
     500      IF (.NOT. lk_vvl) THEN 
     501 
     502         emp(:,:)  = emp(:,:) - tprecip(:,:)*fr_i(:,:) 
    505503 
    506504! Take sublimation into account 
    507       IF (nsbc == 5 ) THEN  
    508          emp(:,:) = emp(:,:) + ( emp_ice(:,:) + sprecip(:,:) ) 
    509       ELSE IF (nsbc == 2 ) THEN 
    510          emp(:,:) = emp(:,:) - qla_ice(:,:,1) / Lsub 
     505         IF (nsbc == 5 ) THEN  
     506            emp(:,:) = emp(:,:) + ( emp_ice(:,:) + sprecip(:,:) ) 
     507         ELSE IF (nsbc == 2 ) THEN 
     508            emp(:,:) = emp(:,:) - qla_ice(:,:,1) / Lsub 
     509         ENDIF 
     510 
    511511      ENDIF 
    512512 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90

    r3186 r3275  
    239239               zz1   = ( 1. - rn_abs ) * ro0cpr 
    240240               DO jk = 1, nksr                    ! solar heat absorbed at T-point in the top 400m  
    241                   DO jj = 2, jpjm1 
    242                      DO ji = 2, jpim1 
     241                  DO jj = 1, jpj 
     242                     DO ji = 1, jpi 
    243243                        zc0 = zz0 * EXP( -fsdepw(ji,jj,jk  )*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,jk  )*xsi1r ) 
    244244                        zc1 = zz0 * EXP( -fsdepw(ji,jj,jk+1)*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,jk+1)*xsi1r ) 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90

    r3186 r3275  
    164164                                                
    165165      IF( lk_vvl ) THEN                            ! Variable Volume case 
    166          DO jj = 2, jpj 
    167             DO ji = fs_2, fs_jpim1   ! vector opt. 
     166         DO jj = 1, jpj 
     167            DO ji = 1, jpi  
    168168               ! temperature : heat flux + cooling/heating effet of EMP flux 
    169169               sbc_tsc(ji,jj,jp_tem) = ro0cpr * qns(ji,jj) - zsrau * emp(ji,jj) * tsn(ji,jj,1,jp_tem) 
Note: See TracChangeset for help on using the changeset viewer.