Changeset 15398
- Timestamp:
- 2021-10-19T10:49:42+02:00 (3 years ago)
- Location:
- NEMO/trunk/src/OCE
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/ASM/asmbkg.F90
r12377 r15398 74 74 !!----------------------------------------------------------------------- 75 75 76 ! !-------------------------------------------77 IF( kt == nitbkg_r ) THEN ! Write out background at time step nitbkg_r78 ! !-----------------------------------========79 !80 WRITE(cl_asmbkg, FMT='(A,".nc")' ) TRIM( c_asmbkg )81 cl_asmbkg = TRIM( cl_asmbkg )82 INQUIRE( FILE = cl_asmbkg, EXIST = llok )83 !84 IF( .NOT. llok ) THEN85 IF(lwp) WRITE(numout,*) ' Setting up assimilation background file '// TRIM( c_asmbkg )86 !87 ! ! Define the output file88 CALL iom_open( c_asmbkg, inum, ldwrt = .TRUE. )89 !90 IF( nitbkg_r == nit000 - 1 ) THEN ! Treat special case when nitbkg = 091 zdate = REAL( ndastp )92 IF( ln_zdftke ) THEN ! read turbulent kinetic energy ( en )93 IF(lwp) WRITE(numout,*) ' Reading TKE (en) from restart...'94 CALL tke_rst( nit000, 'READ' )95 ENDIF96 ELSE97 zdate = REAL( ndastp )98 ENDIF99 !100 ! ! Write the information101 CALL iom_rstput( kt, nitbkg_r, inum, 'rdastp' , zdate )102 CALL iom_rstput( kt, nitbkg_r, inum, 'un' , uu(:,:,:,Kmm) )103 CALL iom_rstput( kt, nitbkg_r, inum, 'vn' , vv(:,:,:,Kmm) )104 CALL iom_rstput( kt, nitbkg_r, inum, 'tn' , ts(:,:,:,jp_tem,Kmm) )105 CALL iom_rstput( kt, nitbkg_r, inum, 'sn' , ts(:,:,:,jp_sal,Kmm) )106 CALL iom_rstput( kt, nitbkg_r, inum, 'sshn' , ssh(:,:,Kmm) )107 IF( ln_zdftke ) CALL iom_rstput( kt, nitbkg_r, inum, 'en' , en )108 !109 CALL iom_close( inum )110 ENDIF111 !112 ENDIF113 76 114 ! !------------------------------------------- 115 IF( kt == nitdin_r ) THEN ! Write out background at time step nitdin_r 116 ! !-----------------------------------======== 117 ! 118 WRITE(cl_asmdin, FMT='(A,".nc")' ) TRIM( c_asmdin ) 119 cl_asmdin = TRIM( cl_asmdin ) 120 INQUIRE( FILE = cl_asmdin, EXIST = llok ) 121 ! 122 IF( .NOT. llok ) THEN 123 IF(lwp) WRITE(numout,*) ' Setting up assimilation background file '// TRIM( c_asmdin ) 124 ! 125 ! ! Define the output file 126 CALL iom_open( c_asmdin, inum, ldwrt = .TRUE. ) 127 ! 128 IF( nitdin_r == nit000 - 1 ) THEN ! Treat special case when nitbkg = 0 129 130 zdate = REAL( ndastp ) 131 ELSE 132 zdate = REAL( ndastp ) 133 ENDIF 134 ! 135 ! ! Write the information 136 CALL iom_rstput( kt, nitdin_r, inum, 'rdastp' , zdate ) 137 CALL iom_rstput( kt, nitdin_r, inum, 'un' , uu(:,:,:,Kmm) ) 138 CALL iom_rstput( kt, nitdin_r, inum, 'vn' , vv(:,:,:,Kmm) ) 139 CALL iom_rstput( kt, nitdin_r, inum, 'tn' , ts(:,:,:,jp_tem,Kmm) ) 140 CALL iom_rstput( kt, nitdin_r, inum, 'sn' , ts(:,:,:,jp_sal,Kmm) ) 141 CALL iom_rstput( kt, nitdin_r, inum, 'sshn' , ssh(:,:,Kmm) ) 142 #if defined key_si3 143 IF( nn_ice == 2 ) THEN 144 IF( ALLOCATED(at_i) ) THEN 145 CALL iom_rstput( kt, nitdin_r, inum, 'iceconc', at_i(:,:) ) 146 ELSE 147 CALL ctl_warn('asm_bkg_wri: Ice concentration not written to background ', & 148 & 'as ice variable at_i not allocated on this timestep') 149 ENDIF 150 ENDIF 151 #endif 152 ! 153 CALL iom_close( inum ) 154 ENDIF 155 ! 156 ENDIF 77 IF( .NOT. l_istiled .OR. ntile == nijtile ) THEN ! Do only on the last tile 78 ! !------------------------------------------- 79 IF( kt == nitbkg_r ) THEN ! Write out background at time step nitbkg_r 80 ! !-----------------------------------======== 81 ! 82 WRITE(cl_asmbkg, FMT='(A,".nc")' ) TRIM( c_asmbkg ) 83 cl_asmbkg = TRIM( cl_asmbkg ) 84 INQUIRE( FILE = cl_asmbkg, EXIST = llok ) 85 ! 86 IF( .NOT. llok ) THEN 87 IF(lwp) WRITE(numout,*) ' Setting up assimilation background file '// TRIM( c_asmbkg ) 88 ! 89 ! ! Define the output file 90 CALL iom_open( c_asmbkg, inum, ldwrt = .TRUE. ) 91 ! 92 IF( nitbkg_r == nit000 - 1 ) THEN ! Treat special case when nitbkg = 0 93 zdate = REAL( ndastp ) 94 IF( ln_zdftke ) THEN ! read turbulent kinetic energy ( en ) 95 IF(lwp) WRITE(numout,*) ' Reading TKE (en) from restart...' 96 CALL tke_rst( nit000, 'READ' ) 97 ENDIF 98 ELSE 99 zdate = REAL( ndastp ) 100 ENDIF 101 ! 102 ! ! Write the information 103 CALL iom_rstput( kt, nitbkg_r, inum, 'rdastp' , zdate ) 104 CALL iom_rstput( kt, nitbkg_r, inum, 'un' , uu(:,:,:,Kmm) ) 105 CALL iom_rstput( kt, nitbkg_r, inum, 'vn' , vv(:,:,:,Kmm) ) 106 CALL iom_rstput( kt, nitbkg_r, inum, 'tn' , ts(:,:,:,jp_tem,Kmm) ) 107 CALL iom_rstput( kt, nitbkg_r, inum, 'sn' , ts(:,:,:,jp_sal,Kmm) ) 108 CALL iom_rstput( kt, nitbkg_r, inum, 'sshn' , ssh(:,:,Kmm) ) 109 IF( ln_zdftke ) CALL iom_rstput( kt, nitbkg_r, inum, 'en' , en ) 110 ! 111 CALL iom_close( inum ) 112 ENDIF 113 ! 114 ENDIF 115 116 ! !------------------------------------------- 117 IF( kt == nitdin_r ) THEN ! Write out background at time step nitdin_r 118 ! !-----------------------------------======== 119 ! 120 WRITE(cl_asmdin, FMT='(A,".nc")' ) TRIM( c_asmdin ) 121 cl_asmdin = TRIM( cl_asmdin ) 122 INQUIRE( FILE = cl_asmdin, EXIST = llok ) 123 ! 124 IF( .NOT. llok ) THEN 125 IF(lwp) WRITE(numout,*) ' Setting up assimilation background file '// TRIM( c_asmdin ) 126 ! 127 ! ! Define the output file 128 CALL iom_open( c_asmdin, inum, ldwrt = .TRUE. ) 129 ! 130 IF( nitdin_r == nit000 - 1 ) THEN ! Treat special case when nitbkg = 0 131 132 zdate = REAL( ndastp ) 133 ELSE 134 zdate = REAL( ndastp ) 135 ENDIF 136 ! 137 ! ! Write the information 138 CALL iom_rstput( kt, nitdin_r, inum, 'rdastp' , zdate ) 139 CALL iom_rstput( kt, nitdin_r, inum, 'un' , uu(:,:,:,Kmm) ) 140 CALL iom_rstput( kt, nitdin_r, inum, 'vn' , vv(:,:,:,Kmm) ) 141 CALL iom_rstput( kt, nitdin_r, inum, 'tn' , ts(:,:,:,jp_tem,Kmm) ) 142 CALL iom_rstput( kt, nitdin_r, inum, 'sn' , ts(:,:,:,jp_sal,Kmm) ) 143 CALL iom_rstput( kt, nitdin_r, inum, 'sshn' , ssh(:,:,Kmm) ) 144 #if defined key_si3 145 IF( nn_ice == 2 ) THEN 146 IF( ALLOCATED(at_i) ) THEN 147 CALL iom_rstput( kt, nitdin_r, inum, 'iceconc', at_i(:,:) ) 148 ELSE 149 CALL ctl_warn('asm_bkg_wri: Ice concentration not written to background ', & 150 & 'as ice variable at_i not allocated on this timestep') 151 ENDIF 152 ENDIF 153 #endif 154 ! 155 CALL iom_close( inum ) 156 ENDIF 157 ! 158 ENDIF 159 ENDIF ! check for last tile 157 160 ! 158 161 END SUBROUTINE asm_bkg_wri -
NEMO/trunk/src/OCE/step.F90
r15005 r15398 229 229 IF( lk_asminc .AND. ln_asmiau .AND. ln_dyninc ) & 230 230 & CALL dyn_asm_inc ( kstp, Nbb, Nnn, uu, vv, Nrhs ) ! apply dynamics assimilation increment 231 IF( ln_bkgwri ) CALL asm_bkg_wri( kstp, Nnn ) ! output background fields 231 232 IF( ln_bdy ) CALL bdy_dyn3d_dmp ( kstp, Nbb, uu, vv, Nrhs ) ! bdy damping trends 232 233 #if defined key_agrif -
NEMO/trunk/src/OCE/stpmlf.F90
r15386 r15398 241 241 IF( lk_asminc .AND. ln_asmiau .AND. ln_dyninc ) & 242 242 & CALL dyn_asm_inc ( kstp, Nbb, Nnn, uu, vv, Nrhs ) ! apply dynamics assimilation increment 243 IF( ln_bkgwri ) CALL asm_bkg_wri( kstp, Nnn ) ! output background fields 243 244 IF( ln_bdy ) CALL bdy_dyn3d_dmp ( kstp, Nbb, uu, vv, Nrhs ) ! bdy damping trends 244 245 #if defined key_agrif
Note: See TracChangeset
for help on using the changeset viewer.